Pārlūkot izejas kodu

回访问卷抽奖同步代码提交

huangwenjie 7 gadi atpakaļ
vecāks
revīzija
dcb5f9c4a6

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

@ -1,10 +1,10 @@
package com.yihu.wlyy.service.questionnaire;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.es.entity.QuestionnaireWinningESDO;
import com.yihu.wlyy.config.SystemConfig;
import com.yihu.wlyy.config.es.ElasticFactory;
import com.yihu.wlyy.config.es.ElastricSearchSave;
import com.yihu.wlyy.entity.questionnaire.QuestionnairePrize;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireUsers;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireWinning;
@ -14,6 +14,7 @@ import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.ElasticsearchUtil;
import com.yihu.wlyy.util.random.LotteryUtils;
import com.yihu.wlyy.util.random.dto.LotteryItem;
import io.searchbox.client.JestClient;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -41,6 +42,8 @@ public class QuestionnaireService extends BaseService {
	private ElasticFactory elasticFactory;
	@Autowired
	private ElasticsearchUtil elasticsearchUtil;
	@Autowired
	private ElastricSearchSave elastricSearchSave;
	@Value("${es.type.QuestionnaireWinning}")
	private String esType;
	@Value("${es.index.QuestionnaireWinning}")
@ -51,6 +54,7 @@ public class QuestionnaireService extends BaseService {
	private QuestionnairePrizeDao questionnairePrizeDao;
	@Autowired
	private StringRedisTemplate redisTemplate;
	
	/**
	 * 根据身份证和openid从ES查询中奖结果
@ -134,8 +138,12 @@ public class QuestionnaireService extends BaseService {
						questionnaireWinning.setPrizeCode(questionnairePrize.getPrizeCode());
						questionnaireWinning.setAddress(questionnairePrize.getAddress());
						questionnaireWinning.setValidity(questionnairePrize.getValidity());
						questionnaireWinningDao.save(questionnaireWinning);
						//@todo 将中奖信息缓存到ES
						questionnaireWinning = questionnaireWinningDao.save(questionnaireWinning);
						one = doToESDO(questionnaireWinning);
						result.add(one);
						//将中奖信息缓存到ES
						esQuestionnaireWinningESData(result);
						return result;
					}catch (Exception e){
						//@todo 处理奖品相关逻辑业务时,如果报错,则将奖品重新放回奖品池
					    e.printStackTrace();
@ -157,7 +165,7 @@ public class QuestionnaireService extends BaseService {
		}
		one = doToESDO(questionnaireWinning);
		result.add(one);
		return null;
		return result;
	}
	
	//中奖对象转成ES对象
@ -263,4 +271,23 @@ public class QuestionnaireService extends BaseService {
			return 0;
		}
	}
	
	/**
	 * 保存数据到ES
	 */
	public void esQuestionnaireWinningESData(List<QuestionnaireWinningESDO> data) throws Exception {
		JestClient jestClient = null;
		try {
			jestClient = elasticFactory.getJestClient();
			elastricSearchSave.save(data,esIndex,esType);
			jestClient.shutdownClient();
		}catch (Exception e){
			logger.error(" save error :" + e.getMessage());
			e.printStackTrace();
		} finally {
			if (jestClient != null) {
				jestClient.shutdownClient();
			}
		}
	}
}