From 478e6722fd36bf9b5d8608c8cca2000190da5496 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 22 十二月 2020 19:16:15 +0800
Subject: [PATCH] 功能完善

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java |   32 ++++++++++++++++++++++++--------
 1 files changed, 24 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 ef28222..61d7227 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,17 +5,15 @@
 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.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 org.apache.dubbo.config.annotation.Service;
@@ -30,7 +28,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 +45,10 @@
 
     @Resource
     private LuckyActivityAwardsMapper luckyActivityAwardsMapper;
+
+
+    @Resource
+    private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager;
 
 
     @Transactional(rollbackFor = Exception.class)
@@ -89,6 +91,11 @@
     public LuckyActivityJoinRecord getJoinInfo(Long activityId, Long appId, String uid) {
         LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
         return record;
+    }
+
+    @Override
+    public LuckyActivityJoinRecord getJoinRecord(Long id) {
+        return luckyActivityJoinRecordMapper.selectByPrimaryKey(id);
     }
 
     @Override
@@ -223,6 +230,7 @@
         ActivityDrawnProbabilityStatistic statistic = new ActivityDrawnProbabilityStatistic();
         ActivityAwardQuery awardQuery = new ActivityAwardQuery();
         awardQuery.activityId = activityId;
+        awardQuery.count = 100;
         //濂栭」鏁伴噺
         int awardCount = 0;
         List<LuckyActivityAwards> awards = luckyActivityAwardsMapper.list(awardQuery);
@@ -230,8 +238,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);
@@ -241,7 +257,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