From 334635fb4a1dd6e8b812bef9c70a129b5a7a79fc Mon Sep 17 00:00:00 2001 From: hokli <2629910752@qq.com> Date: Fri, 10 Oct 2025 14:28:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=9F=E8=80=B3=E5=85=B6=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...GuildDiamondStatisticsDayAdminService.java | 2 +- .../GuildPolicy2AdminService.java | 49 +++++++++------ .../constant/guild/GuildConstant.java | 1 + .../GuildDiamondStatisticsPolicy2Settle.java | 63 +++++++++++++++++++ .../GuildDiamondStatisticsPolicy2Mapper.java | 8 ++- ...dDiamondStatisticsPolicy2SettleMapper.java | 27 ++++++++ .../GuildDiamondStatisticsPolicy2Service.java | 10 +-- ...DiamondStatisticsPolicy2SettleService.java | 34 ++++++++++ .../guildpolicy2/GuildPolicy2Service.java | 35 ++++++++++- .../GuildDiamondStatisticsPolicy2Mapper.xml | 6 +- ...ldDiamondStatisticsPolicy2SettleMapper.xml | 62 ++++++++++++++++++ .../guildpolicy/GuildPolicy2Controller.java | 7 +++ .../guild/GuildPolicy2SettlementTask.java | 13 +++- 13 files changed, 286 insertions(+), 31 deletions(-) create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guildpolicy2/GuildDiamondStatisticsPolicy2Settle.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildDiamondStatisticsPolicy2SettleMapper.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildDiamondStatisticsPolicy2SettleService.java create mode 100644 accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2SettleMapper.xml diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildDiamondStatisticsDayAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildDiamondStatisticsDayAdminService.java index 58e3b3924..3bad1866d 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildDiamondStatisticsDayAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildDiamondStatisticsDayAdminService.java @@ -74,7 +74,7 @@ public class GuildDiamondStatisticsDayAdminService { Page guildDiamondStatisticsDayPage; if (GUILD_POLICY2.equals(partitionEnum.getClanMode())) { guildDiamondStatisticsDayPage = - guildDiamondStatisticsPolicy2Service.listByStatDate4OldPolicy(startDate, endDate, partitionId, regionId, guildId, pageNo, pageSize, inviteUid); + guildDiamondStatisticsPolicy2Service.listByStatDate4Policy2(startDate, endDate, partitionId, regionId, guildId, pageNo, pageSize, inviteUid); } else { guildDiamondStatisticsDayPage = guildDiamondStatisticsDayService.listByStatDate(startDate, endDate, partitionId, regionId, guildId, pageNo, pageSize, inviteUid); diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guildpolicy2/GuildPolicy2AdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guildpolicy2/GuildPolicy2AdminService.java index 1239d01ba..c02f08cea 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guildpolicy2/GuildPolicy2AdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guildpolicy2/GuildPolicy2AdminService.java @@ -3,16 +3,16 @@ package com.accompany.admin.service.guildpolicy2; import com.accompany.business.model.guild.Guild; import com.accompany.business.model.guildpolicy2.GuildDiamondWagePolicy2; import com.accompany.business.service.guild.GuildService; -import com.accompany.business.service.guildpolicy2.GuildDiamondStatisticsPolicy2Service; -import com.accompany.business.service.guildpolicy2.GuildDiamondWagePolicy2Service; -import com.accompany.business.service.guildpolicy2.GuildMicStatisticsPolicy2Service; -import com.accompany.business.service.guildpolicy2.GuildPolicy2Service; +import com.accompany.business.service.guildpolicy2.*; import com.accompany.business.service.user.UsersService; +import com.accompany.business.util.FullMonthCycleTimeUtil; import com.accompany.business.vo.guild.CycleDateVo; import com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo; import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo; import com.accompany.common.result.BusiResult; import com.accompany.common.result.PageResult; +import com.accompany.common.utils.DateTimeUtil; +import com.accompany.core.enumeration.PartitionEnum; import com.accompany.core.exception.AdminServiceException; import com.accompany.core.model.Users; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -22,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.time.ZonedDateTime; +import java.util.Date; import java.util.List; import java.util.TreeMap; @@ -40,6 +42,8 @@ public class GuildPolicy2AdminService { private GuildService guildService; @Autowired private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service; + @Autowired + private GuildDiamondStatisticsPolicy2SettleService guildDiamondStatisticsPolicy2SettleService; public PageResult queryMemberPage(Long ownerErbanNo, Integer guildId, Long erbanNo, Integer partitionId, String startDate, String endDate, Integer pageNo, Integer pageSize) { @@ -65,22 +69,31 @@ public class GuildPolicy2AdminService { } guildId = vaildGuildByOwnerUid.getId(); } - Page voPage = guildDiamondStatisticsPolicy2Service.listByStatDate(startDate, endDate, partitionId, guildId, uid, pageNo, pageSize); - List records = voPage.getRecords(); - PageResult pageResult = new PageResult<>(voPage); - if (CollectionUtils.isEmpty(records)) { - return pageResult; - } - TreeMap diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionId); - for (GuildPolicy2MemberAdminVo record : records) { - GuildDiamondWagePolicy2 diamondWagePolicy2 = guildDiamondWagePolicy2Service.calDiamondWageVo(diamondWageMap, record.getDiamondNum(), record.getMicDay()); - if (diamondWagePolicy2 == null) { - continue; + ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(new Date(), PartitionEnum.TURKEY.getZoneId()); + String nowDate = FullMonthCycleTimeUtil.getCycleDate(zonedDateTime); + PageResult pageResult; + if (nowDate.equals(startDate) || startDate.compareTo("2025-09-01") <= 0) { + Page voPage = guildDiamondStatisticsPolicy2Service.listByStatDate(startDate, endDate, partitionId, guildId, uid, pageNo, pageSize); + List records = voPage.getRecords(); + pageResult = new PageResult<>(voPage); + if (CollectionUtils.isEmpty(records)) { + return pageResult; } - record.setAnchorDiamondSalary(diamondWagePolicy2.getAnchorDiamondSalary()); - record.setOwnerSalary(diamondWagePolicy2.getOwnerSalary()); - record.setAnchorMicSalary(diamondWagePolicy2.getAnchorMicSalary()); + TreeMap diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionId); + for (GuildPolicy2MemberAdminVo record : records) { + GuildDiamondWagePolicy2 diamondWagePolicy2 = guildDiamondWagePolicy2Service.calDiamondWageVo(diamondWageMap, record.getDiamondNum(), record.getMicDay()); + if (diamondWagePolicy2 == null) { + continue; + } + record.setAnchorDiamondSalary(diamondWagePolicy2.getAnchorDiamondSalary()); + record.setOwnerSalary(diamondWagePolicy2.getOwnerSalary()); + record.setAnchorMicSalary(diamondWagePolicy2.getAnchorMicSalary()); + } + } else { + Page voPage = guildDiamondStatisticsPolicy2SettleService.listByStatDate(startDate, partitionId, guildId, uid, pageNo, pageSize); + pageResult = new PageResult<>(voPage); } + return pageResult; } diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/guild/GuildConstant.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/guild/GuildConstant.java index 23f08f250..94c8413da 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/guild/GuildConstant.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/guild/GuildConstant.java @@ -114,4 +114,5 @@ public class GuildConstant { public static final BigDecimal USD_WITHDRAW_RATE = BigDecimal.valueOf(0.06D); + public static final int GUILD_POLICY2_VALID_DAY_MINUTES = 120; } diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guildpolicy2/GuildDiamondStatisticsPolicy2Settle.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guildpolicy2/GuildDiamondStatisticsPolicy2Settle.java new file mode 100644 index 000000000..4f536d65e --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guildpolicy2/GuildDiamondStatisticsPolicy2Settle.java @@ -0,0 +1,63 @@ +package com.accompany.business.model.guildpolicy2; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 公会钻石流水结算实体类 + * + * @author + * @since 2025-10-09 + */ +@Data +public class GuildDiamondStatisticsPolicy2Settle implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + private String cycleDate; + private Integer partitionId; + private Long guildMemberId; + private Long uid; + /** + * 所属厅id + */ + private Integer guildId; + /** + * 钻石流水 + */ + private BigDecimal diamondNum; + /** + * 有效上麦时长 + */ + private Integer micMinutes; + /** + * 有效上麦天数 + */ + private Integer micDay; + /** + * 主播薪资 + */ + private BigDecimal anchorSalary; + /** + * 主播上麦薪资 + */ + private BigDecimal anchorMicSalary; + /** + * 公会长薪资 + */ + private BigDecimal ownerSalary; + /** + * 创建时间 + */ + private Date createTime; + private Date updateTime; + + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildDiamondStatisticsPolicy2Mapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildDiamondStatisticsPolicy2Mapper.java index cc059b2f0..b8ba92089 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildDiamondStatisticsPolicy2Mapper.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildDiamondStatisticsPolicy2Mapper.java @@ -32,7 +32,8 @@ public interface GuildDiamondStatisticsPolicy2Mapper extends BaseMapper listMemberData(@Param("cycleDate")String cycleDate, @Param("guildId")Integer guildId); + List listMemberData(@Param("cycleDate")String cycleDate, @Param("guildId")Integer guildId, + @Param("validDayMinutes") Integer validDayMinutes); List listPersonalDiamondData(@Param("cycleDate")String cycleDate, @Param("guildMemberId")Long guildMemberId); @@ -41,7 +42,7 @@ public interface GuildDiamondStatisticsPolicy2Mapper extends BaseMapper listByStatDate4OldPolicy(@Param("ipage") Page ipage, + Page listByStatDate4Policy2(@Param("ipage") Page ipage, @Param("startDate")String startDate, @Param("endDate")String endDate, @Param("guildId") Integer guildId, @Param("partitionId") Integer partitionId, @@ -51,7 +52,8 @@ public interface GuildDiamondStatisticsPolicy2Mapper extends BaseMapper listByStatDate(@Param("ipage") Page ipage, @Param("startDate")String startDate, @Param("endDate")String endDate, @Param("guildId") Integer guildId, @Param("uid") Long uid, - @Param("partitionId") Integer partitionIdd); + @Param("partitionId") Integer partitionId, + @Param("validDayMinutes") Integer validDayMinutes); List listClearDaimondData(@Param("partitionId")Integer partitionId); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildDiamondStatisticsPolicy2SettleMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildDiamondStatisticsPolicy2SettleMapper.java new file mode 100644 index 000000000..3e83a6b72 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guildpolicy2/GuildDiamondStatisticsPolicy2SettleMapper.java @@ -0,0 +1,27 @@ +package com.accompany.business.mybatismapper.guildpolicy2; + +import com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2Settle; +import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 公会钻石流水结算 Mapper 接口 + * + * @author + * @since 2025-10-09 + */ +public interface GuildDiamondStatisticsPolicy2SettleMapper extends BaseMapper { + + List settleByCycleDate(@Param("cycleDate") String cycleDate, + @Param("partitionId") Integer partitionId, + @Param("validDayMinutes") Integer validDayMinutes); + + Page listByStatDate(@Param("ipage") Page ipage, + @Param("startDate")String startDate, + @Param("guildId") Integer guildId, @Param("uid") Long uid, + @Param("partitionId") Integer partitionId); +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildDiamondStatisticsPolicy2Service.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildDiamondStatisticsPolicy2Service.java index 5d407103b..ffa4955b2 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildDiamondStatisticsPolicy2Service.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildDiamondStatisticsPolicy2Service.java @@ -18,6 +18,8 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; +import static com.accompany.business.constant.guild.GuildConstant.GUILD_POLICY2_VALID_DAY_MINUTES; + /** * 公会钻石流水统计按天 服务实现类 * @@ -41,7 +43,7 @@ public class GuildDiamondStatisticsPolicy2Service extends ServiceImpl listMemberData(String cycleDate, Integer guildId) { - return baseMapper.listMemberData(cycleDate, guildId); + return baseMapper.listMemberData(cycleDate, guildId, GUILD_POLICY2_VALID_DAY_MINUTES); } public List listPersonalDiamondData(String cycleDate, Long guildMemberId) { @@ -55,16 +57,16 @@ public class GuildDiamondStatisticsPolicy2Service extends ServiceImpl listByStatDate4OldPolicy(String statDate, String endDate, Integer partitionId, Integer regionId, + public Page listByStatDate4Policy2(String statDate, String endDate, Integer partitionId, Integer regionId, Integer guildId, Integer pageNo, Integer pageSize, Long inviteUid) { Page page = new Page<>(pageNo, pageSize); - return baseMapper.listByStatDate4OldPolicy(page, statDate, endDate, guildId, partitionId, regionId, inviteUid); + return baseMapper.listByStatDate4Policy2(page, statDate, endDate, guildId, partitionId, regionId, inviteUid); } public Page listByStatDate(String statDate, String endDate, Integer partitionId, Integer guildId, Long uid, Integer pageNo, Integer pageSize) { Page page = new Page<>(pageNo, pageSize); - return baseMapper.listByStatDate(page, statDate, endDate, guildId, uid, partitionId); + return baseMapper.listByStatDate(page, statDate, endDate, guildId, uid, partitionId, GUILD_POLICY2_VALID_DAY_MINUTES); } public List listClearDaimondData(Integer partitionId) { diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildDiamondStatisticsPolicy2SettleService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildDiamondStatisticsPolicy2SettleService.java new file mode 100644 index 000000000..a2a7c468a --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildDiamondStatisticsPolicy2SettleService.java @@ -0,0 +1,34 @@ +package com.accompany.business.service.guildpolicy2; + +import com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2Settle; +import com.accompany.business.mybatismapper.guildpolicy2.GuildDiamondStatisticsPolicy2SettleMapper; +import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +import static com.accompany.business.constant.guild.GuildConstant.GUILD_POLICY2_VALID_DAY_MINUTES; + +/** + * 公会钻石流水结算 服务实现类 + * + * @author + * @since 2025-10-09 + */ +@Slf4j +@Service +public class GuildDiamondStatisticsPolicy2SettleService extends ServiceImpl { + + public List settleByCycleDate(String cycleDate, Integer partitionId) { + return baseMapper.settleByCycleDate(cycleDate, partitionId, GUILD_POLICY2_VALID_DAY_MINUTES); + } + + public Page listByStatDate(String cycleDate, Integer partitionId, + Integer guildId, Long uid, Integer pageNo, Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + return baseMapper.listByStatDate(page, cycleDate, guildId, uid, partitionId); + } +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildPolicy2Service.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildPolicy2Service.java index 6296e249a..03550133e 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildPolicy2Service.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guildpolicy2/GuildPolicy2Service.java @@ -5,6 +5,8 @@ import com.accompany.business.constant.guild.GuildConstant; import com.accompany.business.dto.guild.GuildPolicy2ClearDiamondDto; import com.accompany.business.model.guild.GuildMember; import com.accompany.business.model.guildpolicy2.GuildDiamondClearPolicy2; +import com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2Settle; +import com.accompany.business.model.guildpolicy2.GuildDiamondWagePolicy2; import com.accompany.business.service.guild.GuildAuthService; import com.accompany.business.service.guild.GuildMemberService; import com.accompany.business.service.guild.GuildMemberWeekLevelRewardV2Service; @@ -67,7 +69,10 @@ public class GuildPolicy2Service { private GuildCrystalSettlementService guildCrystalSettlementService; @Autowired private GuildMemberWeekLevelRewardV2Service guildMemberWeekLevelRewardV2Service; - + @Autowired + private GuildDiamondWagePolicy2Service guildDiamondWagePolicy2Service; + @Autowired + private GuildDiamondStatisticsPolicy2SettleService guildDiamondStatisticsPolicy2SettleService; public BusiResult getGuildPolicy2(Long uid, String cycleBeginDate) { GuildPolicy2Vo guildPolicy2Vo = new GuildPolicy2Vo(); guildPolicy2Vo.setCycleDate(cycleBeginDate); @@ -282,6 +287,34 @@ public class GuildPolicy2Service { } } + public void settle(PartitionEnum partitionEnum, String cycleDate) { + if (!GUILD_POLICY2.equals(partitionEnum.getClanMode())) { + log.info("GuildPolicy2Service.settle partitionEnum:{}, clanMode:{} cycleDate:{}", partitionEnum, partitionEnum.getClanMode(), cycleDate); + return; + } + int partitionId = partitionEnum.getId(); + List list = guildDiamondStatisticsPolicy2SettleService.settleByCycleDate(cycleDate, partitionId); + if (CollectionUtils.isEmpty(list)) { + log.info("Policy2Settle.emptyData"); + return; + } + Date date = new Date(); + TreeMap diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionId); + for (GuildDiamondStatisticsPolicy2Settle settle : list) { + settle.setCreateTime(date); + settle.setUpdateTime(date); + settle.setCycleDate(cycleDate); + GuildDiamondWagePolicy2 diamondWagePolicy2 = guildDiamondWagePolicy2Service.calDiamondWageVo(diamondWageMap, settle.getDiamondNum(), settle.getMicDay()); + if (diamondWagePolicy2 == null) { + continue; + } + settle.setAnchorSalary(diamondWagePolicy2.getAnchorDiamondSalary()); + settle.setOwnerSalary(diamondWagePolicy2.getOwnerSalary()); + settle.setAnchorMicSalary(diamondWagePolicy2.getAnchorMicSalary()); + } + guildDiamondStatisticsPolicy2SettleService.saveBatch(list); + } + public void clearGuildCrystal(PartitionEnum partitionEnum, Date lastMonthDate) { if (!Constant.ClanMode.GUILD_POLICY2.equals(partitionEnum.getClanMode())) { return; diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2Mapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2Mapper.xml index d3a216e29..a22fe4b86 100644 --- a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2Mapper.xml +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2Mapper.xml @@ -43,7 +43,7 @@ where cycle_date = #{cycleDate} GROUP BY guild_member_id) gdsp on gm.id = gdsp.guild_member_id left join - (select guild_member_id, COUNT(DISTINCT CASE WHEN mic_minutes >= 120 THEN stat_date END) micDay + (select guild_member_id, COUNT(DISTINCT CASE WHEN mic_minutes >= #{validDayMinutes} THEN stat_date END) micDay from guild_mic_statistics_policy2 where cycle_date = #{cycleDate} GROUP BY guild_member_id) gmp on gmp.guild_member_id = gm.id left join users u on u.uid = gm.uid @@ -106,7 +106,7 @@ ORDER BY gm.`enable` desc, diamondNum desc, gm.guild_id desc - select gd.guild_id guildId, ANY_VALUE(g.name) guildName, sum(gd.diamond_num) diamondNum, @@ -157,7 +157,7 @@ where stat_date >= #{startDate} and stat_date <= #{endDate} GROUP BY guild_member_id) gd on gm.id = gd.guild_member_id left join - (select guild_member_id, sum(mic_minutes) mic_minutes,COUNT(DISTINCT CASE WHEN mic_minutes >= 120 THEN stat_date END) micDay + (select guild_member_id, sum(mic_minutes) mic_minutes,COUNT(DISTINCT CASE WHEN mic_minutes >= #{validDayMinutes} THEN stat_date END) micDay from guild_mic_statistics_policy2 where stat_date >= #{startDate} and stat_date <= #{endDate} GROUP BY guild_member_id) gmp on gmp.guild_member_id = gm.id diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2SettleMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2SettleMapper.xml new file mode 100644 index 000000000..ab4efe1a5 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/GuildDiamondStatisticsPolicy2SettleMapper.xml @@ -0,0 +1,62 @@ + + + + + + + diff --git a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/guildpolicy/GuildPolicy2Controller.java b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/guildpolicy/GuildPolicy2Controller.java index 631f03345..6528fd73b 100644 --- a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/guildpolicy/GuildPolicy2Controller.java +++ b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/guildpolicy/GuildPolicy2Controller.java @@ -61,4 +61,11 @@ public class GuildPolicy2Controller { guildPolicy2Service.clearDiamond(PartitionEnum.getByPartitionId(partitionId), DateUtil.parseDateTime(date)); return BusiResult.success(); } + + @Authorization + @GetMapping("/settle") + public BusiResult> settle(Integer partitionId, String cycleDate) { + guildPolicy2Service.settle(PartitionEnum.getByPartitionId(partitionId), cycleDate); + return BusiResult.success(); + } } diff --git a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildPolicy2SettlementTask.java b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildPolicy2SettlementTask.java index 833378967..68acd0d71 100644 --- a/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildPolicy2SettlementTask.java +++ b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildPolicy2SettlementTask.java @@ -30,15 +30,26 @@ public class GuildPolicy2SettlementTask { public void guildPolicy2ClearDiamond() { Date date = new Date(); List partitionEnumList = List.of(PartitionEnum.TURKEY); + Date lastMonth = DateUtil.offsetMonth(date, -1); for (PartitionEnum partitionEnum : partitionEnumList) { try { - Date lastMonth = DateUtil.offsetMonth(date, -1); log.info("=-=GuildPolicy2ClearDiamondTask=-=:begin"); guildPolicy2Service.clearDiamond(partitionEnum, lastMonth); log.info("=-=GuildPolicy2ClearDiamondTask=-= end"); } catch (Exception e) { log.error("[GuildPolicy2ClearDiamondTask] 异常", e); } + + try { + String cycleDate = DateUtil.formatDate(lastMonth); + log.info("=-=GuildPolicy2.settle=-=:begin"); + guildPolicy2Service.settle(partitionEnum, cycleDate); + log.info("=-=GuildPolicy2.settle=-= end"); + } catch (Exception e) { + log.error("[GuildPolicy2.settle] 异常", e); + } + + } }