From df4441322e9801c102299451da41d7c40b4502e9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 24 六月 2021 18:53:13 +0800
Subject: [PATCH] zookeeper地址修改,Maven采用私服

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java |   91 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 82 insertions(+), 9 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 ce2dcce..e112c28 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
@@ -3,18 +3,24 @@
 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.DO.*;
 import com.ks.lucky.pojo.DTO.ActivityMQMsg;
+import com.ks.lucky.pojo.DTO.mq.ActivityStateChangeMsgDTO;
+import com.ks.lucky.service.LuckyActivityImageService;
 import com.ks.lucky.service.LuckyMQService;
+import com.ks.lucky.util.LoggerUtil;
+import com.ks.lucky.util.annotation.RedisCache;
+import com.ks.lucky.util.annotation.RedisCacheEvict;
 import com.ks.lucky.util.mq.CMQManager;
 import com.ks.lucky.util.mq.LuckyMQFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 
 @Component
@@ -28,6 +34,52 @@
 
     @Resource
     private LuckyMQService luckyMQService;
+    @Resource
+    private LuckyActivityImageService luckyActivityImageService;
+    @Resource
+    private LuckyActivitySponsorInfoManager luckyActivitySponsorInfoManager;
+    @Resource
+    private LuckyActivityAwardManager luckyActivityAwardManager;
+
+
+    @RedisCache(cate = "activity", key = "'activity-detail-'+#id", second = 3600)
+    public LuckyActivity getActivityDetail(Long id) {
+        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(id);
+        if (activity == null) {
+            return null;
+        }
+
+        //鍔犺浇鍥剧墖淇℃伅
+        List<LuckyActivityImage> bannerList = luckyActivityImageService.listByActivityId(id, LuckyActivityImage.LuckyImageType.banner);
+        activity.setBannerList(bannerList);
+
+        //鍔犺浇寮�濂栦俊鎭�
+        LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activity.getId());
+        activity.setOpenInfo(openInfo);
+
+        //鍔犺浇璧炲姪淇℃伅
+        LuckyActivitySponsorInfo sponsorInfo = luckyActivitySponsorInfoManager.getSponsorInfo(activity.getId());
+        if (sponsorInfo != null) {
+            sponsorInfo = luckyActivitySponsorInfoManager.getSponsorInfoDetail(sponsorInfo.getId());
+        }
+        activity.setSponsorInfo(sponsorInfo);
+
+
+        //鍔犺浇濂栭」淇℃伅
+        List<LuckyActivityAwards> awardsList = luckyActivityAwardManager.getAwardList(activity.getId());
+        List<LuckyActivityAwards> awardsDetailList = new ArrayList<>();
+        if (awardsList != null) {
+            for (LuckyActivityAwards awards : awardsList) {
+                awards = luckyActivityAwardManager.getAwardDetail(awards.getId());
+                if (awards != null) {
+                    awardsDetailList.add(awards);
+                }
+            }
+        }
+        activity.setAwardsList(awardsDetailList);
+
+        return activity;
+    }
 
 
     /**
@@ -79,6 +131,7 @@
      * @param count
      * @throws LuckyActivityException
      */
+    @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
     @Transactional(rollbackFor = Exception.class)
     public void addJoinCount(Long activityId, int count) throws LuckyActivityException {
         LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
@@ -96,7 +149,7 @@
         update.setId(activityId);
         update.setCurrentPersonCount(currentCount + count);
         update.setUpdateTime(new Date());
-        luckyActivityMapper.updateByPrimaryKeySelective(update);
+        updateSelectiveByPrimaryKey(update);
         if (update.getCurrentPersonCount().intValue() >= openInfo.getMinPersonCount() && currentCount < openInfo.getMinPersonCount()) {
             //杈惧埌鏈�浣庡紑濂栦汉鏁�
             CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_REACH_MIN_PERSON, new Date()));
@@ -114,6 +167,8 @@
      *
      * @param activityId
      */
+    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
     public void startUpActivity(Long activityId) throws LuckyActivityException, LuckyMQException {
         LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
         if (luckyActivity == null) {
@@ -131,7 +186,7 @@
         update.setId(activityId);
         update.setActualStartTime(new Date());
         update.setUpdateTime(new Date());
-        luckyActivityMapper.updateByPrimaryKeySelective(update);
+        updateSelectiveByPrimaryKey(update);
 
         //鏈夐璁$粨鏉熸椂闂�
         if (luckyActivity.getPreFinishTime() != null) {
@@ -148,7 +203,7 @@
             e.printStackTrace();
         }
 
-
+        LoggerUtil.activityLogger.info("娲诲姩鍚姩鎴愬姛:activityId-{}", activityId);
     }
 
 
@@ -159,6 +214,7 @@
      * @param force      鏄惁寮哄埗缁撴潫
      * @param remarks
      */
+    @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
     @Transactional(rollbackFor = Exception.class)
     public void finishActivity(Long activityId, boolean force, String remarks) throws LuckyActivityException, LuckyMQException {
         LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
@@ -176,13 +232,18 @@
         update.setId(activityId);
         update.setActualFinishTime(new Date());
         update.setUpdateTime(new Date());
-        luckyActivityMapper.updateByPrimaryKeySelective(update);
+        updateSelectiveByPrimaryKey(update);
 
         activity.setActualFinishTime(update.getActualFinishTime());
         //寮哄埗缁撴潫鐨勪笉寮�濂�
         if (!force) {
             //娣诲姞寮�濂栨秷鎭�
-            LuckyMQ mq = LuckyMQFactory.createOpenActivity(activity);
+            LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId);
+            Date openTime = openInfo.getPreOpenTime();
+            if (openTime == null) {
+                openTime = new Date();
+            }
+            LuckyMQ mq = LuckyMQFactory.createOpenActivity(activityId, openTime);
             luckyMQService.addMQ(mq);
         }
         //灏濊瘯鍒犻櫎娑堟伅
@@ -193,7 +254,7 @@
             e.printStackTrace();
         }
 
-
+        LoggerUtil.activityLogger.info("娲诲姩鎴愬姛缁撴潫:activityId-{} force-{} remarks-{}", activityId, force, remarks);
     }
 
 
@@ -215,12 +276,24 @@
      * @param state
      * @param stateRemarks
      */
+    @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
+    @Transactional(rollbackFor = Exception.class)
     public void setState(Long activityId, int state, String stateRemarks) {
         LuckyActivity activity = new LuckyActivity();
         activity.setId(activityId);
         activity.setState(state);
         activity.setStateRemarks(stateRemarks);
         activity.setUpdateTime(new Date());
+        updateSelectiveByPrimaryKey(activity);
+        CMQManager.getInstance().publishActivityStateChangeMsg(new ActivityStateChangeMsgDTO(activityId, state, stateRemarks, activity.getUpdateTime()));
+        LoggerUtil.activityLogger.info("娲诲姩鐘舵�佹洿鏀癸細activityId-{}  state-{} stateRemarks-{}", activityId, state, stateRemarks);
+    }
+
+    @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activity.id")
+    public void updateSelectiveByPrimaryKey(LuckyActivity activity) {
+        if (activity.getUpdateTime() == null) {
+            activity.setUpdateTime(new Date());
+        }
         luckyActivityMapper.updateByPrimaryKeySelective(activity);
     }
 

--
Gitblit v1.8.0