Parcourir la source

回访抽奖增加系统入口:捞取奖品到奖品池,查询剩余奖品数量,初始化中奖概率

huangwenjie il y a 7 ans
Parent
commit
8d6e257cba

+ 19 - 8
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/questionnaire/QuestionnaireService.java

@ -139,15 +139,27 @@ public class QuestionnaireService extends BaseService {
						questionnaireWinning.setAddress(questionnairePrize.getAddress());
						questionnaireWinning.setValidity(questionnairePrize.getValidity());
						questionnaireWinning = questionnaireWinningDao.save(questionnaireWinning);
						one = doToESDO(questionnaireWinning);
						result.add(one);
						//将中奖信息缓存到ES
						esQuestionnaireWinningESData(result);
						return result;
					}catch (Exception e){
						//@todo 处理奖品相关逻辑业务时,如果报错,则将奖品重新放回奖品池
					    e.printStackTrace();
						//如果保存报错,则将奖品重新放回奖品池,返回未中奖
						String prizejson = JSON.toJSONString(questionnairePrize);
						redisTemplate.opsForValue().set("questionnaire:prize:code:" + questionnairePrize.getCode(), prizejson);
						
						questionnaireWinning.setWinning(0);
						questionnaireWinning.setPrizeType(0);
						questionnaireWinning.setPrizeName("");
						questionnaireWinning.setPrizeCode("");
						questionnaireWinning.setAddress("");
						questionnaireWinning.setValidity(new Date());
						
						logger.info("mysql 保存中奖结果报错,将奖品重新放回奖品池,返回未中奖");
						logger.info(e.getMessage());
//					    e.printStackTrace();
					}
					one = doToESDO(questionnaireWinning);
					result.add(one);
					//将中奖信息缓存到ES
					esQuestionnaireWinningESData(result);
					return result;
				}else{
					for (QuestionnaireWinning obj:winningList) {
@ -158,7 +170,6 @@ public class QuestionnaireService extends BaseService {
				}
			}else{
				questionnaireWinning.setWinning(0);//未中奖
			}
		}else{
			questionnaireWinning.setWinning(0);//未中奖

+ 78 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/questionnaire/QuestionnaireSystemController.java

@ -0,0 +1,78 @@
package com.yihu.wlyy.web.questionnaire;
import com.yihu.wlyy.service.common.InitiSysProService;
import com.yihu.wlyy.service.questionnaire.QuestionnaireService;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * 抽奖问卷系统接口
 * @author huangwenjie
 * @date 2018/1/30 09:13
 */
@Controller
@RequestMapping(value = "/questionnaire/sys/")
@Api(description = "抽奖问卷系统接口")
public class QuestionnaireSystemController extends BaseController {
	private static Logger logger = LoggerFactory.getLogger(QuestionnaireSystemController.class);
	
	@Autowired
	private QuestionnaireService questionnaireService;
	
	@Autowired
	private InitiSysProService initiSysProService;
	
	@RequestMapping(value = "startInitiSysProperties",method = RequestMethod.POST)
	@ApiOperation("重新执行系统参数初始化")
	public String startInitiSysProperties(){
		try {
			logger.info("START===执行系统参数初始化");
			initiSysProService.startInitiSysProperties();
			logger.info("END===执行系统参数初始化");
			return write(200,"执行系统参数初始化成功!");
		} catch (Exception ex) {
			ex.printStackTrace();
			return write(200,"执行系统参数初始化失败!");
		}
	}
	
	@RequestMapping(value = "getprizetoredis",method = RequestMethod.POST)
	@ApiOperation("从奖品数据库捞取指定数量的奖品,缓存到redis奖品池")
	public String getQuestionnairePrizeToRedis(
			@ApiParam(required = true, name = "count", value = "处方code")
			@RequestParam(value = "count", required = true)Integer count){
		try {
			logger.info("START===从奖品数据库捞取指定数量的奖品,缓存到redis奖品池");
			questionnaireService.getQuestionnairePrizeToRedis(count);
			logger.info("END===从奖品数据库捞取指定数量的奖品,缓存到redis奖品池");
			return write(200,"操作成功!");
		} catch (Exception ex) {
			ex.printStackTrace();
			return write(200,"操作失败!");
		}
	}
	
	@RequestMapping(value = "gerprizecount",method = RequestMethod.GET)
	@ApiOperation("从奖品数据库捞取指定数量的奖品,缓存到redis奖品池")
	public String gerPrizeCountFromRedis(){
		try {
			logger.info("START===从redis获取剩余奖品数量");
			questionnaireService.gerPrizeCountFromRedis();
			logger.info("END===从redis获取剩余奖品数量");
			return write(200,"操作成功!");
		} catch (Exception ex) {
			ex.printStackTrace();
			return write(200,"操作失败!");
		}
	}
}