From 6c09cbd70388ae53ec593de253f69cfa1a3eeda7 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 06 二月 2021 15:41:25 +0800 Subject: [PATCH] 活动管理界面完善 --- service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java | 52 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 39 insertions(+), 13 deletions(-) diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java index 31df726..4bc7645 100644 --- a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java +++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java @@ -4,6 +4,7 @@ import com.ks.lucky.mapper.LuckyActivityMapper; 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.LuckyActivityOpenInfo; import com.ks.lucky.pojo.DTO.ActivityMQMsg; import com.ks.lucky.remote.service.LuckyActivityOpenService; @@ -14,10 +15,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; @Service(version = "1.0.0") public class LuckyActivityOpenServiceImpl implements LuckyActivityOpenService { @@ -105,18 +105,49 @@ throw new LuckyActivityAwardException(LuckyActivityAwardException.CODE_NOT_EXIST, "鏃犲椤逛俊鎭�"); } - //鑾峰彇鐢ㄦ埛鏁版嵁 - Map<String, Integer> data = luckyActivityJoinManager.getJoinData(activityId); + + Set<String> drawnUserSet = new HashSet<>(); + + //铏氭嫙鐢ㄦ埛鍏堜腑濂� + Map<String, Integer> data = luckyActivityJoinManager.getJoinData(activityId, LuckyActivityJoinRecord.USER_TYPE_VIRTUAL); + for (LuckyActivityAwards awards : awardsList) { + if (awards.getRealDrawnPercent().compareTo(new BigDecimal(1)) >= 0) { + //瀹屽叏鐪熷疄鎯呭喌 + continue; + } + BigDecimal virtualRate = new BigDecimal(1).subtract(awards.getRealDrawnPercent()); + int count = virtualRate.multiply(new BigDecimal(awards.getCount())).setScale(0, RoundingMode.UP).intValue(); + Set<String> uids = LuckyRunUtil.compute(data, count); + for (String uid : uids) { + data.remove(uid); + } + drawnUserSet.addAll(uids); + //淇濆瓨寮�濂栫粨鏋� + luckyActivityAwardResultManager.addRecord(uids, awards.getActivityId(), awards.getId()); + //鍓╀綑濂栧搧鏁伴噺 + awards.setCount(awards.getCount() - count); + } + + //闄ゅ幓宸茬粡涓鐨勭敤鎴峰啀娆′腑濂� + data = luckyActivityJoinManager.getJoinData(activityId, null); + for (String uid : drawnUserSet) { + data.remove(uid); + } + for (LuckyActivityAwards awards : awardsList) { //鑾峰彇涓鐢ㄦ埛ID Set<String> uids = LuckyRunUtil.compute(data, awards.getCount()); + //绉婚櫎宸茬粡涓浜嗙殑鐢ㄦ埛 + for (String uid : uids) { + data.remove(uid); + } //淇濆瓨寮�濂栫粨鏋� luckyActivityAwardResultManager.addRecord(uids, awards.getActivityId(), awards.getId()); } //鏇存柊鐘舵�� - luckyActivityManager.setState(activityId,LuckyActivity.STATE_PRE_OPENED,"棰勫紑濂栨垚鍔�"); + luckyActivityManager.setState(activityId, LuckyActivity.STATE_PRE_OPENED, "棰勫紑濂栨垚鍔�"); //娣诲姞娑堟伅 CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_OPEN_SHOW, new Date())); @@ -130,12 +161,7 @@ throw new LuckyActivityException(1, "灏氭湭寮�濂�"); } - LuckyActivity update = new LuckyActivity(); - update.setId(activityId); - update.setUpdateTime(new Date()); - update.setState(LuckyActivity.STATE_OPENED); - update.setStateRemarks("宸插紑濂�"); - luckyActivityManager.updateSelectiveByPrimaryKey(update); + luckyActivityManager.setState(activityId, LuckyActivity.STATE_OPENED, "宸插紑濂�"); //璁剧疆瀹為檯寮�濂栨椂闂� LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId); -- Gitblit v1.8.0