| | |
| | | throw new LuckyActivityJoinException(1, "添加记录出错"); |
| | | } |
| | | |
| | | LoggerUtil.activityLogger.info("参加活动成功", activityId, uid); |
| | | LoggerUtil.activityJoinLogger.info("参加活动成功:activityId-{} uid-{}", activityId, uid); |
| | | |
| | | CMQManager.getInstance().publishActivityJoinMsg(ActivityJoinMsgDTO.create(record)); |
| | | } |
| | |
| | | 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; |
| | | } |