ActivityService.java 4.4 KB
package com.w1hd.zzhnc.service;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.testng.util.Strings;

import com.w1hd.zzhnc.dao.LotteryLogDao;
import com.w1hd.zzhnc.enums.ActivityStatus;
import com.w1hd.zzhnc.model.Activity;
import com.w1hd.zzhnc.model.Lotterylog;
import com.w1hd.zzhnc.model.Prize;
import com.w1hd.zzhnc.util.CommonUtil;
import com.w1hd.zzhnc.util.DateUtil;
import com.w1hd.zzhnc.util.PageResults;
import com.w1hd.zzhnc.util.RedisUtil;
import com.w1hd.zzhnc.vo.Lotterylog_Vo;

/**
 * @ClassName ArticlesServiceImpl
 * @Description TODO(杩欓噷鐢ㄤ竴鍙ヨ瘽鎻忚堪杩欎釜绫荤殑浣滅敤)
 * @author hm
 * @Date 2017骞�11鏈�22鏃� 涓婂崍10:13:53
 * @version 1.0.0
 */
@Service
public class ActivityService {

	final String  ACTIVITY_SETTING  =RedisUtil.PROJECTNAME.concat("_").concat("ACTIVITY_SETTING");// 娲诲姩璁剧疆淇濆瓨key

	@Autowired
	LotteryLogDao logDao;

	@Autowired
	RedisTemplate redisTemplate;

	public Activity getActivitySetting() {

		Activity redisactivity = (Activity) redisTemplate.opsForValue().get(ACTIVITY_SETTING);
		if (redisactivity == null) {
			redisactivity = new Activity(new Date(2017, 12, 27), new Date(2018, 2, 1), 1, new BigDecimal(500), "zhenzhou",
					"keyworks", "you'r lose", "replay String of activity finished  ", "input title pls", "input subtitle pls", 0, "nochance replay", "waitting...", "welcome", "fail",
					"success", "undefind");
			Prize prize = new Prize();
			prize.setIsMoney(true);
			prize.setMaxMoney(200);
			prize.setMixMoney(100);
			prize.setName("这个是红包奖品");
			prize.setNum(10);
			prize.setProbability(20);
			Prize prize2 = new Prize();
			prize2.setIsMoney(false);
			prize2.setMaxMoney(0);
			prize2.setMixMoney(0);
			prize2.setName("这个可能是实物奖品");
			prize2.setNum(10);
			prize2.setProbability(20);
			redisactivity.setP1(prize);
			redisactivity.setP2(prize2);
			redisTemplate.opsForValue().set(ACTIVITY_SETTING, redisactivity);
		}

		return redisactivity;
	}

	public String updateActivityStatus(Integer status) {
		Activity activity = getActivitySetting();
		activity.setStatus(status);
		updateActivity(activity);
		return "ok";

	}

	public String clearActivity() {
		Activity activity = getActivitySetting();
		activity.setTurn(activity.getTurn()+1);
		activity.setP1(null);
		activity.setP2(null);
		activity.setP3(null);
		activity.setP4(null);
		activity.setPlanMny(new BigDecimal(0));
		activity.setStatus(0);
		updateActivity(activity);
		return "ok";
	}

	public String addLotteryLog(Integer fansid, BigDecimal mny, Integer status, Integer turn,String name) {
		Lotterylog log = new Lotterylog();
		log.setCreatedtime(CommonUtil.getTime());
		log.setFansid(fansid);
		log.setMny(mny);
		log.setStatus(status);
		log.setTurn(turn);
		log.setName(name);
		int row = logDao.insertSelective(log);
		return row > 0 ? "ok" : "error";
	}

	public PageResults<Lotterylog_Vo> getLotteryLogList(Integer page, Integer pagesize, Integer turn, String keyword,
			Integer status) {
		PageResults<Lotterylog_Vo> pageResults = new PageResults<>();

		List<Lotterylog_Vo> list = logDao.getLotteryLogList((page - 1) * pagesize, pagesize, turn, keyword, status);
		int total = logDao.getLotteryLogCount(turn, status);
		BigDecimal bMny = logDao.getSumMny(turn, status);
		int mny = bMny == null ? 0 : bMny.intValue();
		
	
		pageResults.setPage(page);
		pageResults.setPageSize(pagesize);
		pageResults.setRows(list);
		pageResults.setTotal(total);
		pageResults.setSum(mny);
		return pageResults;
	}

	public void updateCurrentMny(BigDecimal currentMny) {
		try {
			String activityjson = RedisUtil.get(ACTIVITY_SETTING);
			if (Strings.isNullOrEmpty(activityjson))
				return;
			activityjson = CommonUtil.JsonToObject(activityjson);
			Activity redisactivity = CommonUtil.getEntity(activityjson, Activity.class);

			redisactivity.setCurrentMny(currentMny);
			String json = CommonUtil.getJson(redisactivity);
			System.out.println("activity json:" + json.toString());
			RedisUtil.set(ACTIVITY_SETTING, json.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public void updateActivity(Activity activity) {
		
		redisTemplate.opsForValue().set(ACTIVITY_SETTING, activity);
	}

}