diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/api/MyApiService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/api/MyApiService.java index 1948b9d50..64b47e26e 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/api/MyApiService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/api/MyApiService.java @@ -1,5 +1,7 @@ package com.accompany.admin.service.api; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.accompany.admin.mapper.api.MyApiAdminMapper; import com.accompany.admin.model.GiftSendRecordMgr; import com.accompany.admin.model.MainlandAccount; @@ -13,6 +15,7 @@ import com.accompany.business.model.UserLevelCharm; import com.accompany.business.model.UserLevelExperience; import com.accompany.business.service.apple.IOSRefundV2Service; import com.accompany.business.service.guild.AgencyMonthSettleDetailService; +import com.accompany.business.service.guild.AgencyMonthSettleService; import com.accompany.business.service.guild.GuildUsdOperateService; import com.accompany.business.service.level.LevelService; import com.accompany.business.service.room.RoomManageService; @@ -28,7 +31,9 @@ import com.accompany.common.utils.CommonUtil; import com.accompany.common.utils.DateTimeUtil; import com.accompany.common.utils.GsonUtil; import com.accompany.common.utils.StringUtils; +import com.accompany.core.base.SpringContextHolder; import com.accompany.core.constant.BlockTypeEnum; +import com.accompany.core.enumeration.PartitionEnum; import com.accompany.core.exception.AdminServiceException; import com.accompany.core.model.*; import com.accompany.core.mybatismapper.AccountLoginRecordMapper; @@ -420,4 +425,5 @@ public class MyApiService { } } + } diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/api/MyApiController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/api/MyApiController.java index e3fde6fb5..606c87357 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/api/MyApiController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/api/MyApiController.java @@ -136,21 +136,4 @@ public class MyApiController { return BusiResult.success(); } - @GetMapping("/chargeChannelClac") - public BusiResult chargeChannelClac(Long roomId) { - if (null == roomId || !roomId.equals(603L)) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - myApiService.chargeChannelClac(); - return BusiResult.success(); - } - - @GetMapping("/repairBlockTime") - public BusiResult repairBlockTime(Long roomId) { - if (null == roomId || !roomId.equals(603L)) { - throw new AdminServiceException(BusiStatus.PARAMERROR); - } - myApiService.repairBlockTime(); - return BusiResult.success(); - } } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleService.java index 590da0201..f0ce5874a 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleService.java @@ -70,14 +70,14 @@ public class AgencyMonthSettleService { .hallSalary(dataVo.getHallSalary()).salaryRate(dataVo.getSalaryRate()).createTime(new Date()).statDate(beginDate).endDate(endDate).build(); agencyMonthSettleDetails.add(agencyMonthSettleDetail); } - agencyMonthSettleDetailService.saveBatch(agencyMonthSettleDetails); + //agencyMonthSettleDetailService.saveBatch(agencyMonthSettleDetails); - /*for (UserHallEnergyLevelDataVo dataVo : userHallEnergyLevelDataVos) { + for (UserHallEnergyLevelDataVo dataVo : userHallEnergyLevelDataVos) { if (dataVo.getHallSalary().doubleValue() == 0) { continue; } guildUsdOperateService.settlementGold(dataVo.getHallId(), dataVo.getUid(), dataVo.getHallSalary()); - }*/ + } } public void monthRankTaskDetail(Integer partitionId, Date beginDate, Date endDate) { diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMemberDiamondStatisticsMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMemberDiamondStatisticsMapper.xml index f88ad5a6b..a88c4d151 100644 --- a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMemberDiamondStatisticsMapper.xml +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildMemberDiamondStatisticsMapper.xml @@ -37,7 +37,7 @@ and hm.guild_id = ed.guild_id and ed.cycle_date = #{cycleDate} left join guild h on hm.guild_id = h.id - where hm.partition_id #{partitionId} + where hm.partition_id = #{partitionId} and hm.guild_id = #{guildId} diff --git a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildSettleTask.java b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildSettleTask.java index 56cc31635..575075505 100644 --- a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildSettleTask.java +++ b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildSettleTask.java @@ -7,21 +7,13 @@ import com.accompany.business.service.guild.GuildSalaryBillDateCycleService; import com.accompany.business.util.CycleTimeUtil; import com.accompany.common.utils.DateTimeUtil; import com.accompany.core.enumeration.PartitionEnum; -import com.accompany.core.model.PartitionInfo; -import com.accompany.core.service.partition.PartitionInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import javax.annotation.Resource; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.List; -import java.util.Map; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.stream.Collectors; @Component @Slf4j @@ -30,23 +22,44 @@ public class GuildSettleTask { private AgencyMonthSettleService agencyMonthSettleService; @Autowired private GuildSalaryBillDateCycleService guildSalaryBillDateCycleService ; - @Autowired - private PartitionInfoService partitionInfoService; - @Resource(name = "bizExecutor") - private ThreadPoolExecutor bizExecutor; //zone = "Asia/Riyadh zone = "Etc/GMT-3" 两种方式都支持 + /** + * 公户月结算,用户明细 + * 每月1号凌晨0点10分执行 + */ + @Scheduled(cron = "0 10 0 1 * ?", zone = "Etc/GMT-3") + public void monthRankTaskAll2() { + Date date = new Date(); + List partitionEnumList = List.of(PartitionEnum.ARAB, PartitionEnum.TURKEY); + for (PartitionEnum partitionEnum : partitionEnumList) { + try { + DateTime lastMonth = DateUtil.offsetMonth(date, -1); + DateTime beginTime = DateUtil.offsetDay(lastMonth, 15); + DateTime endTime = DateUtil.beginOfDay(date); + log.info("=-=monthRankTaskAll2=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime) , DateUtil.formatDateTime(endTime)); + agencyMonthSettleService.monthRankTaskAll(partitionEnum.getId(), beginTime, endTime); + log.info("=-=monthRankTaskAll2=-= end"); + log.info("=-=monthRankTaskDetail2=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime) , DateUtil.formatDateTime(endTime)); + agencyMonthSettleService.monthRankTaskDetail(partitionEnum.getId(), beginTime, endTime); + log.info("=-=monthRankTaskDetail2=-= end"); + } catch (Exception e) { + log.error("[monthRankTaskAll2] 异常", e); + } + } + } + /** * 公会月结算 * 每月16号凌晨0点10分执行 */ - @Scheduled(cron = "0 10 0 1,16 * ?", zone = "Etc/GMT-3") + @Scheduled(cron = "0 10 0 16 * ?", zone = "Etc/GMT-3") public void monthRankTask() { Date date = new Date(); List partitionEnumList = List.of(PartitionEnum.ARAB, PartitionEnum.TURKEY); for (PartitionEnum partitionEnum : partitionEnumList) { - bizExecutor.execute(()->{ + try { DateTime beginTime = DateUtil.beginOfMonth(date); DateTime endTime = DateUtil.beginOfDay(date); log.info("=-=monthRankTaskAll1=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime) , DateUtil.formatDateTime(endTime)); @@ -55,7 +68,9 @@ public class GuildSettleTask { log.info("=-=monthRankTaskDetail1=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime) , DateUtil.formatDateTime(endTime)); agencyMonthSettleService.monthRankTaskDetail(partitionEnum.getId(), beginTime, endTime); log.info("=-=monthRankTaskDetail1=-= end"); - }); + } catch (Exception e){ + log.error("[monthRankTask异常] {}", e.getMessage()); + } } } diff --git a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/SSGuildTask.java b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/SSGuildTask.java index fc0462c3e..5f3afd84a 100644 --- a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/SSGuildTask.java +++ b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/SSGuildTask.java @@ -1,34 +1,29 @@ package com.accompany.scheduler.task.guild; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import com.accompany.business.service.guild.GuildService; import com.accompany.business.service.guild.SSGuildService; import com.accompany.common.utils.DateTimeUtil; import com.accompany.core.enumeration.PartitionEnum; -import com.accompany.core.model.PartitionInfo; -import com.accompany.core.service.partition.PartitionInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.Date; import java.util.List; +import java.util.concurrent.ThreadPoolExecutor; @Component @Slf4j public class SSGuildTask { - @Autowired - private PartitionInfoService partitionInfoService; - @Autowired private SSGuildService ssGuildService; - + @Resource(name = "bizExecutor") + private ThreadPoolExecutor bizExecutor; private static final DateTimeFormatter dateFormatters = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATETIME_PATTERN); @@ -37,31 +32,37 @@ public class SSGuildTask { */ @Scheduled(cron = "0 0/5 * * * ?") public void ssTaskByMinutes() { - PartitionInfo byId = partitionInfoService.getById(PartitionEnum.ARAB.getId()); - ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(new Date(), byId.getZoneId()); - log.info("=-=ssTaskByMinutes=-=:东三区时间:{}", zonedDateTime.format(dateFormatters)); - String cycleOne = zonedDateTime.withDayOfMonth(1).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); - String cycleTwo = zonedDateTime.withDayOfMonth(16).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); - List cycleDates = Arrays.asList(cycleOne, cycleTwo); - ssGuildService.ssTaskByMinutes(cycleDates, PartitionEnum.ARAB.getId()); - log.info("=-=ssTaskByMinutes=-=:cycleOne:{},cycleTwo:{}", cycleOne , cycleTwo); + List partitionEnumList = List.of(PartitionEnum.ARAB, PartitionEnum.TURKEY); + for (PartitionEnum partitionEnum : partitionEnumList) { + bizExecutor.execute(() -> { + ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(new Date(), partitionEnum.getZoneId()); + log.info("=-=ssTaskByMinutes=-=:东三区时间:{}", zonedDateTime.format(dateFormatters)); + String cycleOne = zonedDateTime.withDayOfMonth(1).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); + String cycleTwo = zonedDateTime.withDayOfMonth(16).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); + List cycleDates = Arrays.asList(cycleOne, cycleTwo); + ssGuildService.ssTaskByMinutes(cycleDates, partitionEnum.getId()); + log.info("=-=ssTaskByMinutes=-=:cycleOne:{},cycleTwo:{}", cycleOne , cycleTwo); + }); + } } - /** - * 每5minutes - */ @Scheduled(cron = "0 10 0 1 * ?", zone = "Etc/GMT-3") public void ssMonthTask() { - PartitionInfo byId = partitionInfoService.getById(PartitionEnum.ARAB.getId()); - ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(new Date(), byId.getZoneId()); - log.info("=-=ssMonthTask=-=:东三区时间:{}", zonedDateTime.format(dateFormatters)); - String cycleOne = zonedDateTime.minusMonths(1).withDayOfMonth(1).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); - String cycleTwo = zonedDateTime.minusMonths(1).withDayOfMonth(16).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); - List cycleDates = Arrays.asList(cycleOne, cycleTwo); - log.info("=-=ssMonthTask=-=:cycleOne:{},cycleTwo:{}", cycleOne , cycleTwo); - ssGuildService.ssMonthTask(cycleDates, PartitionEnum.ARAB.getId()); - log.info("================ssMonthTask end==============="); - ssGuildService.ssTaskByMinutes(cycleDates, PartitionEnum.ARAB.getId()); + List partitionEnumList = List.of(PartitionEnum.ARAB, PartitionEnum.TURKEY); + for (PartitionEnum partitionEnum : partitionEnumList) { + bizExecutor.execute(() -> { + ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(new Date(), partitionEnum.getZoneId()); + log.info("=-=ssMonthTask=-=:东三区时间:{}", zonedDateTime.format(dateFormatters)); + String cycleOne = zonedDateTime.minusMonths(1).withDayOfMonth(1).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); + String cycleTwo = zonedDateTime.minusMonths(1).withDayOfMonth(16).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN)); + List cycleDates = Arrays.asList(cycleOne, cycleTwo); + log.info("=-=ssMonthTask=-=:cycleOne:{},cycleTwo:{}", cycleOne , cycleTwo); + ssGuildService.ssMonthTask(cycleDates, partitionEnum.getId()); + log.info("================ssMonthTask end==============="); + ssGuildService.ssTaskByMinutes(cycleDates, partitionEnum.getId()); + }); + } + } }