From 5405154d6979f1b50ce2d881bb164b1acca80b6d Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 15 一月 2021 18:58:18 +0800
Subject: [PATCH] 修改相关bug

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java |   42 +++++++++++++++++++++++++++++-------------
 1 files changed, 29 insertions(+), 13 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 16fccea..5dc36d9 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,9 +1,6 @@
 package com.ks.lucky.service.impl.remote;
 
-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.exception.*;
 import com.ks.lucky.mapper.LuckyActivityMapper;
 import com.ks.lucky.pojo.DO.LuckyActivity;
 import com.ks.lucky.pojo.DO.LuckyActivityAwards;
@@ -51,7 +48,7 @@
      * @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, "娲诲姩灏氭湭缁撴潫");
@@ -59,16 +56,19 @@
 
         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;
     }
@@ -86,6 +86,14 @@
         //鍒ゆ柇鏄惁杈惧埌寮�濂栨潯浠�
         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, "灏氭湭杈惧埌寮�濂栨潯浠�");
         }
@@ -120,7 +128,7 @@
 
     @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, "灏氭湭寮�濂�");
@@ -132,6 +140,13 @@
         update.setState(LuckyActivity.STATE_OPENED);
         update.setStateRemarks("宸插紑濂�");
         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);
@@ -152,7 +167,8 @@
             throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�");
         }
         //濡傛灉鏈缃紑濂栨椂闂达紝涓旀椿鍔ㄦ鍦ㄨ繘琛岋紝灏卞垽鏂槸鍚﹁揪鍒版渶浣庝汉鏁�
-        if (activity.getPreOpenTime() == null) {
+        LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId);
+        if (openInfo.getPreOpenTime() == null) {
             if (activity.getState() == LuckyActivity.STATE_STARTED) {
                 try {
                     luckyActivityManager.finishActivity(activityId, false, "杈惧埌鏈�浣庡紑濂栦汉鏁�");

--
Gitblit v1.8.0