日常任务-日任务优化代码
This commit is contained in:
@@ -42,6 +42,4 @@ public class GuildMemberWeekLevelRewardItemVo {
|
||||
private BigDecimal bonusRewardNum;
|
||||
@ApiModelProperty("状态012")
|
||||
private Byte bonusStatus;
|
||||
@ApiModelProperty("是否隐藏")
|
||||
private boolean hideFlag;
|
||||
}
|
||||
|
@@ -127,6 +127,8 @@ public class GuildMemberWeekLevelRewardV2Service extends ServiceImpl<GuildMember
|
||||
keySet.addAll(bonusKeySet);
|
||||
String bonusKey = String.join("_" , guildMemberId.toString(), "bonus" , "process");
|
||||
keySet.add(bonusKey);
|
||||
String levelRField = String.join("_" , guildMember.getUid().toString(), "level_R");
|
||||
keySet.add(levelRField);
|
||||
|
||||
String mondayDateStr = mondayTime.format(DateTimeUtil.dateFormatter);
|
||||
Map<String, Number> userProcessMap = getWeekMap(mondayDateStr, partitionId).getAll(keySet);
|
||||
@@ -148,15 +150,9 @@ public class GuildMemberWeekLevelRewardV2Service extends ServiceImpl<GuildMember
|
||||
BigDecimal preLevelMaxNum = BigDecimal.ZERO;
|
||||
BigDecimal remainUserProcess = userProcess;
|
||||
|
||||
GuildMemberWeekLevelRewardRecord record = recordMapper.selectOne(Wrappers.<GuildMemberWeekLevelRewardRecord>lambdaQuery()
|
||||
.eq(GuildMemberWeekLevelRewardRecord::getUid, uid)
|
||||
.eq(GuildMemberWeekLevelRewardRecord::getMonday, mondayDateStr)
|
||||
.eq(GuildMemberWeekLevelRewardRecord::getLevel, 0));
|
||||
Long receiveGuildMemberId = userProcessMap.getOrDefault(levelRField, 0L).longValue();
|
||||
|
||||
boolean filterLevelR = record != null && !record.getGuildMemberId().equals(guildMemberId);//过滤R档位(防薅羊毛)
|
||||
filterLevelR = filterLevelR || this.calFilterLevelR(guildMember);
|
||||
|
||||
if (needFilter || filterLevelR) {//公会首页过滤R档位
|
||||
if (needFilter || this.calFilterLevelR(guildMember, receiveGuildMemberId)) {//公会首页过滤R档位 || 过滤条件过滤
|
||||
levelRewardList.removeIf(levelReward -> levelReward.getLevel() == 0);
|
||||
}
|
||||
|
||||
@@ -277,8 +273,9 @@ public class GuildMemberWeekLevelRewardV2Service extends ServiceImpl<GuildMember
|
||||
String userProcessKey = String.join("_" , guildMemberId.toString(), "process");
|
||||
String statusId = String.join("_" , guildMemberId.toString(), levelId);
|
||||
String bonusStatusId = String.join("_" , guildMemberId.toString(), levelId, "bonus");
|
||||
String levelRField = String.join("_" , uid.toString(), "level_R");
|
||||
|
||||
Set<String> keySet = Set.of(userProcessKey, statusId, bonusStatusId);
|
||||
Set<String> keySet = Set.of(userProcessKey, statusId, bonusStatusId, levelRField);
|
||||
|
||||
RMap<String, Number> processMap = getWeekMap(monday, partitionId);
|
||||
Map<String, Number> userProcessMap = processMap.getAll(keySet);
|
||||
@@ -293,7 +290,7 @@ public class GuildMemberWeekLevelRewardV2Service extends ServiceImpl<GuildMember
|
||||
}
|
||||
} else {
|
||||
Byte bonusStatus = userProcessMap.getOrDefault(bonusStatusId, Constant.status.delete).byteValue();
|
||||
if (Constant.status.delete.equals(status) || !Constant.status.delete.equals(bonusStatus) || !processMap.fastPutIfAbsent(bonusStatusId, Constant.status.invalid)) {
|
||||
if (!Constant.status.delete.equals(bonusStatus) || !processMap.fastPutIfAbsent(bonusStatusId, Constant.status.invalid)) {
|
||||
throw new ServiceException(BusiStatus.CHARGE_RECEICVE_REPEAT);
|
||||
}
|
||||
}
|
||||
@@ -335,6 +332,9 @@ public class GuildMemberWeekLevelRewardV2Service extends ServiceImpl<GuildMember
|
||||
.eq(GuildMemberWeekLevelRewardRecord::getMonday, monday)
|
||||
.eq(GuildMemberWeekLevelRewardRecord::getLevel, levelReward.getLevel()));
|
||||
}
|
||||
if (levelReward.getLevel() == 0) {
|
||||
processMap.put(levelRField, guildMemberId);
|
||||
}
|
||||
|
||||
String tip = I18NMessageSourceUtil.getMessage(I18nAlertEnum.FAMILY_MEMBER_WEEK_LEVEL_REWARD,
|
||||
new Object[]{levelReward.getLevel(), levelReward.getRewardNum()}, partitionId);
|
||||
@@ -461,16 +461,21 @@ public class GuildMemberWeekLevelRewardV2Service extends ServiceImpl<GuildMember
|
||||
}
|
||||
return JSONObject.parseObject(confValueById, GuildWeekLevelRFilterConfigVo.class).getByPartitionId(partitionId);
|
||||
}
|
||||
private Boolean calFilterLevelR(GuildMember guildMember) {
|
||||
|
||||
private Boolean calFilterLevelR(GuildMember guildMember, Long receiveGuildMemberId) {
|
||||
if (receiveGuildMemberId > 0L && !receiveGuildMemberId.equals(guildMember.getId())) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
GuildWeekLevelRFilterConfigVo filterConfig = this.getFilterConfig(guildMember.getPartitionId());
|
||||
if (filterConfig == null){
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
if (CollectionUtils.isEmpty(filterConfig.getGuildIds()) || !filterConfig.getGuildIds().contains(guildMember.getGuildId())) {
|
||||
boolean notFilterGuild = CollectionUtils.isEmpty(filterConfig.getUids()) || !filterConfig.getGuildIds().contains(guildMember.getGuildId());
|
||||
boolean notFilterUid = CollectionUtils.isEmpty(filterConfig.getUids()) || !filterConfig.getUids().contains(guildMember.getUid());
|
||||
if (notFilterGuild && notFilterUid) {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
if (CollectionUtils.isEmpty(filterConfig.getUids()) || !filterConfig.getUids().contains(guildMember.getUid())) {
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
@@ -412,7 +412,7 @@ public class GuildTaskService {
|
||||
ZonedDateTime nowZonedDateTime = DateTimeUtil.convertWithZoneId(now, partitionEnum.getZoneId());
|
||||
boolean expired = true;
|
||||
DailyTaskTypeEnum dailyTaskTypeEnum = DailyTaskTypeEnum.valueOf(reachRecord.getTaskKey());
|
||||
if (dailyTaskTypeEnum.equals(DailyTaskTypeEnum.GUILD_MIC)) {
|
||||
if (dailyTaskTypeEnum.equals(DailyTaskTypeEnum.GUILD_CREATE)) {
|
||||
ZonedDateTime guildCreateDate = DateTimeUtil.convertWithZoneId(guild.getCreateTime(), partitionEnum.getZoneId());
|
||||
ZonedDateTime createAfter14Day = guildCreateDate.plusDays(14).withHour(23).withMinute(59).withSecond(59);
|
||||
ZonedDateTime nowZoneDateTime = DateTimeUtil.convertWithZoneId(now, partitionEnum.getZoneId());
|
||||
|
Reference in New Issue
Block a user