admin
2021-02-06 6c09cbd70388ae53ec593de253f69cfa1a3eeda7
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java
@@ -88,7 +88,7 @@
            throw new LuckyActivityJoinException(1, "添加记录出错");
        }
        LoggerUtil.activityLogger.info("参加活动成功", activityId, uid);
        LoggerUtil.activityJoinLogger.info("参加活动成功:activityId-{} uid-{}", activityId, uid);
        CMQManager.getInstance().publishActivityJoinMsg(ActivityJoinMsgDTO.create(record));
    }
@@ -261,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;
    }