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 | 38 +++++++++++++++++++++++++++++++------- 1 files changed, 31 insertions(+), 7 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..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,18 +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.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; @@ -46,6 +47,10 @@ @Resource private LuckyActivityAwardsMapper luckyActivityAwardsMapper; + + + @Resource + private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; @Transactional(rollbackFor = Exception.class) @@ -82,6 +87,7 @@ throw new LuckyActivityJoinException(1, "娣诲姞璁板綍鍑洪敊"); } + CMQManager.getInstance().publishActivityJoinMsg(ActivityJoinMsgDTO.create(record)); } @Override @@ -182,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; @@ -197,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 @@ -227,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); @@ -234,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); @@ -245,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