From b82493b0c083ed6bd5c0013bf21b8cb651a32eec Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 26 十二月 2020 17:21:40 +0800
Subject: [PATCH] 活动图片添加,自动生成代码框架初步搭建

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java |  104 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 98 insertions(+), 6 deletions(-)

diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java
index a0f2fd5..75509ba 100644
--- a/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java
+++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java
@@ -1,11 +1,16 @@
 package com.ks.lucky.service.impl;
 
 import com.ks.lucky.exception.LuckyActivityException;
+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.LuckyActivityOpenInfo;
+import com.ks.lucky.pojo.DO.LuckyMQ;
 import com.ks.lucky.pojo.DTO.ActivityMQMsg;
+import com.ks.lucky.pojo.DTO.mq.ActivityStateChangeMsgDTO;
+import com.ks.lucky.service.LuckyMQService;
 import com.ks.lucky.util.mq.CMQManager;
+import com.ks.lucky.util.mq.LuckyMQFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -22,6 +27,9 @@
     @Resource
     private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager;
 
+    @Resource
+    private LuckyMQService luckyMQService;
+
 
     /**
      * 娲诲姩鏄惁杩樺彲浠ュ弬鍔�
@@ -36,12 +44,9 @@
             throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�");
         }
 
-        if (activity.getState() == LuckyActivity.STATE_NOT_STARTED) {
-            throw new LuckyActivityException(1, "娲诲姩杩樻湭寮�濮�");
-        }
 
-        if (activity.getState() == LuckyActivity.STATE_FINISH || activity.getState() == LuckyActivity.STATE_OPENED) {
-            throw new LuckyActivityException(1, "娲诲姩宸茬粡缁撴潫");
+        if (activity.getState() != LuckyActivity.STATE_STARTED) {
+            throw new LuckyActivityException(1, "娲诲姩涓嶅彲鍙備笌");
         }
 
         if (activity.getCurrentPersonCount() >= activity.getMaxPersonCount()) {
@@ -49,6 +54,23 @@
         }
 
         return true;
+    }
+
+
+    /**
+     * 鏄惁鍙互鏇存敼娲诲姩鍐呭
+     *
+     * @param activityId
+     * @return
+     */
+    public boolean canUpdate(Long activityId) {
+        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(activityId);
+        if (activity != null) {
+            if (activity.getState() == LuckyActivity.STATE_VERIFY_REJECT || activity.getState() == LuckyActivity.STATE_NOT_SUBMIT_VERIFY) {
+                return true;
+            }
+        }
+        return false;
     }
 
     /**
@@ -93,7 +115,7 @@
      *
      * @param activityId
      */
-    public void startUpActivity(Long activityId) throws LuckyActivityException {
+    public void startUpActivity(Long activityId) throws LuckyActivityException, LuckyMQException {
         LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
         if (luckyActivity == null) {
             throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�");
@@ -105,6 +127,74 @@
 
         //鍚姩娲诲姩
         setState(activityId, LuckyActivity.STATE_STARTED, "宸茬粡鍚姩");
+        //璁剧疆瀹為檯寮�濮嬫椂闂�
+        LuckyActivity update = new LuckyActivity();
+        update.setId(activityId);
+        update.setActualStartTime(new Date());
+        update.setUpdateTime(new Date());
+        luckyActivityMapper.updateByPrimaryKeySelective(update);
+
+        //鏈夐璁$粨鏉熸椂闂�
+        if (luckyActivity.getPreFinishTime() != null) {
+            //娣诲姞缁撴潫娑堟伅
+            LuckyMQ mq = LuckyMQFactory.createFinishActivity(luckyActivity);
+            luckyMQService.addMQ(mq);
+        }
+
+        //灏濊瘯鍒犻櫎娑堟伅
+        try {
+            LuckyMQ mq = LuckyMQFactory.createStartUpActivity(luckyActivity);
+            luckyMQService.removeUnSendMsg(mq.getTaskId());
+        } catch (LuckyMQException e) {
+            e.printStackTrace();
+        }
+
+
+    }
+
+
+    /**
+     * 缁撴潫娲诲姩
+     *
+     * @param activityId
+     * @param force      鏄惁寮哄埗缁撴潫
+     * @param remarks
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void finishActivity(Long activityId, boolean force, String remarks) throws LuckyActivityException, LuckyMQException {
+        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
+        if (activity.getState() != LuckyActivity.STATE_STARTED) {
+            throw new LuckyActivityException(1, "娲诲姩鏈浜庡凡寮�濮嬬姸鎬�");
+        }
+
+        //璁剧疆娲诲姩澶勪簬寮哄埗缁撴潫鐘舵��
+        if (force) {
+            setState(activityId, LuckyActivity.STATE_FOUCE_FINISH, remarks);
+        } else {
+            setState(activityId, LuckyActivity.STATE_FINISH, remarks);
+        }
+        LuckyActivity update = new LuckyActivity();
+        update.setId(activityId);
+        update.setActualFinishTime(new Date());
+        update.setUpdateTime(new Date());
+        luckyActivityMapper.updateByPrimaryKeySelective(update);
+
+        activity.setActualFinishTime(update.getActualFinishTime());
+        //寮哄埗缁撴潫鐨勪笉寮�濂�
+        if (!force) {
+            //娣诲姞寮�濂栨秷鎭�
+            LuckyMQ mq = LuckyMQFactory.createOpenActivity(activity);
+            luckyMQService.addMQ(mq);
+        }
+        //灏濊瘯鍒犻櫎娑堟伅
+        try {
+            LuckyMQ mq1 = LuckyMQFactory.createFinishActivity(activity);
+            luckyMQService.removeUnSendMsg(mq1.getTaskId());
+        } catch (LuckyMQException e) {
+            e.printStackTrace();
+        }
+
+
     }
 
 
@@ -126,6 +216,7 @@
      * @param state
      * @param stateRemarks
      */
+    @Transactional(rollbackFor = Exception.class)
     public void setState(Long activityId, int state, String stateRemarks) {
         LuckyActivity activity = new LuckyActivity();
         activity.setId(activityId);
@@ -133,6 +224,7 @@
         activity.setStateRemarks(stateRemarks);
         activity.setUpdateTime(new Date());
         luckyActivityMapper.updateByPrimaryKeySelective(activity);
+        CMQManager.getInstance().publishActivityStateChangeMsg(new ActivityStateChangeMsgDTO(activityId, state, stateRemarks, activity.getUpdateTime()));
     }
 
 }

--
Gitblit v1.8.0