From a2fe11f549f52e887937dbdb63d967a09d3a3f21 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 02 十二月 2020 18:54:38 +0800
Subject: [PATCH] 抽奖核心服务完善,天天抽奖服务基本搭建

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java |   43 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 35 insertions(+), 8 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..f210a2d 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,17 +2,19 @@
 
 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.omg.PortableServer.THREAD_POLICY_ID;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
@@ -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, "灏氭湭杈惧埌寮�濂栨潯浠�");
+        }
         //------------璁$畻寮�濂�-------------
 
         //鑾峰彇濂栭」鏁版嵁
@@ -107,6 +114,8 @@
         update.setStateRemarks("棰勫紑濂栨垚鍔�");
         update.setUpdateTime(new Date());
         luckyActivityMapper.updateByPrimaryKeySelective(update);
+        //娣诲姞娑堟伅
+        CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_OPEN_SHOW, new Date()));
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -126,5 +135,23 @@
         luckyActivityAwardResultManager.setResultShow(activityId);
     }
 
+    @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