From 8837bf906cf00ce8d1eeede63742e2ae237e5e82 Mon Sep 17 00:00:00 2001 From: khalil <842328916@qq.com> Date: Mon, 22 Sep 2025 11:09:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=B6=E6=97=8F-=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1-=E5=88=86=E5=8C=BA=E8=BF=9B=E8=A1=8C=E9=92=BB?= =?UTF-8?q?=E7=9F=B3=E6=B8=85=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FamilyMemberDiamondSettlementRecord.java | 2 ++ .../clan/FamilyDiamondSettlementService.java | 18 ++++++++++----- .../task/FamilyDiamondSettlementTask.java | 22 ++++++++++++++++--- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/family/FamilyMemberDiamondSettlementRecord.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/family/FamilyMemberDiamondSettlementRecord.java index f74b9d44e..d1a264965 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/family/FamilyMemberDiamondSettlementRecord.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/family/FamilyMemberDiamondSettlementRecord.java @@ -12,6 +12,8 @@ public class FamilyMemberDiamondSettlementRecord { @TableId(type = IdType.AUTO) private Long id; private Long familyMemberId; + private String cycleDate; + private Integer partitionId; private Integer familyId; private Byte roleType; private Long uid; diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/clan/FamilyDiamondSettlementService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/clan/FamilyDiamondSettlementService.java index 61a762f73..fae70aefc 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/clan/FamilyDiamondSettlementService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/clan/FamilyDiamondSettlementService.java @@ -9,7 +9,7 @@ import com.accompany.business.service.family.FamilyMemberService; import com.accompany.business.service.purse.FamilyDiamondSettlementPurseService; import com.accompany.business.service.purse.UserPurseService; import com.accompany.business.service.record.BillRecordService; -import com.accompany.common.utils.DateTimeUtil; +import com.accompany.business.util.CycleTimeUtil; import com.accompany.core.enumeration.BillObjTypeEnum; import com.accompany.core.enumeration.PartitionEnum; import lombok.SneakyThrows; @@ -21,6 +21,7 @@ import org.redisson.api.RLocalCachedMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Date; @@ -44,11 +45,16 @@ public class FamilyDiamondSettlementService { private BillRecordService billRecordService; @SneakyThrows - public void settlement(Integer waitSecond) { - //当天零点再前推1秒,相当于昨天23:59:59 给客户端周查询 - Date now = DateTimeUtil.addSeconds(DateTimeUtil.getBeginTimeOfDay(new Date()),-1); + public void settlement(Integer partitionId, String cycleDate, Integer waitSecond) { + PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId); - List familyMemberList = familyMemberService.listValidFamilyMemberByPartitionId(PartitionEnum.ENGLISH.getId()); + if (!StringUtils.hasText(cycleDate)){ + cycleDate = CycleTimeUtil.getLastDateByZoneId(partitionEnum.getZoneId()); + } + + Date now = new Date(); + + List familyMemberList = familyMemberService.listValidFamilyMemberByPartitionId(partitionEnum.getId()); if (CollectionUtils.isEmpty(familyMemberList)){ return; } @@ -110,6 +116,8 @@ public class FamilyDiamondSettlementService { //结算记录 FamilyMemberDiamondSettlementRecord settlementRecord = new FamilyMemberDiamondSettlementRecord(); settlementRecord.setFamilyMemberId(familyMember.getId()); + settlementRecord.setCycleDate(cycleDate); + settlementRecord.setPartitionId(familyMember.getPartitionId()); settlementRecord.setFamilyId(familyMember.getFamilyId()); settlementRecord.setRoleType(familyMember.getRoleType()); settlementRecord.setUid(uid); diff --git a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/FamilyDiamondSettlementTask.java b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/FamilyDiamondSettlementTask.java index f20d38600..21a987f3e 100644 --- a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/FamilyDiamondSettlementTask.java +++ b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/FamilyDiamondSettlementTask.java @@ -1,13 +1,14 @@ package com.accompany.scheduler.task; import com.accompany.business.service.clan.FamilyDiamondSettlementService; +import com.accompany.core.enumeration.PartitionEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Slf4j -//@Component +@Component public class FamilyDiamondSettlementTask { @Autowired @@ -18,11 +19,26 @@ public class FamilyDiamondSettlementTask { * 周一凌晨0点 * */ @Scheduled(cron = "0 0 0 1,16 * *") - public void familyDiamondSettlement() { + public void familyDiamondSettlementEn() { long now = System.currentTimeMillis(); log.info("familyGoldSettlement() start.........."); - service.settlement(null); + service.settlement(PartitionEnum.ENGLISH.getId(), null, null); + + long finish = System.currentTimeMillis(); + log.info("familyGoldSettlement() cost {}ms finish..........", finish-now); + } + + /** + * 公会钻石结算 + * 周一凌晨0点 + * */ + @Scheduled(cron = "0 0 0 1,16 * *", zone = "Asia/Riyadh") + public void familyDiamondSettlementTr() { + long now = System.currentTimeMillis(); + log.info("familyGoldSettlement() start.........."); + + service.settlement(PartitionEnum.TURKEY.getId(), null, null); long finish = System.currentTimeMillis(); log.info("familyGoldSettlement() cost {}ms finish..........", finish-now);