From 74196bcc835d9b76cdd1bc3d85b0dfbe0191fc00 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 31 十二月 2020 19:23:43 +0800 Subject: [PATCH] 活动信息缓存 --- service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java | 61 ++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 12 deletions(-) diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java index 52ade23..16fccea 100644 --- a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java +++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java @@ -2,16 +2,17 @@ import com.ks.lucky.exception.LuckyActivityAwardException; import com.ks.lucky.exception.LuckyActivityException; +import com.ks.lucky.exception.LuckyActivityOpenException; +import com.ks.lucky.exception.LuckyMQException; import com.ks.lucky.mapper.LuckyActivityMapper; import com.ks.lucky.pojo.DO.LuckyActivity; import com.ks.lucky.pojo.DO.LuckyActivityAwards; import com.ks.lucky.pojo.DO.LuckyActivityOpenInfo; +import com.ks.lucky.pojo.DTO.ActivityMQMsg; import com.ks.lucky.remote.service.LuckyActivityOpenService; -import com.ks.lucky.service.impl.LuckyActivityAwardManager; -import com.ks.lucky.service.impl.LuckyActivityAwardResultManager; -import com.ks.lucky.service.impl.LuckyActivityJoinManager; -import com.ks.lucky.service.impl.LuckyActivityOpenInfoManager; +import com.ks.lucky.service.impl.*; import com.ks.lucky.util.LuckyRunUtil; +import com.ks.lucky.util.mq.CMQManager; import org.apache.dubbo.config.annotation.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,7 +22,7 @@ import java.util.Map; import java.util.Set; -@Service(version = "1.0") +@Service(version = "1.0.0") public class LuckyActivityOpenServiceImpl implements LuckyActivityOpenService { @Resource @@ -29,6 +30,7 @@ @Resource private LuckyActivityMapper luckyActivityMapper; + @Resource private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; @@ -39,6 +41,9 @@ @Resource private LuckyActivityAwardResultManager luckyActivityAwardResultManager; + @Resource + private LuckyActivityManager luckyActivityManager; + /** * 鏄惁鍙互寮�濂栦簡 @@ -48,7 +53,6 @@ */ private boolean canOpen(LuckyActivity activity) throws LuckyActivityException { long now = System.currentTimeMillis(); - if (activity.getState() != LuckyActivity.STATE_FINISH) { throw new LuckyActivityException(1, "娲诲姩灏氭湭缁撴潫"); } @@ -72,16 +76,19 @@ @Transactional(rollbackFor = Exception.class) @Override - public void preOpenAward(Long activityId) throws LuckyActivityException, LuckyActivityAwardException { + public void preOpenAward(Long activityId) throws LuckyActivityException, LuckyActivityOpenException, LuckyActivityAwardException { //鍒ゆ柇娲诲姩鐘舵�� LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); if (activity == null) { throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�"); } - //鍒ゆ柇鏄惁杈惧埌寮�濂栨潯浠� - canOpen(activity); + try { + canOpen(activity); + } catch (LuckyActivityException e) { + throw new LuckyActivityOpenException(1, "灏氭湭杈惧埌寮�濂栨潯浠�"); + } //------------璁$畻寮�濂�------------- //鑾峰彇濂栭」鏁版嵁 @@ -106,7 +113,9 @@ update.setState(LuckyActivity.STATE_PRE_OPENED); update.setStateRemarks("棰勫紑濂栨垚鍔�"); update.setUpdateTime(new Date()); - luckyActivityMapper.updateByPrimaryKeySelective(update); + luckyActivityManager.updateSelectiveByPrimaryKey(update); + //娣诲姞娑堟伅 + CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_OPEN_SHOW, new Date())); } @Transactional(rollbackFor = Exception.class) @@ -122,8 +131,36 @@ update.setUpdateTime(new Date()); update.setState(LuckyActivity.STATE_OPENED); update.setStateRemarks("宸插紑濂�"); - luckyActivityMapper.updateByPrimaryKeySelective(update); - luckyActivityAwardResultManager.setResultShow(activityId); + luckyActivityManager.updateSelectiveByPrimaryKey(update); + + //鍏堣缃墍鏈夎褰曟湭涓 + luckyActivityJoinManager.setActivityAllJoinerUnDraw(activityId); + //璁剧疆涓鐢ㄦ埛鐘舵�佷负涓 + luckyActivityJoinManager.setActivityDrawnJoinerState(activityId); + + try { + luckyActivityAwardResultManager.setResultShow(activityId); + } catch (LuckyMQException e) { + throw new LuckyActivityException(10, "娣诲姞MQ鍑洪敊"); + } + } + + @Override + public void reachMinPerson(Long activityId) throws LuckyActivityException { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(activityId); + if (activity == null) { + throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�"); + } + //濡傛灉鏈缃紑濂栨椂闂达紝涓旀椿鍔ㄦ鍦ㄨ繘琛岋紝灏卞垽鏂槸鍚﹁揪鍒版渶浣庝汉鏁� + if (activity.getPreOpenTime() == null) { + if (activity.getState() == LuckyActivity.STATE_STARTED) { + try { + luckyActivityManager.finishActivity(activityId, false, "杈惧埌鏈�浣庡紑濂栦汉鏁�"); + } catch (LuckyMQException e) { + throw new LuckyActivityException(1, e.getMsg()); + } + } + } } -- Gitblit v1.8.0