日常任务-优化刷新定时任务
This commit is contained in:
@@ -112,23 +112,21 @@ public class GuildTaskService {
|
||||
reachAnchorNumMap = guildMicStatisticsPolicy2Service.mapByPartitionGuildDate(statDate, partitionId, maxReachMinutes, new ArrayList<>(guildIds));
|
||||
}
|
||||
for (Guild guild : guilds) {
|
||||
Integer guildId = guild.getId();
|
||||
List<GuildTaskReachRecord> existRecords = guildTaskReachRecordService.list(partitionId, guildId, taskKey);
|
||||
String cycleDate = DateTimeUtil.convertWithZoneId(guild.getCreateTime(), partitionEnum.getZoneId())
|
||||
.format(DateTimeUtil.dateFormatter);
|
||||
this.calCreateProgress(partitionEnum, guild, taskLevelInfos, existRecords, resultList, cycleDate, statDate,
|
||||
guildMemberNumMap, diamondMap, reachAnchorNumMap, now);
|
||||
this.calCreateProgress(partitionEnum, guild, taskLevelInfos, resultList, statDate,
|
||||
guildMemberNumMap, diamondMap, reachAnchorNumMap, now, taskKey);
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(resultList)) {
|
||||
guildTaskReachRecordService.saveOrUpdateBatch(resultList);
|
||||
}
|
||||
}
|
||||
|
||||
private void calCreateProgress(PartitionEnum partitionEnum, Guild guild, List<GuildTaskLevelInfo> taskLevelInfos,
|
||||
List<GuildTaskReachRecord> existRecords, List<GuildTaskReachRecord> resultList,
|
||||
String cycleDate, String statDate, Map<Integer, Long> guildMemberNumMap,
|
||||
Map<Integer, BigDecimal> diamondMap, Map<Integer, Integer> reachAnchorNumMap, Date now) {
|
||||
@Async
|
||||
public void calCreateProgress(PartitionEnum partitionEnum, Guild guild, List<GuildTaskLevelInfo> taskLevelInfos, List<GuildTaskReachRecord> resultList,
|
||||
String statDate, Map<Integer, Long> guildMemberNumMap, Map<Integer, BigDecimal> diamondMap,
|
||||
Map<Integer, Integer> reachAnchorNumMap, Date now, String taskKey) {
|
||||
List<GuildTaskReachRecord> existRecords = guildTaskReachRecordService.list(partitionEnum.getId(), guild.getId(), taskKey);
|
||||
String cycleDate = DateTimeUtil.convertWithZoneId(guild.getCreateTime(), partitionEnum.getZoneId())
|
||||
.format(DateTimeUtil.dateFormatter);
|
||||
Integer guildId = guild.getId();
|
||||
int partitionId = partitionEnum.getId();
|
||||
BigDecimal diamond = diamondMap.getOrDefault(guildId, BigDecimal.ZERO);
|
||||
@@ -176,32 +174,6 @@ public class GuildTaskService {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean addNewGuildReachRecord(String cycleDate, List<GuildTaskReachRecord> resultList, GuildTaskLevelInfo levelInfo, Integer guildId,
|
||||
Integer partitionId, String statDate, BigDecimal diamond, Integer anchorReachNum, Integer memberNum) {
|
||||
GuildTaskReachRecord reachRecord = new GuildTaskReachRecord();
|
||||
reachRecord.setId(null);
|
||||
reachRecord.setCycleDate(cycleDate);
|
||||
reachRecord.setGuildTaskId(levelInfo.getGuildTaskId());
|
||||
reachRecord.setPartitionId(partitionId);
|
||||
reachRecord.setStatDate(statDate);
|
||||
reachRecord.setGuildId(guildId);
|
||||
reachRecord.setTaskKey(levelInfo.getTaskKey());
|
||||
reachRecord.setLevel(levelInfo.getLevel());
|
||||
reachRecord.setDiamondNum(diamond);
|
||||
reachRecord.setAnchorNum(memberNum);
|
||||
reachRecord.setAnchorMicReachNum(anchorReachNum);
|
||||
boolean reachStatus = diamond.doubleValue() >= levelInfo.getDiamondNum().doubleValue()
|
||||
&& memberNum >= levelInfo.getAnchorNum()
|
||||
&& anchorReachNum >= levelInfo.getAnchorMicReachNum();
|
||||
reachRecord.setReachStatus(reachStatus ? 1 : 0);
|
||||
reachRecord.setCreateTime(new Date());
|
||||
resultList.add(reachRecord);
|
||||
if (!reachStatus) { //当前登记未达到,不再计算下一登记
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void updateWeekTaskProgress(Date now, PartitionEnum partitionEnum) {
|
||||
|
||||
int partitionId = partitionEnum.getId();
|
||||
@@ -245,21 +217,20 @@ public class GuildTaskService {
|
||||
}
|
||||
levelInfos.sort(Comparator.comparing(GuildTaskLevelInfo::getLevel));
|
||||
for (Guild guild : guilds) {
|
||||
Integer guildId = guild.getId();
|
||||
List<GuildTaskReachRecord> existRecords = guildTaskReachRecordService.listByCycle(cycleDate, partitionId, guildId, taskKey);
|
||||
this.calWeekProgress(partitionEnum, guild, levelInfos, existRecords, resultList, cycleDate, statDate,
|
||||
guildMemberNumMap, diamondMap, reachAnchorNumMap, now);
|
||||
this.calWeekProgress(partitionEnum, guild, levelInfos, resultList, cycleDate, statDate,
|
||||
guildMemberNumMap, diamondMap, reachAnchorNumMap, now, taskKey);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(resultList)) {
|
||||
guildTaskReachRecordService.saveOrUpdateBatch(resultList);
|
||||
}
|
||||
}
|
||||
|
||||
private void calWeekProgress(PartitionEnum partitionEnum, Guild guild, List<GuildTaskLevelInfo> taskLevelInfos,
|
||||
List<GuildTaskReachRecord> existRecords, List<GuildTaskReachRecord> resultList,
|
||||
String cycleDate, String statDate, Map<Integer, Long> guildMemberNumMap,
|
||||
Map<Integer, BigDecimal> diamondMap, Map<Integer, Integer> reachAnchorNumMap, Date now) {
|
||||
@Async
|
||||
public void calWeekProgress(PartitionEnum partitionEnum, Guild guild, List<GuildTaskLevelInfo> taskLevelInfos,
|
||||
List<GuildTaskReachRecord> resultList, String cycleDate, String statDate,
|
||||
Map<Integer, Long> guildMemberNumMap, Map<Integer, BigDecimal> diamondMap,
|
||||
Map<Integer, Integer> reachAnchorNumMap, Date now, String taskKey) {
|
||||
List<GuildTaskReachRecord> existRecords = guildTaskReachRecordService.listByCycle(cycleDate, partitionEnum.getId(), guild.getId(), taskKey);
|
||||
Integer guildId = guild.getId();
|
||||
int partitionId = partitionEnum.getId();
|
||||
BigDecimal diamond = diamondMap.getOrDefault(guildId, BigDecimal.ZERO);
|
||||
@@ -294,6 +265,33 @@ public class GuildTaskService {
|
||||
}
|
||||
|
||||
|
||||
public boolean addNewGuildReachRecord(String cycleDate, List<GuildTaskReachRecord> resultList, GuildTaskLevelInfo levelInfo, Integer guildId,
|
||||
Integer partitionId, String statDate, BigDecimal diamond, Integer anchorReachNum, Integer memberNum) {
|
||||
GuildTaskReachRecord reachRecord = new GuildTaskReachRecord();
|
||||
reachRecord.setId(null);
|
||||
reachRecord.setCycleDate(cycleDate);
|
||||
reachRecord.setGuildTaskId(levelInfo.getGuildTaskId());
|
||||
reachRecord.setPartitionId(partitionId);
|
||||
reachRecord.setStatDate(statDate);
|
||||
reachRecord.setGuildId(guildId);
|
||||
reachRecord.setTaskKey(levelInfo.getTaskKey());
|
||||
reachRecord.setLevel(levelInfo.getLevel());
|
||||
reachRecord.setDiamondNum(diamond);
|
||||
reachRecord.setAnchorNum(memberNum);
|
||||
reachRecord.setAnchorMicReachNum(anchorReachNum);
|
||||
boolean reachStatus = diamond.doubleValue() >= levelInfo.getDiamondNum().doubleValue()
|
||||
&& memberNum >= levelInfo.getAnchorNum()
|
||||
&& anchorReachNum >= levelInfo.getAnchorMicReachNum();
|
||||
reachRecord.setReachStatus(reachStatus ? 1 : 0);
|
||||
reachRecord.setCreateTime(new Date());
|
||||
resultList.add(reachRecord);
|
||||
if (!reachStatus) { //当前登记未达到,不再计算下一登记
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public List<GuildTaskLevelInfoVo> getGuildCreateTaskList(String taskKey, String statDate, Integer partitionId, Integer guildId) {
|
||||
List<GuildTaskLevelInfoVo> resultList = new ArrayList<>();
|
||||
List<GuildTaskLevelInfo> guildTaskLevelInfos = guildTaskLevelInfoService.listGuildTask(partitionId, taskKey);
|
||||
|
Reference in New Issue
Block a user