|
@ -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);
|
|
|
}
|