From 6c09cbd70388ae53ec593de253f69cfa1a3eeda7 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 06 二月 2021 15:41:25 +0800
Subject: [PATCH] 活动管理界面完善

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java |   27 +++++++++++++++++++--------
 1 files changed, 19 insertions(+), 8 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 e4d7731..f52fd66 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
@@ -16,6 +16,7 @@
 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.LoggerUtil;
 import com.ks.lucky.util.factory.LuckyActivityUserWeightRecordFactory;
 import com.ks.lucky.util.mq.CMQManager;
 import org.apache.dubbo.config.annotation.Service;
@@ -56,7 +57,7 @@
     @Transactional(rollbackFor = Exception.class)
     @Validated
     @Override
-    public void join(Long activityId, Long appId, String uid, Integer weight, JoinInfo joinInfo,int userType) throws LuckyActivityException, LuckyActivityJoinException {
+    public void join(Long activityId, Long appId, String uid, Integer weight, JoinInfo joinInfo, int userType) throws LuckyActivityException, LuckyActivityJoinException {
         luckyActivityManager.canJoin(activityId);
         LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
         if (record != null) {
@@ -86,6 +87,8 @@
         } catch (ParamsException e) {
             throw new LuckyActivityJoinException(1, "娣诲姞璁板綍鍑洪敊");
         }
+
+        LoggerUtil.activityJoinLogger.info("鍙傚姞娲诲姩鎴愬姛锛歛ctivityId-{} uid-{}", activityId, uid);
 
         CMQManager.getInstance().publishActivityJoinMsg(ActivityJoinMsgDTO.create(record));
     }
@@ -188,11 +191,11 @@
     }
 
     @Override
-    public List<ActivitySimpleUser> getJoinerList(Long activityId,Integer userType, 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.userType = userType;
         query.count = count;
         query.start = (page - 1) * count;
 
@@ -207,10 +210,10 @@
     }
 
     @Override
-    public long countJoiner(Long activityId,Integer userType) {
+    public long countJoiner(Long activityId, Integer userType) {
         ActivityJoinRecordQuery query = new ActivityJoinRecordQuery();
         query.activityId = activityId;
-        query.userType=userType;
+        query.userType = userType;
         return luckyActivityJoinRecordMapper.count(query);
     }
 
@@ -258,21 +261,29 @@
         int difJoinnerCount = openInfo.getMinPersonCount() - (int) joinerCount;
         difJoinnerCount = difJoinnerCount > 0 ? difJoinnerCount : 0;
 
-        joinerCount = joinerCount < openInfo.getMinPersonCount() ? (openInfo.getMinPersonCount()) : joinerCount;
+        long joinerCountCompute = joinerCount < openInfo.getMinPersonCount() ? (openInfo.getMinPersonCount()) : joinerCount;
 
         //骞冲潎涓姒傜巼
-        BigDecimal averageProbability = new BigDecimal(awardCount).divide(new BigDecimal(joinerCount), 8, BigDecimal.ROUND_DOWN);
+        BigDecimal averageProbability = new BigDecimal(awardCount).divide(new BigDecimal(joinerCountCompute), 8, BigDecimal.ROUND_DOWN);
         statistic.setAverageDrawnProbability(averageProbability);
+        LuckyActivityJoinRecord record=null;
         if (!StringUtil.isNullOrEmpty(uid)) {
             query.appId = appId;
             query.uid = uid;
-            LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
+            record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
             if (record != null) {
                 //鎴戠殑涓姒傜巼
                 BigDecimal myProbability = new BigDecimal(awardCount * record.getWeight()).divide(new BigDecimal(weight).add(new BigDecimal(difJoinnerCount)), 8, BigDecimal.ROUND_DOWN);
                 statistic.setMyDrawnProbability(myProbability);
             }
         }
+        //瓒呰繃浜嗗灏戜汉
+        query = new ActivityJoinRecordQuery();
+        query.activityId = activityId;
+        query.maxWeight=record.getWeight();
+        long lessCount = luckyActivityJoinRecordMapper.count(query);
+        statistic.setExceedPersonPercent(new BigDecimal(lessCount).multiply(new BigDecimal(100).divide(new BigDecimal(joinerCount), 2, BigDecimal.ROUND_DOWN)));
+
         statistic.setActivityId(activityId);
         return statistic;
     }

--
Gitblit v1.8.0