From 3b3515c22825293b8d51329113211670c05f7b1e Mon Sep 17 00:00:00 2001 From: lwoo <2629910752@qq.com> Date: Tue, 3 Sep 2024 19:06:08 +0800 Subject: [PATCH] =?UTF-8?q?SS=E5=85=AC=E4=BC=9A=E6=A6=9C=E5=8D=95fixed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SS公会榜单1 --- .../core/enumeration/BillObjTypeEnum.java | 1 + .../constant/activity/ActivityType.java | 5 +- .../constant/activity/GuildSSConstant.java | 18 ++ .../model/guild/SsMonthCoinRecord.java | 56 +++++ .../guild/GuildMemberDiamondStatisticsVo.java | 1 + .../business/vo/guild/GuildSSMemberVo.java | 1 + .../vo/guild/GuildSSRankDetailVo.java | 2 + .../GuildMemberDiamondStatisticsMapper.java | 10 +- .../guild/SsMonthCoinRecordMapper.java | 14 ++ .../h5/ActivityH5AwardRecordService.java | 1 + .../h5/ActivityH5AwardRecordServiceImpl.java | 13 ++ .../h5/ActivityH5LevelExpService.java | 2 + .../h5/ActivityH5LevelExpServiceImpl.java | 6 + .../activity/h5/ActivityOfChargeService.java | 3 - .../GuildMemberDiamondStatisticsService.java | 49 ++++- .../service/guild/SSGuildService.java | 204 ++++++++++++++---- .../guild/SsMonthCoinRecordService.java | 20 ++ .../guild/SsMonthCoinRecordServiceImpl.java | 52 +++++ .../service/record/BillRecordService.java | 1 + .../GuildMemberDiamondStatisticsMapper.xml | 40 +++- .../sqlmappers/SsMonthCoinRecordMapper.xml | 5 + .../activity/h5/SSGuildController.java | 14 ++ .../scheduler/task/guild/SSGuildTask.java | 67 ++++++ 23 files changed, 518 insertions(+), 67 deletions(-) create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/activity/GuildSSConstant.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/SsMonthCoinRecord.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/SsMonthCoinRecordMapper.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SsMonthCoinRecordService.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SsMonthCoinRecordServiceImpl.java create mode 100644 accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/SsMonthCoinRecordMapper.xml create mode 100644 accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/SSGuildTask.java diff --git a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillObjTypeEnum.java b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillObjTypeEnum.java index 1f7eaa991..549516c99 100644 --- a/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillObjTypeEnum.java +++ b/accompany-base/accompany-core/src/main/java/com/accompany/core/enumeration/BillObjTypeEnum.java @@ -186,6 +186,7 @@ public enum BillObjTypeEnum { GUILD_USD_TO_PLATFORM_OUT((byte) 125, "公会usd提现支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD), GUILD_SETTLEMENT_USD_IN((byte) 124, "公会周期结算会长usd收入", BillTypeEnum.IN, CurrencyEnum.GUILD_USD), + SS_GUILD_MONTH_MEMBER_DIAMOND((byte) 125, "游戏开黑收入", BillTypeEnum.IN, CurrencyEnum.GOLD), ; BillObjTypeEnum(byte value, String desc, BillTypeEnum type, CurrencyEnum currency) { diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/activity/ActivityType.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/activity/ActivityType.java index 7f6c92320..e1be57a9d 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/activity/ActivityType.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/activity/ActivityType.java @@ -6,8 +6,9 @@ public enum ActivityType { activity_charge(1, "Monthly Recharge","Monthly Recharge","每月充值活动","Aylık şarj etkinliği",ACTIVITY_FIRST_COMMON,true), SS_GUILD(2, "SS GUILD","SS GUILD","SS GUILD","SS GUILD",ACTIVITY_FIRST_COMMON,true), - SS_GUILD_DRESS_REWARD(3, "SS GUILD DRESS REWARD","SS GUILD DRESS REWARD","SS GUILD DRESS REWARD","SS GUILD DRESS REWARD",ACTIVITY_FIRST_COMMON,true), - SS_GUILD_GOLD_REWARD(4, "SS GUILD GOLD REWARD","SS GUILD GOLD REWARD","SS GUILD GOLD REWARD","SS GUILD GOLD REWARD",ACTIVITY_FIRST_COMMON,true), + SS_GUILD_S_GOLD_REWARD(3, "SS GUILD GOLD REWARD","SS GUILD GOLD REWARD","SS GUILD GOLD REWARD","SS GUILD GOLD REWARD",ACTIVITY_FIRST_COMMON,true), + SS_GUILD_SS_GOLD_REWARD(4, "SS GUILD GOLD REWARD","SS GUILD GOLD REWARD","SS GUILD GOLD REWARD","SS GUILD GOLD REWARD",ACTIVITY_FIRST_COMMON,true), + SS_GUILD_DRESS_REWARD(5, "SS GUILD DRESS REWARD","SS GUILD DRESS REWARD","SS GUILD DRESS REWARD","SS GUILD DRESS REWARD",ACTIVITY_FIRST_COMMON,true), ; private Integer type; diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/activity/GuildSSConstant.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/activity/GuildSSConstant.java new file mode 100644 index 000000000..243626706 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/constant/activity/GuildSSConstant.java @@ -0,0 +1,18 @@ +package com.accompany.business.constant.activity; + +import lombok.Data; + +@Data +public class GuildSSConstant { + public enum SSMarkEnmu { + B(1), + A(2), + S(3), + SS(4), + ; + public final Integer level; + SSMarkEnmu(Integer level) { + this.level = level; + } + } +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/SsMonthCoinRecord.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/SsMonthCoinRecord.java new file mode 100644 index 000000000..13c785d4f --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/SsMonthCoinRecord.java @@ -0,0 +1,56 @@ +package com.accompany.business.model.guild; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import lombok.Data; + +/** + * SS金币发放明细表实体类 + * + * @author + * @since 2024-09-04 + */ +@Data +public class SsMonthCoinRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 时间 + */ + private String cycleDate; + private Long uid; + private Long guildMemberId; + private Integer guildId; + /** + * 公会总流水 + */ + private BigDecimal guildDiamondNum; + /** + * 主播流水 + */ + private BigDecimal diamondNum; + /** + * 金币数量 + */ + private Long goldNum; + /** + * 发放状态,1-已发放,0-待发放 + */ + private Long sendStatus; + + /** + * 发送人 + */ + private String sendUser; + /** + * 创建时间 + */ + private Date createTime; + private Date updateTime; +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildMemberDiamondStatisticsVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildMemberDiamondStatisticsVo.java index 3ca9822f7..2eec7a8bd 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildMemberDiamondStatisticsVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildMemberDiamondStatisticsVo.java @@ -6,5 +6,6 @@ import lombok.Data; @Data public class GuildMemberDiamondStatisticsVo extends GuildMemberDiamondStatistics { private Integer hallMemberCount; + private Long guildMemberId; } diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildSSMemberVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildSSMemberVo.java index a796e4728..1da71bde5 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildSSMemberVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildSSMemberVo.java @@ -21,4 +21,5 @@ public class GuildSSMemberVo { private Integer ssLevel; private BigDecimal diamondNum; private Long goldNum; + private Long ownerErbanNo; } diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildSSRankDetailVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildSSRankDetailVo.java index 70432e728..ddc994707 100644 --- a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildSSRankDetailVo.java +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildSSRankDetailVo.java @@ -29,6 +29,8 @@ public class GuildSSRankDetailVo { private String markScore; private Integer ssLevel; private Long uid; + private Integer memberNum; + private Long ownerErbanNo; } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/GuildMemberDiamondStatisticsMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/GuildMemberDiamondStatisticsMapper.java index e0aa22701..61e7baebc 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/GuildMemberDiamondStatisticsMapper.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/GuildMemberDiamondStatisticsMapper.java @@ -33,11 +33,13 @@ public interface GuildMemberDiamondStatisticsMapper extends BaseMapper ssGuildRankList(@Param("cycleDates") List cycleDates, @Param("partitionId") Integer partitionId, - @Param("guildId") Integer guildId, - @Param("minDiamondNum") Long minDiamondNum, - @Param("limit") Integer limit); + @Param("guildId") Integer guildId); - Double ssGuildMemberDetail(@Param("cycleDates") List cycleDates, + List sumSSGuildMemberDetailList(@Param("cycleDates") List cycleDates, + @Param("guildId") Integer guildId, + @Param("uid") Long uid, @Param("minDiamond") Long minDiamond); + + Double sumSSGuildMemberDetail(@Param("cycleDates") List cycleDates, @Param("guildId") Integer guildId, @Param("uid") Long uid); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/SsMonthCoinRecordMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/SsMonthCoinRecordMapper.java new file mode 100644 index 000000000..4cac82072 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/SsMonthCoinRecordMapper.java @@ -0,0 +1,14 @@ +package com.accompany.business.mybatismapper.guild; + +import com.accompany.business.model.guild.SsMonthCoinRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * SS金币发放明细表 Mapper 接口 + * + * @author + * @since 2024-09-04 + */ +public interface SsMonthCoinRecordMapper extends BaseMapper { + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5AwardRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5AwardRecordService.java index f51cd7e7d..019281c94 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5AwardRecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5AwardRecordService.java @@ -32,6 +32,7 @@ public interface ActivityH5AwardRecordService extends IService @@ -80,6 +82,17 @@ public class ActivityH5AwardRecordServiceImpl extends ServiceImpl set = redissonClient.getSet(activityRewardSignKey); + boolean added = set.add(level); + set.expire(statusCacheDay, TimeUnit.DAYS); + if (added) { + this.sendAward(activityType,uid,level,date,activitySkipType,null); + } + } + @Override public void sendAwardForRegion(ActivityType activityType, Long uid, Integer level, String date, ActivitySkipType activitySkipType, String msg, Byte region) { ActivityH5LevelExp activityH5LevelExp = activityH5LevelExpService.getLevelExp(level,activityType.getType()); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5LevelExpService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5LevelExpService.java index 874983fa4..b334adbee 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5LevelExpService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5LevelExpService.java @@ -24,6 +24,8 @@ public interface ActivityH5LevelExpService extends IService TreeMap expTreeMap(ActivityType activityType); + TreeMap expTreeMapByList(List activityExpVos); + /** * exp达到 * @param expTreeMap diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5LevelExpServiceImpl.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5LevelExpServiceImpl.java index fd58d9fb2..5fcb3d30e 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5LevelExpServiceImpl.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityH5LevelExpServiceImpl.java @@ -42,6 +42,12 @@ public class ActivityH5LevelExpServiceImpl extends ServiceImpl expTreeMap(ActivityType activityType) { TreeMap treeMap = new TreeMap<>(); List levelList = this.getLevelList(activityType); + return expTreeMapByList(levelList); + } + + @Override + public TreeMap expTreeMapByList(List levelList) { + TreeMap treeMap = new TreeMap<>(); if (CollectionUtils.isEmpty(levelList)) { return treeMap; } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityOfChargeService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityOfChargeService.java index dcd4e0516..e3f991662 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityOfChargeService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/activity/h5/ActivityOfChargeService.java @@ -1,6 +1,5 @@ package com.accompany.business.service.activity.h5; -import cn.hutool.core.date.DateUtil; import com.accompany.business.constant.activity.ActivityH5RedisKey; import com.accompany.business.constant.activity.ActivitySkipType; import com.accompany.business.constant.activity.ActivityType; @@ -20,7 +19,6 @@ import com.accompany.core.service.partition.PartitionInfoService; import com.accompany.payment.service.RechargeUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.redisson.api.*; import org.redisson.client.codec.LongCodec; @@ -36,7 +34,6 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; @Slf4j @Service diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildMemberDiamondStatisticsService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildMemberDiamondStatisticsService.java index ed5649d5a..84282f4cf 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildMemberDiamondStatisticsService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildMemberDiamondStatisticsService.java @@ -1,14 +1,17 @@ package com.accompany.business.service.guild; import cn.hutool.core.date.DateUtil; +import com.accompany.business.constant.activity.ActivityType; import com.accompany.business.model.guild.GuildDiamondWage; import com.accompany.business.model.guild.GuildMember; import com.accompany.business.model.guild.GuildMemberDiamondStatistics; import com.accompany.business.mybatismapper.guild.GuildMemberDiamondStatisticsMapper; +import com.accompany.business.service.activity.h5.ActivityH5LevelExpService; +import com.accompany.business.vo.activity.h5.ActivityDiffExpVo; +import com.accompany.business.vo.activity.h5.ActivityExpVo; import com.accompany.business.vo.guild.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -25,6 +28,8 @@ public class GuildMemberDiamondStatisticsService extends ServiceImpl ssGuildRankList(List cycleDates, Integer partitionId, Integer guildId, Long minDiamondNum, Integer limit) { - return baseMapper.ssGuildRankList(cycleDates, partitionId, guildId, minDiamondNum, limit); + public List ssGuildRankList(List cycleDates, Integer partitionId, Integer guildId) { + List guildSSRankDetailVos = baseMapper.ssGuildRankList(cycleDates, partitionId, guildId); + if (CollectionUtils.isEmpty(guildSSRankDetailVos)) { + return new ArrayList<>(); + } + int rank = 1; + List ssRankExpVos = activityH5LevelExpService.getLevelList(ActivityType.SS_GUILD); + for (GuildSSRankDetailVo guildSSRankDetailVo : guildSSRankDetailVos) { + ActivityDiffExpVo activityDiffExpVo = activityH5LevelExpService.calCurrentOrNextPosition(ssRankExpVos, + guildSSRankDetailVo.getDiamondNum().doubleValue(), guildSSRankDetailVo.getMemberNum().longValue()); + if (activityDiffExpVo.getLevel() >= 1 && rank <= 30) { + guildSSRankDetailVo.setRank(rank++); + } + guildSSRankDetailVo.setMarkScore(activityDiffExpVo.getName()); + guildSSRankDetailVo.setSsLevel(activityDiffExpVo.getLevel()); + } + return guildSSRankDetailVos; } - public Double ssGuildMemberDetail(List cycleDates, Integer guildId, Long uid) { - return baseMapper.ssGuildMemberDetail(cycleDates, guildId, uid); + /** + * 统计主播钻石流水 sum + * @param cycleDates + * @param guildId allow null + * @param uid allow null + * @return + */ + public Double sumSSGuildMemberDetail(List cycleDates, Integer guildId, Long uid) { + return baseMapper.sumSSGuildMemberDetail(cycleDates, guildId, uid); + } + + /** + * 统计主播钻石流水 + * @param cycleDates + * @param guildId allow null + * @param uid allow null + * @param minDiamond allow null + * @return + */ + List sumSSGuildMemberDetailList(List cycleDates, Integer guildId, Long uid, Long minDiamond) { + return baseMapper.sumSSGuildMemberDetailList(cycleDates, guildId, uid, minDiamond); } } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SSGuildService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SSGuildService.java index 99d194953..ff9d8a26b 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SSGuildService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SSGuildService.java @@ -1,25 +1,35 @@ package com.accompany.business.service.guild; +import com.accompany.business.constant.activity.ActivitySkipType; import com.accompany.business.constant.activity.ActivityType; +import com.accompany.business.constant.activity.GuildSSConstant; import com.accompany.business.model.UserLevelExperience; +import com.accompany.business.model.activity.h5.ActivityH5LevelAward; import com.accompany.business.model.guild.Guild; import com.accompany.business.model.guild.GuildMember; +import com.accompany.business.service.activity.h5.ActivityH5AwardRecordService; +import com.accompany.business.service.activity.h5.ActivityH5LevelAwardService; import com.accompany.business.service.activity.h5.ActivityH5LevelExpService; import com.accompany.business.service.activity.h5.ActivityRankRuleService; import com.accompany.business.service.level.LevelService; +import com.accompany.business.service.purse.UserPurseService; +import com.accompany.business.service.record.BillRecordService; import com.accompany.business.service.user.UsersService; import com.accompany.business.vo.activity.h5.ActivityDiffExpVo; import com.accompany.business.vo.activity.h5.ActivityExpVo; +import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsVo; import com.accompany.business.vo.guild.GuildSSMemberVo; import com.accompany.business.vo.guild.GuildSSRankDetailVo; import com.accompany.business.vo.guild.GuildSSRankVo; import com.accompany.common.result.BusiResult; import com.accompany.common.utils.DateTimeUtil; +import com.accompany.core.enumeration.BillObjTypeEnum; import com.accompany.core.enumeration.PartitionEnum; import com.accompany.core.exception.ServiceException; import com.accompany.core.model.PartitionInfo; import com.accompany.core.model.Users; import com.accompany.core.service.partition.PartitionInfoService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,13 +38,11 @@ import java.math.BigDecimal; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.TreeMap; +import java.util.*; import static com.accompany.common.status.BusiStatus.ACCESS_DENIED; +@Slf4j @Service public class SSGuildService { @@ -47,6 +55,8 @@ public class SSGuildService { @Autowired private ActivityH5LevelExpService activityH5LevelExpService; @Autowired + private ActivityH5LevelAwardService activityH5LevelAwardService; + @Autowired private ActivityRankRuleService activityRankRuleService; @Autowired private GuildMemberService guildMemberService; @@ -54,6 +64,10 @@ public class SSGuildService { private GuildService guildService; @Autowired private LevelService levelService; + @Autowired + private SsMonthCoinRecordService ssMonthCoinRecordService; + @Autowired + private ActivityH5AwardRecordService activityH5AwardRecordService; private static final DateTimeFormatter dateFormatters = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN); @@ -72,66 +86,164 @@ public class SSGuildService { guildSSRankVo.setMonthEndTime(cycleEndDateTime.toInstant().toEpochMilli()); guildSSRankVo.setStartDate(zonedDateTime.withDayOfMonth(1).format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN_DOT))); guildSSRankVo.setEndDate(cycleEndDateTime.format(DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN_DOT))); - List expVos = activityH5LevelExpService.getLevelList(ActivityType.SS_GUILD); - BigDecimal minDiamondNum = expVos.get(0).getExp(); UserLevelExperience userExper = levelService.getUserExper(uid); guildSSRankVo.setWealth(userExper.getLevelExperience().getLevelSeq()); guildSSRankVo.setLimitWealth(activityRankRuleService.getCommonLimitWealth()); - List guildSSRankDetailVos = guildMemberDiamondStatisticsService.ssGuildRankList(cycleDates, users.getPartitionId(), null, minDiamondNum.longValue(), 30); - guildSSRankVo.setRankList(guildSSRankDetailVos); + List guildSSRankDetailVos = guildMemberDiamondStatisticsService.ssGuildRankList(cycleDates, users.getPartitionId(), null); + List result = new ArrayList<>(); + guildSSRankVo.setRankList(result); GuildMember vaildGuildMemberByUid = guildMemberService.getVaildGuildMemberByUid(uid); Integer guildId = null; if (vaildGuildMemberByUid != null) { guildId = vaildGuildMemberByUid.getGuildId(); } GuildSSRankDetailVo selfRank = null; - TreeMap ssRankExpVos = activityH5LevelExpService.expTreeMap(ActivityType.SS_GUILD); if (CollectionUtils.isNotEmpty(guildSSRankDetailVos)) { - int rank = 1; for (GuildSSRankDetailVo guildSSRankDetailVo : guildSSRankDetailVos) { - guildSSRankDetailVo.setRank(rank++); - ActivityDiffExpVo activityDiffExpVo = activityH5LevelExpService.calCurrentOrNextPosition(ssRankExpVos, guildSSRankDetailVo.getDiamondNum().doubleValue()); - guildSSRankDetailVo.setMarkScore(activityDiffExpVo.getName()); - guildSSRankDetailVo.setSsLevel(activityDiffExpVo.getLevel()); + guildSSRankDetailVo.setDiamondNum(null); + if (guildSSRankDetailVo.getRank() > 0) { + result.add(guildSSRankDetailVo); + } if (guildSSRankDetailVo.getGuildId().equals(guildId)) { selfRank = guildSSRankDetailVo; } } } - if (guildId != null) { - Guild vaildGuildById = guildService.getVaildGuildById(guildId); - Users guildOwner = usersService.getUsersByUid(vaildGuildById.getOwnerUid()); - if (selfRank == null) { - List guildSSRankDetailVos1 = guildMemberDiamondStatisticsService.ssGuildRankList(cycleDates, users.getPartitionId(), guildId, minDiamondNum.longValue(), 1); - if (CollectionUtils.isNotEmpty(guildSSRankDetailVos1)) { - selfRank = guildSSRankDetailVos1.get(0); - ActivityDiffExpVo activityDiffExpVo = activityH5LevelExpService.calCurrentOrNextPosition(ssRankExpVos, selfRank.getDiamondNum().doubleValue()); - selfRank.setMarkScore(activityDiffExpVo.getName()); - selfRank.setSsLevel(activityDiffExpVo.getLevel()); - } else { - selfRank = new GuildSSRankDetailVo(); - selfRank.setGuildId(guildId); - selfRank.setGuildName(vaildGuildById.getName()); - selfRank.setUid(vaildGuildById.getOwnerUid()); - selfRank.setAvatar(guildOwner.getAvatar()); - selfRank.setDiamondNum(BigDecimal.valueOf(0)); - selfRank.setMarkScore("-"); - selfRank.setSsLevel(0); - } - } - GuildSSMemberVo memberVo = GuildSSMemberVo.builder().guildName(selfRank.getGuildName()) - .erbanNo(users.getErbanNo()) - .nick(users.getNick()) - .ssLevel(selfRank.getSsLevel()) - .markScore(selfRank.getMarkScore()) - .guildId(guildId) - .avatar(users.getAvatar()) - .goldNum(0L) - .diamondNum(BigDecimal.valueOf(guildMemberDiamondStatisticsService.ssGuildMemberDetail(cycleDates, guildId, uid))).build(); - guildSSRankVo.setMemberVo(memberVo); - } guildSSRankVo.setSelfRank(selfRank); + if(guildId == null){ //非主播 + return BusiResult.success(guildSSRankVo); + } + Guild vaildGuildById = guildService.getVaildGuildById(guildId); + Users guildOwner = usersService.getUsersByUid(vaildGuildById.getOwnerUid()); + if (selfRank == null) { + selfRank = new GuildSSRankDetailVo(); + selfRank.setGuildId(guildId); + selfRank.setOwnerErbanNo(guildOwner.getErbanNo()); + selfRank.setGuildName(vaildGuildById.getName()); + selfRank.setUid(vaildGuildById.getOwnerUid()); + selfRank.setAvatar(guildOwner.getAvatar()); + selfRank.setDiamondNum(BigDecimal.valueOf(0)); + selfRank.setMarkScore("-"); + selfRank.setSsLevel(0); + } + + ActivityType activityType = null; + if (GuildSSConstant.SSMarkEnmu.S.level.equals(selfRank.getSsLevel())) { + activityType = ActivityType.SS_GUILD_S_GOLD_REWARD; + } else if (GuildSSConstant.SSMarkEnmu.SS.level.equals(selfRank.getSsLevel())) { + activityType = ActivityType.SS_GUILD_SS_GOLD_REWARD; + } + Long goldNum = 0L; + Double diamondNum = guildMemberDiamondStatisticsService.sumSSGuildMemberDetail(cycleDates, guildId, uid); + if (activityType != null) { + List levelList = activityH5LevelExpService.getLevelList(activityType); + TreeMap treeMap = activityH5LevelExpService.expTreeMapByList(levelList); + ActivityDiffExpVo activityDiffExpVo = activityH5LevelExpService.calCurrentOrNextPosition(treeMap, diamondNum); + List activityH5LevelAwards = activityH5LevelAwardService.listByLevel(activityDiffExpVo.getLevel(), activityType.getType()); + goldNum = activityH5LevelAwards.get(0).getAwardNum().longValue(); + } + + GuildSSMemberVo memberVo = GuildSSMemberVo.builder().guildName(selfRank.getGuildName()) + .erbanNo(users.getErbanNo()) + .nick(users.getNick()) + .ssLevel(selfRank.getSsLevel()) + .markScore(selfRank.getMarkScore()) + .guildId(guildId) + .avatar(users.getAvatar()) + .goldNum(goldNum) + .ownerErbanNo(guildOwner.getErbanNo()) + .diamondNum(BigDecimal.valueOf(diamondNum)).build(); + guildSSRankVo.setMemberVo(memberVo); return BusiResult.success(guildSSRankVo); } + public void ssMonthTask(List cycleDates, Integer partitionId) { + try { + List guildSSRankDetailVos = guildMemberDiamondStatisticsService.ssGuildRankList(cycleDates, partitionId, null); + if (CollectionUtils.isEmpty(guildSSRankDetailVos)) { + log.info("====ssMonthTask============= empty data"); + return; + } + ActivityType activityType = null; + for (GuildSSRankDetailVo rankDetailVo : guildSSRankDetailVos) { + if (GuildSSConstant.SSMarkEnmu.S.level.equals(rankDetailVo.getSsLevel())) { + activityType = ActivityType.SS_GUILD_S_GOLD_REWARD; + } else if (GuildSSConstant.SSMarkEnmu.SS.level.equals(rankDetailVo.getSsLevel())) { + activityType = ActivityType.SS_GUILD_SS_GOLD_REWARD; + } else { + continue; + } + List levelList = activityH5LevelExpService.getLevelList(activityType); + if (CollectionUtils.isEmpty(levelList)) { + return; + } + long minDiamond = levelList.get(0).getExp().longValue(); + List guildMemberDatas = + guildMemberDiamondStatisticsService.sumSSGuildMemberDetailList(cycleDates, rankDetailVo.getGuildId(), null, minDiamond); + if (CollectionUtils.isEmpty(guildMemberDatas)) { + log.info("=====ssMonthTask=====empty guildMemberData,guildId:{}", rankDetailVo.getGuildId()); + continue; + } + TreeMap treeMap = activityH5LevelExpService.expTreeMapByList(levelList); + for (GuildMemberDiamondStatisticsVo data : guildMemberDatas) { + ActivityDiffExpVo activityDiffExpVo = activityH5LevelExpService.calCurrentOrNextPosition(treeMap, data.getDiamondNum()); + if (activityDiffExpVo.getLevel() <= 0) { + continue; + } + List activityH5LevelAwards = activityH5LevelAwardService.listByLevel(activityDiffExpVo.getLevel(), activityType.getType()); + if (CollectionUtils.isEmpty(activityH5LevelAwards)) { + log.info("=====ssMonthTask=====empty guildMemberData Gold,guildId:{}", rankDetailVo.getGuildId()); + continue; + } + Long rewardGoldNum = activityH5LevelAwards.get(0).getAwardNum().longValue(); + Boolean checkExist = ssMonthCoinRecordService.checkExist(rankDetailVo.getGuildId(), data.getUid(), data.getGuildMemberId(), cycleDates.get(0)); + if (checkExist) { + continue; + } + ssMonthCoinRecordService.saveRecord(rankDetailVo.getGuildId(), data.getUid(), data.getGuildMemberId(), cycleDates.get(0), rankDetailVo.getDiamondNum(), BigDecimal.valueOf(data.getDiamondNum()), rewardGoldNum); + //不搞自动发,搞手动后台发了 + // userPurseService.addDiamond(data.getUid(), rewardGoldNum, BillObjTypeEnum.SS_GUILD_MONTH_MEMBER_DIAMOND.getDesc()); + // billRecordService.insertGeneralBillRecord(data.getUid(), data.getUid(), null, BillObjTypeEnum.SS_GUILD_MONTH_MEMBER_DIAMOND, rewardGoldNum.doubleValue()); + } + } + } catch (Exception e) { + log.error("=====ssMonthTask===== error:{}", e.getMessage()); + } + } + + public void ssTaskByMinutes(List cycleDates, Integer partitionId) { + try { + List guildSSRankDetailVos = guildMemberDiamondStatisticsService.ssGuildRankList(cycleDates, partitionId, null); + if (CollectionUtils.isEmpty(guildSSRankDetailVos)) { + log.info("====ssTaskByMinutes============= empty data"); + return; + } + List levelList = activityH5LevelExpService.getLevelList(ActivityType.SS_GUILD_S_GOLD_REWARD); + if (CollectionUtils.isEmpty(levelList)) { + log.info("====ssTaskByMinutes============= empty levelList"); + return; + } + long minDiamond = levelList.get(0).getExp().longValue(); + for (GuildSSRankDetailVo rankDetailVo : guildSSRankDetailVos) { + if (GuildSSConstant.SSMarkEnmu.S.level.equals(rankDetailVo.getSsLevel())) { + } else if (GuildSSConstant.SSMarkEnmu.SS.level.equals(rankDetailVo.getSsLevel())) { + } else if (GuildSSConstant.SSMarkEnmu.A.level.equals(rankDetailVo.getSsLevel())){ + } else { + continue; + } + List guildMemberDatas = + guildMemberDiamondStatisticsService.sumSSGuildMemberDetailList(cycleDates, rankDetailVo.getGuildId(), null, minDiamond); + if (CollectionUtils.isEmpty(guildMemberDatas)) { + log.info("=====ssTaskByMinutes=====empty guildMemberData,guildId:{}", rankDetailVo.getGuildId()); + continue; + } + for (GuildMemberDiamondStatisticsVo data : guildMemberDatas) { + activityH5AwardRecordService.sendAwardCheckSend(ActivityType.SS_GUILD, data.getUid(), rankDetailVo.getSsLevel(), cycleDates.get(0), ActivitySkipType.normal, 60L); + } + } + } catch (Exception e) { + log.error("=====ssTaskByMinutes===== error:{}", e.getMessage()); + } + } + } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SsMonthCoinRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SsMonthCoinRecordService.java new file mode 100644 index 000000000..4f8d6522e --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SsMonthCoinRecordService.java @@ -0,0 +1,20 @@ +package com.accompany.business.service.guild; + +import com.accompany.business.model.guild.SsMonthCoinRecord; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.math.BigDecimal; + +/** + * SS金币发放明细表 服务类 + * + * @author + * @since 2024-09-04 + */ +public interface SsMonthCoinRecordService extends IService { + + int saveRecord(Integer guildId, Long uid, Long guildMemberId, String cycleDate, BigDecimal guildDiamondNum, BigDecimal diamondNum, Long goldNum); + + + Boolean checkExist(Integer guildId, Long uid, Long guildMemberId, String cycleDate); +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SsMonthCoinRecordServiceImpl.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SsMonthCoinRecordServiceImpl.java new file mode 100644 index 000000000..3f5f2e5b3 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/SsMonthCoinRecordServiceImpl.java @@ -0,0 +1,52 @@ +package com.accompany.business.service.guild; + +import com.accompany.business.model.guild.SsMonthCoinRecord; +import com.accompany.business.mybatismapper.guild.SsMonthCoinRecordMapper; +import com.accompany.business.service.purse.UserPurseService; +import com.accompany.business.service.record.BillRecordService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * SS金币发放明细表 服务实现类 + * + * @author + * @since 2024-09-04 + */ +@Service +public class SsMonthCoinRecordServiceImpl extends ServiceImpl implements SsMonthCoinRecordService { + @Autowired + private UserPurseService userPurseService; + @Autowired + private BillRecordService billRecordService; + + @Override + public int saveRecord(Integer guildId, Long uid, Long guildMemberId, String cycleDate, BigDecimal guildDiamondNum, BigDecimal diamondNum, Long goldNum) { + SsMonthCoinRecord ssMonthCoinRecord = new SsMonthCoinRecord(); + ssMonthCoinRecord.setDiamondNum(diamondNum); + ssMonthCoinRecord.setCycleDate(cycleDate); + ssMonthCoinRecord.setGoldNum(goldNum); + ssMonthCoinRecord.setGuildMemberId(guildMemberId); + ssMonthCoinRecord.setUid(uid); + ssMonthCoinRecord.setGuildId(guildId); + ssMonthCoinRecord.setGuildDiamondNum(guildDiamondNum); + ssMonthCoinRecord.setCreateTime(new Date()); + return baseMapper.insert(ssMonthCoinRecord); + } + + @Override + public Boolean checkExist(Integer guildId, Long uid, Long guildMemberId, String cycleDate) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(SsMonthCoinRecord::getGuildMemberId, guildMemberId) + .eq(SsMonthCoinRecord::getUid, uid) + .eq(SsMonthCoinRecord::getGuildId, guildId) + .eq(SsMonthCoinRecord::getCycleDate, cycleDate); + return baseMapper.selectCount(wrapper) > 0; + } +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/record/BillRecordService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/record/BillRecordService.java index 3d6aa3834..1ab3b4b0e 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/record/BillRecordService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/record/BillRecordService.java @@ -206,6 +206,7 @@ public class BillRecordService extends ServiceImpl objTypes.add(BillObjTypeEnum.GAME_PARTNER_GOLD_IN.getValue()); objTypes.add(BillObjTypeEnum.GUILD_USD_EXCHANGE_GOLD_IN.getValue()); objTypes.add(BillObjTypeEnum.GUILD_USD_TO_RECHARGE_USER_IN.getValue()); + objTypes.add(BillObjTypeEnum.SS_GUILD_MONTH_MEMBER_DIAMOND.getValue()); break; case GOLD_OUT: objTypes.add(BillObjTypeEnum.WITHDRAW.getValue()); 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 a213c8a82..690a256d5 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 @@ -102,11 +102,14 @@ g.name guildName, g.owner_uid uid, sum(gd.diamond_num) diamondNum, - u.avatar avatar + u.avatar avatar, + u.erban_no ownerErbanNo, + ifnull(a.memberNum, 0) memberNum from guild_member_diamond_statistics gd left join guild_member gm on gm.id = gd.guild_member_id left join guild g on g.id = gm.guild_id left join users u on u.uid = g.owner_uid + left join (select guild_id, count(distinct uid) memberNum from guild_member where `enable` = 1 GROUP BY guild_id) a on a.guild_id = g.id where g.`enable` = 1 and gm.`enable` = 1 #{cycleD} @@ -117,12 +120,35 @@ and gd.guild_id = #{guildId} - group by gd.guild_id having diamondNum >= #{minDiamondNum} - ORDER BY diamondNum desc - limit #{limit} + group by gd.guild_id + ORDER BY diamondNum desc,memberNum desc - + select + gm.guild_id guildId, + gd.uid uid, + gd.guild_member_id guildMemberId, + ifnull(sum(gd.diamond_num),0) diamondNum + from guild_member_diamond_statistics gd + left join guild_member gm on gm.id = gd.guild_member_id + where gm.`enable` = 1 + + #{cycleD} + + + and gm.uid = #{uid} + + + and gm.guild_id = #{guildId} + + group by gm.guild_id, gm.uid,gd.guild_member_id + + having diamondNum >= #{minDiamond} + + + + \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/SsMonthCoinRecordMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/SsMonthCoinRecordMapper.xml new file mode 100644 index 000000000..5eaad9d6d --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/SsMonthCoinRecordMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activity/h5/SSGuildController.java b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activity/h5/SSGuildController.java index 4526e3133..4e1b1d1ab 100644 --- a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activity/h5/SSGuildController.java +++ b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/activity/h5/SSGuildController.java @@ -3,6 +3,7 @@ package com.accompany.business.controller.activity.h5; import com.accompany.business.service.guild.SSGuildService; import com.accompany.business.vo.guild.GuildSSRankVo; import com.accompany.common.result.BusiResult; +import com.accompany.core.enumeration.PartitionEnum; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -11,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.Arrays; + /** * 每月充值活动 */ @@ -28,4 +31,15 @@ public class SSGuildController { return ssGuildService.activitySSGuildMonthlyRank(uid); } + @GetMapping("/taskMonth") + public BusiResult taskMonth(String cycleOne, String cycleTwo, Integer partitionId) { + ssGuildService.ssMonthTask(Arrays.asList(cycleOne, cycleTwo), partitionId); + return BusiResult.success(); + } + + @GetMapping("/ssTaskByMinutes") + public BusiResult ssTaskByMinutes(String cycleOne, String cycleTwo, Integer partitionId) { + ssGuildService.ssTaskByMinutes(Arrays.asList(cycleOne, cycleTwo), partitionId); + return BusiResult.success(); + } } 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 new file mode 100644 index 000000000..21c8ff86f --- /dev/null +++ b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/SSGuildTask.java @@ -0,0 +1,67 @@ +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 java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Component +@Slf4j +public class SSGuildTask { + + @Autowired + private PartitionInfoService partitionInfoService; + + @Autowired + private SSGuildService ssGuildService; + + + private static final DateTimeFormatter dateFormatters = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATETIME_PATTERN); + + /** + * 每3minutes + */ + @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.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); + ssGuildService.ssTaskByMinutes(cycleDates, PartitionEnum.ARAB.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.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); + log.info("=-=ssMonthTask=-=:cycleOne:{},cycleTwo:{}", cycleOne , cycleTwo); + ssGuildService.ssMonthTask(cycleDates, PartitionEnum.ARAB.getId()); + log.info("================ssMonthTask end==============="); + ssGuildService.ssTaskByMinutes(cycleDates, PartitionEnum.ARAB.getId()); + } + +}