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