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 | 24 ++++++++++++++++++------ 1 files changed, 18 insertions(+), 6 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 15ad4a6..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,16 +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.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; @@ -46,6 +45,10 @@ @Resource private LuckyActivityAwardsMapper luckyActivityAwardsMapper; + + + @Resource + private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; @Transactional(rollbackFor = Exception.class) @@ -227,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); @@ -234,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); @@ -245,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