From 452714cdffb21300ed64d5818efaa9cc38c3ee83 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 17 十二月 2020 18:35:43 +0800
Subject: [PATCH] rpc服务引用优化

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java |  141 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 103 insertions(+), 38 deletions(-)

diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java
index 55f195f..58e96ee 100644
--- a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java
+++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java
@@ -1,13 +1,10 @@
 package com.ks.lucky.service.impl.remote;
 
-import com.ks.app.exception.AppException;
+import com.ks.lib.common.exception.ParamsException;
 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.LuckyActivityAwards;
-import com.ks.lucky.pojo.DO.LuckyActivityOpenInfo;
-import com.ks.lucky.pojo.DO.LuckyActivitySponsorInfo;
+import com.ks.lucky.pojo.DO.*;
 import com.ks.lucky.query.ActivityDaoQuery;
 import com.ks.lucky.remote.service.LuckyActivityService;
 import com.ks.lucky.service.LuckyMQService;
@@ -18,10 +15,12 @@
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
-@Service(version = "1.0")
+@Service(version = "1.0.0")
 public class LuckyActivityServiceImpl implements LuckyActivityService {
 
     @Resource
@@ -45,9 +44,6 @@
     @Resource
     private LuckyMQService luckyMQService;
 
-    private Long getAppId(String appKey) throws AppException {
-        return appManager.getAppId(appKey);
-    }
 
     private void notNull(LuckyActivity activity) throws LuckyActivityException {
         if (activity == null) {
@@ -56,17 +52,12 @@
     }
 
     @Override
-    public List<LuckyActivity> getActivityList(String appKey, Long sponsorId, List<Integer> stateList, String key, int page, int pageSize) {
+    public List<LuckyActivity> getActivityList(Long appId, Long sponsorId, List<Integer> stateList, String key, int page, int pageSize) {
         ActivityDaoQuery query = new ActivityDaoQuery();
         query.stateList = stateList;
         query.key = key;
         query.sponsorId = sponsorId;
-
-        try {
-            query.appId = getAppId(appKey);
-        } catch (AppException e) {
-            return null;
-        }
+        query.appId = appId;
         query.start = (page - 1) * pageSize;
         query.count = pageSize;
         query.sort = "start_time desc";
@@ -74,16 +65,13 @@
     }
 
     @Override
-    public long countActivity(String appKey, Long sponsorId, List<Integer> stateList, String key) {
+    public long countActivity(Long appId, Long sponsorId, List<Integer> stateList, String key) {
         ActivityDaoQuery query = new ActivityDaoQuery();
         query.stateList = stateList;
         query.key = key;
         query.sponsorId = sponsorId;
-        try {
-            query.appId = getAppId(appKey);
-        } catch (AppException e) {
-            return 0L;
-        }
+        query.appId = appId;
+
         return luckyActivityMapper.count(query);
     }
 
@@ -91,7 +79,15 @@
     @Validated
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Long createActivity(LuckyActivity activity) throws LuckyActivityException {
+    public Long createActivity(LuckyActivity activity) throws ParamsException, LuckyActivityException {
+
+        activity.setState(LuckyActivity.STATE_NOT_SUBMIT_VERIFY);
+        activity.setStateRemarks("鏈彁浜ゅ鏍�");
+
+        if (activity.getCreateTime() == null) {
+            activity.setCreateTime(new Date());
+        }
+
         luckyActivityMapper.insertSelective(activity);
         return activity.getId();
     }
@@ -115,15 +111,15 @@
      */
     private void checkActivityForPublish(LuckyActivity activity) throws LuckyActivityException {
         notNull(activity);
-        if (activity.getStartTime() == null) {
+        if (activity.getPreStartTime() == null) {
             throw new LuckyActivityException(1, "娲诲姩寮�濮嬫椂闂存湭璁剧疆");
         }
 
-        if (activity.getStartTime().getTime() < System.currentTimeMillis()) {
+        if (activity.getPreStartTime().getTime() < System.currentTimeMillis()) {
             throw new LuckyActivityException(1, "娲诲姩寮�濮嬫椂闂翠笉鑳藉皬浜庡綋鍓嶆椂闂�");
         }
 
-        if (activity.getFinishTime() != null && activity.getStartTime().getTime() >= activity.getFinishTime().getTime()) {
+        if (activity.getPreFinishTime() != null && activity.getPreStartTime().getTime() >= activity.getPreFinishTime().getTime()) {
             throw new LuckyActivityException(1, "娲诲姩寮�濮嬬粨鏉熸椂闂翠笉鑳藉皬浜庡紑濮嬫椂闂�");
         }
 
@@ -179,22 +175,25 @@
             throw new LuckyActivityException(2, "娲诲姩灏氭湭澶勪簬宸插彂甯冪姸鎬�");
         }
 
-        luckyActivityManager.startUpActivity(activityId);
-
-
+        try {
+            luckyActivityManager.startUpActivity(activityId);
+        } catch (LuckyMQException e) {
+            throw new LuckyActivityException(e.getCode(), e.getMsg());
+        }
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void verifyActivity(Long activityId, boolean pass, String remarks) throws LuckyActivityException {
         LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
+        notNull(activity);
         if (activity.getState() != LuckyActivity.STATE_WAITING_VERIFY) {
             throw new LuckyActivityException(2, "娲诲姩灏氭湭澶勪簬瀹℃牳鐘舵��");
         }
 
         //瀹℃牳娲诲姩
-        //瀹℃牳閫氳繃
         if (pass) {
+            //瀹℃牳閫氳繃
             luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_PUBLISH, remarks);
         } else {
             //瀹℃牳鏈�氳繃
@@ -203,18 +202,15 @@
 
     }
 
-    @Transactional(rollbackFor = Exception.class)
     @Override
     public void forceFinishActivity(Long activityId, String remarks) throws LuckyActivityException {
-        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
+        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(activityId);
         notNull(activity);
-
-        if (activity.getState() != LuckyActivity.STATE_STARTED) {
-            throw new LuckyActivityException(1, "娲诲姩鏈浜庡凡寮�濮嬬姸鎬�");
+        try {
+            luckyActivityManager.finishActivity(activityId, true, remarks);
+        } catch (LuckyMQException e) {
+            throw new LuckyActivityException(e.getCode(), e.getMsg());
         }
-
-        //璁剧疆娲诲姩澶勪簬寮哄埗缁撴潫鐘舵��
-        luckyActivityManager.setState(activityId, LuckyActivity.STATE_FOUCE_FINISH, remarks);
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -229,6 +225,26 @@
 
         //璁剧疆娲诲姩涓烘湭鍙戝竷鐘舵��
         luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_PUBLISH, remarks);
+        //鍒犻櫎鐩稿叧鐨勬秷鎭�
+        LuckyMQ mq = LuckyMQFactory.createStartUpActivity(activity);
+
+        try {
+            luckyMQService.removeUnSendMsg(mq.getTaskId());
+        } catch (LuckyMQException e) {
+            throw new LuckyActivityException(2, e.getMsg());
+        }
+
+    }
+
+    @Override
+    public void cancelVerify(Long activityId) throws LuckyActivityException {
+        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
+        notNull(activity);
+        if (activity.getState() != LuckyActivity.STATE_WAITING_VERIFY) {
+            throw new LuckyActivityException(1, "娲诲姩鏈浜庣瓑寰呭鏍哥姸鎬�");
+        }
+
+        luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_SUBMIT_VERIFY, "涓诲姩鍙栨秷瀹℃牳");
     }
 
     @Override
@@ -256,13 +272,62 @@
     }
 
     @Override
+    public List<LuckyActivity> getActivityDetail(List<Long> ids) {
+        List<LuckyActivity> activityList = new ArrayList<>();
+        for (Long id : ids) {
+            LuckyActivity luckyActivity = getActivityDetail(id);
+            activityList.add(luckyActivity);
+        }
+        return activityList;
+    }
+
+    @Override
     public void updateActivity(LuckyActivity activity) throws LuckyActivityException {
         if (activity.getState() != null) {
             throw new LuckyActivityException(1, "涓嶈兘鏇存敼娲诲姩鐘舵��");
         }
+        if (!luckyActivityManager.canUpdate(activity.getId())) {
+            throw new LuckyActivityException(1, "褰撳墠娲诲姩涓嶈兘淇敼");
+        }
+
         activity.setUpdateTime(new Date());
         luckyActivityMapper.updateByPrimaryKeySelective(activity);
     }
 
+    @Override
+    public List<LuckyActivity> getRecommendActivity(Long appId, String uid, int page, int pageSize) {
+        ActivityDaoQuery query = new ActivityDaoQuery();
+        query.appId = appId;
+        query.start = (page - 1) * pageSize;
+        query.count = pageSize;
+        query.sort = "actual_start_time desc";
+
+        query.stateList = Arrays.asList(new Integer[]{
+                LuckyActivity.STATE_STARTED,
+                LuckyActivity.STATE_FINISH,
+                LuckyActivity.STATE_PRE_OPENED,
+                LuckyActivity.STATE_OPENED,
+        });
+
+
+        return luckyActivityMapper.list(query);
+    }
+
+    @Override
+    public Long getRecommendActivityCount(Long appId, String uid) {
+        ActivityDaoQuery query = new ActivityDaoQuery();
+        query.appId = appId;
+
+        query.stateList = Arrays.asList(new Integer[]{
+                LuckyActivity.STATE_STARTED,
+                LuckyActivity.STATE_FINISH,
+                LuckyActivity.STATE_PRE_OPENED,
+                LuckyActivity.STATE_OPENED,
+        });
+
+
+        return luckyActivityMapper.count(query);
+    }
+
 
 }

--
Gitblit v1.8.0