From 25680e135b5bdc15658622cbfde74bab73cfee77 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 25 十二月 2020 18:54:40 +0800
Subject: [PATCH] 功能完善

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityAwardResultManager.java |   77 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 72 insertions(+), 5 deletions(-)

diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityAwardResultManager.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityAwardResultManager.java
index 5e5946f..b4fc569 100644
--- a/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityAwardResultManager.java
+++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityAwardResultManager.java
@@ -6,12 +6,22 @@
 import com.ks.app.entity.AppInfo;
 import com.ks.lucky.exception.LuckyActivityAwardException;
 import com.ks.lucky.exception.LuckyActivityAwardResultException;
+import com.ks.lucky.exception.LuckyMQException;
 import com.ks.lucky.mapper.LuckyActivityAwardResultExtraMapper;
 import com.ks.lucky.mapper.LuckyActivityAwardResultMapper;
 import com.ks.lucky.pojo.DO.LuckyActivityAwardResult;
 import com.ks.lucky.pojo.DO.LuckyActivityAwardResultExtra;
 import com.ks.lucky.pojo.DO.LuckyActivityAwards;
+import com.ks.lucky.pojo.DO.LuckyMQ;
 import com.ks.lucky.pojo.DTO.ActivityAwardParams;
+import com.ks.lucky.pojo.DTO.mq.ActivityDrawnMsgDTO;
+import com.ks.lucky.query.ActivityAwardResultQuery;
+import com.ks.lucky.service.LuckyMQService;
+import com.ks.lucky.util.Constant;
+import com.ks.lucky.util.mq.CMQManager;
+import com.ks.lucky.util.mq.LuckyMQFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import org.yeshi.utils.StringUtil;
@@ -21,12 +31,14 @@
 import org.yeshi.utils.entity.alipay.AlipayTransferAccount;
 import org.yeshi.utils.entity.alipay.AlipayTransferInfo;
 import org.yeshi.utils.exception.AlipayTransferException;
+import org.yeshi.utils.generater.entity.ExceptionData;
 
 import javax.annotation.Resource;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -34,6 +46,8 @@
  */
 @Component
 public class LuckyActivityAwardResultManager {
+
+    Logger logger = LoggerFactory.getLogger(LuckyActivityAwardResultManager.class);
 
     @Resource
     private LuckyActivityAwardManager luckyActivityAwardManager;
@@ -47,8 +61,8 @@
     @Resource
     private LuckyActivityAwardResultExtraMapper luckyActivityAwardResultExtraMapper;
 
-
-
+    @Resource
+    private LuckyMQService luckyMQService;
 
 
     /**
@@ -79,6 +93,13 @@
             extra.setAwardResultId(result.getId());
             extra.setCreateTime(new Date());
             luckyActivityAwardResultExtraMapper.insertSelective(extra);
+
+            //娣诲姞閫氱煡
+            try {
+                CMQManager.getInstance().publishActivityDrawnMsg(ActivityDrawnMsgDTO.create(result));
+            } catch (Exception e) {
+
+            }
         }
 
 
@@ -159,9 +180,55 @@
     }
 
 
-    @Transactional
-    public void setResultShow(Long activityId) {
-        luckyActivityAwardResultMapper.setStateByActivityId(activityId, LuckyActivityAwardResult.STATE_NOT_RECIEVE, "绛夊緟棰嗗彇", new Date());
+    @Transactional(rollbackFor = Exception.class)
+    public void setResultShow(Long activityId) throws LuckyMQException {
+        Date date = new Date();
+        luckyActivityAwardResultMapper.setStateByActivityId(activityId, LuckyActivityAwardResult.STATE_NOT_RECIEVE, "绛夊緟棰嗗彇", date);
+        ActivityAwardResultQuery query = new ActivityAwardResultQuery();
+        query.activityId = activityId;
+        long count = luckyActivityAwardResultMapper.count(query);
+        query.count = (int) count;
+
+        List<LuckyActivityAwardResult> resultList = luckyActivityAwardResultMapper.list(query);
+        if (resultList != null && resultList.size() > 0) {
+            for (LuckyActivityAwardResult result : resultList) {
+                //娣诲姞杩囨湡棰嗗彇閫氱煡
+                LuckyMQ mq = LuckyMQFactory.createActivityDrawnOutDate(result.getId(), new Date(date.getTime() + Constant.ACTIVITY_DRAWN_RECIEVE_VALID_TIME));
+                luckyMQService.addMQ(mq);
+
+                //娣诲姞閫氱煡
+                try {
+                    CMQManager.getInstance().publishActivityDrawnMsg(ActivityDrawnMsgDTO.create(result));
+                } catch (Exception e) {
+                    logger.error("鍙戝竷娲诲姩涓鐨勮闃呮秷鎭嚭閿欙細", result.getId(), e.getMessage());
+                }
+            }
+        }
+    }
+
+    /**
+     * 浣夸腑濂栬繃鏈�
+     *
+     * @param id
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void setResultOutDate(Long id) {
+        LuckyActivityAwardResult result = luckyActivityAwardResultMapper.selectByPrimaryKeyForUpdate(id);
+        if (result.getState() != LuckyActivityAwardResult.STATE_NOT_RECIEVE) {
+            return;
+        }
+
+        LuckyActivityAwardResult update = new LuckyActivityAwardResult();
+        update.setId(id);
+        update.setState(LuckyActivityAwardResult.STATE_OUT_OF_DATE);
+        update.setStateDesc("杩囨湡鏈鍙�");
+        update.setUpdateTime(new Date());
+        luckyActivityAwardResultMapper.updateByPrimaryKeySelective(update);
+
+        result.setStateDesc(update.getStateDesc());
+        result.setState(update.getState());
+        //鍙戝竷娑堟伅
+        CMQManager.getInstance().publishActivityDrawnMsg(ActivityDrawnMsgDTO.create(result));
     }
 
 }

--
Gitblit v1.8.0