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/remote/LuckyActivityJoinServiceImpl.java |   41 ++++++++++++++++++++++++++++++++---------
 1 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java
index bc3c67e..4496488 100644
--- a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java
+++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java
@@ -5,19 +5,19 @@
 import com.ks.lucky.exception.LuckyActivityJoinException;
 import com.ks.lucky.mapper.LuckyActivityAwardsMapper;
 import com.ks.lucky.mapper.LuckyActivityJoinRecordMapper;
-import com.ks.lucky.pojo.DO.LuckyActivity;
-import com.ks.lucky.pojo.DO.LuckyActivityAwards;
-import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
-import com.ks.lucky.pojo.DO.LuckyActivityUserWeightRecord;
+import com.ks.lucky.pojo.DO.*;
 import com.ks.lucky.pojo.DTO.*;
+import com.ks.lucky.pojo.DTO.mq.ActivityJoinMsgDTO;
 import com.ks.lucky.query.ActivityAwardQuery;
 import com.ks.lucky.query.ActivityJoinRecordQuery;
 import com.ks.lucky.remote.service.LuckyActivityJoinService;
-import com.ks.lucky.service.impl.AppManager;
+import com.ks.lucky.remote.service.LuckyActivityOpenService;
 import com.ks.lucky.service.impl.LuckyActivityJoinManager;
 import com.ks.lucky.service.impl.LuckyActivityManager;
+import com.ks.lucky.service.impl.LuckyActivityOpenInfoManager;
 import com.ks.lucky.service.impl.LuckyActivityUserWeightRecordManager;
 import com.ks.lucky.util.factory.LuckyActivityUserWeightRecordFactory;
+import com.ks.lucky.util.mq.CMQManager;
 import org.apache.dubbo.config.annotation.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -30,7 +30,7 @@
 import java.util.Date;
 import java.util.List;
 
-@Service(version = "1.0")
+@Service(version = "1.0.0")
 public class LuckyActivityJoinServiceImpl implements LuckyActivityJoinService {
 
     @Resource
@@ -47,6 +47,10 @@
 
     @Resource
     private LuckyActivityAwardsMapper luckyActivityAwardsMapper;
+
+
+    @Resource
+    private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager;
 
 
     @Transactional(rollbackFor = Exception.class)
@@ -83,6 +87,7 @@
             throw new LuckyActivityJoinException(1, "娣诲姞璁板綍鍑洪敊");
         }
 
+        CMQManager.getInstance().publishActivityJoinMsg(ActivityJoinMsgDTO.create(record));
     }
 
     @Override
@@ -183,10 +188,11 @@
     }
 
     @Override
-    public List<ActivitySimpleUser> getJoinerList(Long activityId, int page, int count) {
+    public List<ActivitySimpleUser> getJoinerList(Long activityId,Integer userType, int page, int count) {
         ActivityJoinRecordQuery query = new ActivityJoinRecordQuery();
         query.activityId = activityId;
         query.sortList = Arrays.asList(new String[]{"id asc"});
+        query.userType=userType;
         query.count = count;
         query.start = (page - 1) * count;
 
@@ -198,6 +204,14 @@
             }
         }
         return list;
+    }
+
+    @Override
+    public long countJoiner(Long activityId,Integer userType) {
+        ActivityJoinRecordQuery query = new ActivityJoinRecordQuery();
+        query.activityId = activityId;
+        query.userType=userType;
+        return luckyActivityJoinRecordMapper.count(query);
     }
 
     @Override
@@ -228,6 +242,7 @@
         ActivityDrawnProbabilityStatistic statistic = new ActivityDrawnProbabilityStatistic();
         ActivityAwardQuery awardQuery = new ActivityAwardQuery();
         awardQuery.activityId = activityId;
+        awardQuery.count = 100;
         //濂栭」鏁伴噺
         int awardCount = 0;
         List<LuckyActivityAwards> awards = luckyActivityAwardsMapper.list(awardQuery);
@@ -235,8 +250,16 @@
             for (LuckyActivityAwards award : awards) {
                 awardCount += award.getCount();
             }
-
         }
+
+        LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId);
+
+        //杩樺樊澶氬皯浜哄紑濂�
+        int difJoinnerCount = openInfo.getMinPersonCount() - (int) joinerCount;
+        difJoinnerCount = difJoinnerCount > 0 ? difJoinnerCount : 0;
+
+        joinerCount = joinerCount < openInfo.getMinPersonCount() ? (openInfo.getMinPersonCount()) : joinerCount;
+
         //骞冲潎涓姒傜巼
         BigDecimal averageProbability = new BigDecimal(awardCount).divide(new BigDecimal(joinerCount), 8, BigDecimal.ROUND_DOWN);
         statistic.setAverageDrawnProbability(averageProbability);
@@ -246,7 +269,7 @@
             LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
             if (record != null) {
                 //鎴戠殑涓姒傜巼
-                BigDecimal myProbability = new BigDecimal(awardCount * record.getWeight()).divide(new BigDecimal(weight), 8, BigDecimal.ROUND_DOWN);
+                BigDecimal myProbability = new BigDecimal(awardCount * record.getWeight()).divide(new BigDecimal(weight).add(new BigDecimal(difJoinnerCount)), 8, BigDecimal.ROUND_DOWN);
                 statistic.setMyDrawnProbability(myProbability);
             }
         }

--
Gitblit v1.8.0