From d6df4ca797ee1c6ce8fa78768f5425f187734bd9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 18 一月 2021 18:44:08 +0800
Subject: [PATCH] 外网部署参数修改

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java |  103 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 76 insertions(+), 27 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..31df726 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
@@ -1,17 +1,15 @@
 package com.ks.lucky.service.impl.remote;
 
-import com.ks.lucky.exception.LuckyActivityAwardException;
-import com.ks.lucky.exception.LuckyActivityException;
+import com.ks.lucky.exception.*;
 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 +19,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 +27,7 @@
 
     @Resource
     private LuckyActivityMapper luckyActivityMapper;
+
 
     @Resource
     private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager;
@@ -39,6 +38,9 @@
     @Resource
     private LuckyActivityAwardResultManager luckyActivityAwardResultManager;
 
+    @Resource
+    private LuckyActivityManager luckyActivityManager;
+
 
     /**
      * 鏄惁鍙互寮�濂栦簡
@@ -46,25 +48,27 @@
      * @param activity
      * @return
      */
-    private boolean canOpen(LuckyActivity activity) throws LuckyActivityException {
+    private boolean canOpen(LuckyActivity activity) throws LuckyActivityException, LuckyActivityOpenException {
         long now = System.currentTimeMillis();
-
         if (activity.getState() != LuckyActivity.STATE_FINISH) {
             throw new LuckyActivityException(1, "娲诲姩灏氭湭缁撴潫");
         }
 
         LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activity.getId());
 
-        //鏈揪鍒版渶浣庡紑濂栦汉鏁�
-        if (activity.getCurrentPersonCount() < openInfo.getMinPersonCount()) {
-            throw new LuckyActivityException(2, "灏氭湭杈惧埌鏈�浣庡紑濂栦汉鏁�");
-        }
 
         //鍒拌揪鏈�浣庡紑濂栦汉鏁板氨寮�濂�
-        if (activity.getPreOpenTime() != null) {
-            if (activity.getPreOpenTime().getTime() > now) {
+        if (openInfo.getPreOpenTime() != null) {
+            if (openInfo.getPreOpenTime().getTime() > now) {
                 throw new LuckyActivityException(2, "灏氭湭杈惧埌寮�濂栨椂闂�");
             }
+        } else {
+            throw new LuckyActivityException(2, "灏氭湭杈惧埌寮�濂栨椂闂�");
+        }
+
+        //鏈揪鍒版渶浣庡紑濂栦汉鏁�
+        if (activity.getCurrentPersonCount() < openInfo.getMinPersonCount()) {
+            throw new LuckyActivityOpenException(LuckyActivityOpenException.CODE_NOT_REACH_OPEN_PERSON_COUNT, "灏氭湭杈惧埌鏈�浣庡紑濂栦汉鏁�");
         }
         return true;
     }
@@ -72,16 +76,27 @@
 
     @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 (LuckyActivityOpenException e) {
+            if (e.getCode() == LuckyActivityOpenException.CODE_NOT_REACH_OPEN_PERSON_COUNT) {
+                //寮�濂栧け璐�
+                luckyActivityManager.setState(activityId, LuckyActivity.STATE_OPEN_FAIL, "浜烘暟鏈揪鍒板紑濂栦汉鏁�,寮�濂栧け璐�");
+                return;
+            } else {
+                throw new LuckyActivityOpenException(1, "灏氭湭杈惧埌寮�濂栨潯浠�");
+            }
+        } catch (LuckyActivityException e) {
+            throw new LuckyActivityOpenException(1, "灏氭湭杈惧埌寮�濂栨潯浠�");
+        }
         //------------璁$畻寮�濂�-------------
 
         //鑾峰彇濂栭」鏁版嵁
@@ -101,17 +116,15 @@
 
 
         //鏇存柊鐘舵��
-        LuckyActivity update = new LuckyActivity();
-        update.setId(activityId);
-        update.setState(LuckyActivity.STATE_PRE_OPENED);
-        update.setStateRemarks("棰勫紑濂栨垚鍔�");
-        update.setUpdateTime(new Date());
-        luckyActivityMapper.updateByPrimaryKeySelective(update);
+        luckyActivityManager.setState(activityId,LuckyActivity.STATE_PRE_OPENED,"棰勫紑濂栨垚鍔�");
+
+        //娣诲姞娑堟伅
+        CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_OPEN_SHOW, new Date()));
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void showOpenAward(Long activityId) throws LuckyActivityException {
+    public void showOpenAward(Long activityId) throws LuckyActivityException, LuckyActivityOpenInfoException {
         LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
         if (activity.getState() != LuckyActivity.STATE_PRE_OPENED) {
             throw new LuckyActivityException(1, "灏氭湭寮�濂�");
@@ -122,8 +135,44 @@
         update.setUpdateTime(new Date());
         update.setState(LuckyActivity.STATE_OPENED);
         update.setStateRemarks("宸插紑濂�");
-        luckyActivityMapper.updateByPrimaryKeySelective(update);
-        luckyActivityAwardResultManager.setResultShow(activityId);
+        luckyActivityManager.updateSelectiveByPrimaryKey(update);
+
+        //璁剧疆瀹為檯寮�濂栨椂闂�
+        LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId);
+        LuckyActivityOpenInfo updateOpenInfo = new LuckyActivityOpenInfo();
+        updateOpenInfo.setId(openInfo.getId());
+        updateOpenInfo.setActualOpenTime(new Date());
+        luckyActivityOpenInfoManager.updateOpenInfo(updateOpenInfo, activityId);
+
+        //鍏堣缃墍鏈夎褰曟湭涓
+        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, "娲诲姩涓嶅瓨鍦�");
+        }
+        //濡傛灉鏈缃紑濂栨椂闂达紝涓旀椿鍔ㄦ鍦ㄨ繘琛岋紝灏卞垽鏂槸鍚﹁揪鍒版渶浣庝汉鏁�
+        LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId);
+        if (openInfo.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