瀏覽代碼

回访问卷抽奖,增加中奖的抽奖纪录日志

huangwenjie 7 年之前
父節點
當前提交
e36fa025cb

+ 9 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/questionnaire/QuestionnaireService.java

@ -147,12 +147,14 @@ public class QuestionnaireService extends BaseService {
			//中奖
			if("YES".equals(lotteryItem.getAwardName())){
				logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果01:YES,判断数据库是否有中奖纪录");
				List<QuestionnaireWinning> winningList = questionnaireWinningDao.findByUserIdcardAndUserOpenid(questionnaireUsers.getIdcard(),questionnaireUsers.getOpenid());
				if(winningList.isEmpty()){
					//从redis奖品池捞取一个奖品
					QuestionnairePrize questionnairePrize = getQuestionnairePrizeFromRedis();
					//如果抽中的奖品对象为空,则直接返回未中奖
					if(questionnairePrize != null){
						logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果02:成功捞取到一个奖品,奖品CODE:"+questionnairePrize.getCode());
						try {
							questionnaireWinning.setWinning(1);//---中奖
							questionnaireWinning.setPrizeType(questionnairePrize.getType());
@ -163,6 +165,7 @@ public class QuestionnaireService extends BaseService {
							questionnaireWinning.setValidity(questionnairePrize.getValidity());
							//只有中奖的记录才保存到数据库
							questionnaireWinning = questionnaireWinningDao.save(questionnaireWinning);
							logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果03:中奖结果成功保存到数据库,奖品CODE:"+questionnairePrize.getCode());
						}catch (Exception e){
							//如果保存报错,则将奖品重新放回奖品池,返回未中奖
							String prizejson = JSON.toJSONString(questionnairePrize);
@ -175,19 +178,21 @@ public class QuestionnaireService extends BaseService {
							questionnaireWinning.setPrizePsw("");
							questionnaireWinning.setAddress("");
							questionnaireWinning.setValidity(new Date());
							
							logger.info("mysql 保存中奖结果报错,将奖品重新放回奖品池,返回未中奖");
							logger.info(e.getMessage());
//					    e.printStackTrace();
							logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果03:mysql 保存中奖结果报错,将奖品重新放回奖品池,返回未中奖,奖品CODE:"+questionnairePrize.getCode());
					        e.printStackTrace();
						}
						one = doToESDO(questionnaireWinning);
						result.add(one);
						//将中奖记录信息缓存到ES
						esQuestionnaireWinningESData(result);
						logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果04:中奖结果成功保存到ES,奖品CODE:"+questionnairePrize.getCode());
						return result;
					}
					logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果02:没捞取到奖品,返回");
				}else{
					
					for (QuestionnaireWinning obj:winningList) {
						logger.info("抽奖:居民身份证:"+questionnaireUsers.getIdcard()+",openid="+questionnaireUsers.getOpenid()+",结果02:从数据库中获取到中奖纪录,奖品CODE:"+obj.getPrizeCode());
						QuestionnaireWinningESDO a = doToESDO(obj);
						result.add(a);
					}