From 85b6690ffffec42286dd05aebfd7003ed5d7f456 Mon Sep 17 00:00:00 2001 From: lwoo <2629910752@qq.com> Date: Tue, 20 Aug 2024 11:54:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=9C=88=E7=BB=93=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/guild/AgencyMonthSettleDetail.java | 69 ++++++++++++++ .../model/guild/AgencySalaryInfo.java | 58 +++++++++++ .../guild/AgencyUserMonthSettleDetail.java | 74 +++++++++++++++ .../business/param/BasePageParams.java | 26 +++++ .../vo/guild/AgencyMonthSettleDetailVo.java | 36 +++++++ .../business/vo/guild/AgencyOpenAdminVo.java | 35 +++++++ .../business/vo/guild/AgencySalaryInfoVo.java | 9 ++ .../guild/GuildMemberDiamondStatisticsVo.java | 10 ++ .../vo/guild/UserHallEnergyLevelDataVo.java | 72 ++++++++++++++ .../guild/AgencyMonthSettleDetailMapper.java | 24 +++++ .../guild/AgencySalaryInfoMapper.java | 14 +++ .../AgencyUserMonthSettleDetailMapper.java | 28 ++++++ .../GuildMemberDiamondStatisticsMapper.java | 10 ++ .../guild/AgencyMonthSettleDetailService.java | 26 +++++ .../AgencyMonthSettleDetailServiceImpl.java | 54 +++++++++++ .../guild/AgencyMonthSettleService.java | 95 +++++++++++++++++++ .../guild/AgencySalaryInfoService.java | 24 +++++ .../guild/AgencySalaryInfoServiceImpl.java | 57 +++++++++++ .../AgencyUserMonthSettleDetailService.java | 24 +++++ ...gencyUserMonthSettleDetailServiceImpl.java | 37 ++++++++ .../GuildMemberDiamondStatisticsService.java | 64 +++++++++++++ .../business/service/guild/GuildService.java | 1 + .../AgencyMonthSettleDetailMapper.xml | 54 +++++++++++ .../sqlmappers/AgencySalaryInfoMapper.xml | 6 ++ .../AgencyUserMonthSettleDetailMapper.xml | 28 ++++++ .../GuildMemberDiamondStatisticsMapper.xml | 37 ++++++++ .../controller/guild/GuildTestController.java | 23 +++++ .../scheduler/task/guild/GuildSettleTask.java | 51 ++++++++++ 28 files changed, 1046 insertions(+) create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencyMonthSettleDetail.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencySalaryInfo.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencyUserMonthSettleDetail.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/param/BasePageParams.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencyMonthSettleDetailVo.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencyOpenAdminVo.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencySalaryInfoVo.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildMemberDiamondStatisticsVo.java create mode 100644 accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/UserHallEnergyLevelDataVo.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencyMonthSettleDetailMapper.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencySalaryInfoMapper.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencyUserMonthSettleDetailMapper.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleDetailService.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleDetailServiceImpl.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleService.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencySalaryInfoService.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencySalaryInfoServiceImpl.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyUserMonthSettleDetailService.java create mode 100644 accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyUserMonthSettleDetailServiceImpl.java create mode 100644 accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencyMonthSettleDetailMapper.xml create mode 100644 accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencySalaryInfoMapper.xml create mode 100644 accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencyUserMonthSettleDetailMapper.xml create mode 100644 accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildSettleTask.java diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencyMonthSettleDetail.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencyMonthSettleDetail.java new file mode 100644 index 000000000..51dac7ce2 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencyMonthSettleDetail.java @@ -0,0 +1,69 @@ +package com.accompany.business.model.guild; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 公会月政策结算明细表实体类 + * + * @author + * @since 2024-07-01 + */ +@Builder +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AgencyMonthSettleDetail implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 结算时间 + */ + private Date statDate; + /** + * 结算结束时间 + */ + private Date endDate; + private Long uid; + /** + * 所属厅id + */ + private Integer guildId; + + private Integer diamondLevel; + private Integer hallMemberCount; + /** + * 能量值 + */ + private BigDecimal diamondNum; + /** + * 公会长工资 + */ + private BigDecimal hallSalary; + /** + * 公会长薪资比例 + */ + private Double salaryRate; + /** + * 区服 + */ + private Byte region; + /** + * 创建时间 + */ + private Date createTime; + private Date updateTime; + + +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencySalaryInfo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencySalaryInfo.java new file mode 100644 index 000000000..130e167f8 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencySalaryInfo.java @@ -0,0 +1,58 @@ +package com.accompany.business.model.guild; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 公会活动成员奖励信息表实体类 + * + * @author + * @since 2024-01-26 + */ +@Data +public class AgencySalaryInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 等级 + */ + private Integer levelId; + /** + * 等级 + */ + private String levelName; + /** + * 开始能量值 + */ + private Long startValue; + /** + * 结束能量值 + */ + private Long endValue; + /** + * 奖励金币 + */ + private Long rewardCoin; + /** + * 公会长薪资比例 + */ + private Double salaryRate; + + /** + * 薪资兑换钻石数量 + */ + private Long usbToDiamond; + /** + * 创建时间 + */ + private Date createTime; + + +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencyUserMonthSettleDetail.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencyUserMonthSettleDetail.java new file mode 100644 index 000000000..0a24b3f4f --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/model/guild/AgencyUserMonthSettleDetail.java @@ -0,0 +1,74 @@ +package com.accompany.business.model.guild; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 公会主播月政策结算明细表 + *

+ * + * @author wxf + * @since 2024-07-30 + */ +@Builder +@Getter +@Setter +@TableName("agency_user_month_settle_detail") +@AllArgsConstructor +@NoArgsConstructor +public class AgencyUserMonthSettleDetail implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 结算时间 + */ + @TableField("stat_date") + private Date statDate; + + /** + * 结算结束时间 + */ + @TableField("end_date") + private Date endDate; + + /** + * 主播id + */ + @TableField("uid") + private Long uid; + + /** + * 所属厅id + */ + @TableField("guild_id") + private Integer guildId; + + /** + * 钻石流水 + */ + @TableField("diamond_num") + private BigDecimal diamondNum; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + @TableField("update_time") + private Date updateTime; + + +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/param/BasePageParams.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/param/BasePageParams.java new file mode 100644 index 000000000..af02f449b --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/param/BasePageParams.java @@ -0,0 +1,26 @@ +package com.accompany.business.param; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class BasePageParams { + + @ApiModelProperty("当前页") + private Integer pageNo = 1; + + @ApiModelProperty("页大小") + private Integer pageSize = 10; + @ApiModelProperty("区域") + private Byte region ; + @ApiModelProperty("公会周期时间") + private String dateCycle ; + + @ApiModelProperty("开始时间") + private String startTime ; + + @ApiModelProperty("结束时间") + private String endTime; + +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencyMonthSettleDetailVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencyMonthSettleDetailVo.java new file mode 100644 index 000000000..0cbeef715 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencyMonthSettleDetailVo.java @@ -0,0 +1,36 @@ +package com.accompany.business.vo.guild; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 公会月政策结算明细表实体类 + * + * @author + * @since 2024-07-01 + */ +@Data +public class AgencyMonthSettleDetailVo { + private Long id; + private Date statDate; + private Date endDate; + private Long uid; + private Long hallId; + + private Integer energyLevel; + private Integer hallMemberCount; + private BigDecimal energyValue; + private BigDecimal hallSalary; + private Double salaryRate; + private Byte region; + private Date createTime; + private Date updateTime; + private Long agencyId; + private String agencyName; + private String agencyAbbr; + private Long agencyUid; + private Long agencyErbanNo; + private String agencyMarkRegion; +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencyOpenAdminVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencyOpenAdminVo.java new file mode 100644 index 000000000..e0d9a729c --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencyOpenAdminVo.java @@ -0,0 +1,35 @@ +package com.accompany.business.vo.guild; + +import lombok.Data; + +import java.util.Date; + +@Data +public class AgencyOpenAdminVo { + private Long agencyId; + private Long uid; + private Long hallId; + private Long agencyErbanNo; + private Long erbanNo; + /** + * 钻石流水 + */ + private Double diamondFlow; + /** + * 是否是有效主播 + */ + private Integer effect; + private Date createTime; + /** + * 有效主播数量 + */ + private Integer effectAnchor; + /** + * 所有主播数量 + */ + private Integer allAnchor; + /** + * 日期 + */ + private String dateCycle; +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencySalaryInfoVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencySalaryInfoVo.java new file mode 100644 index 000000000..9db194d46 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/AgencySalaryInfoVo.java @@ -0,0 +1,9 @@ +package com.accompany.business.vo.guild; + +import com.accompany.business.model.guild.AgencySalaryInfo; +import lombok.Data; + +@Data +public class AgencySalaryInfoVo extends AgencySalaryInfo { + private String nextLevelName; +} 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 new file mode 100644 index 000000000..3ca9822f7 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/GuildMemberDiamondStatisticsVo.java @@ -0,0 +1,10 @@ +package com.accompany.business.vo.guild; + +import com.accompany.business.model.guild.GuildMemberDiamondStatistics; +import lombok.Data; + +@Data +public class GuildMemberDiamondStatisticsVo extends GuildMemberDiamondStatistics { + private Integer hallMemberCount; + +} diff --git a/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/UserHallEnergyLevelDataVo.java b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/UserHallEnergyLevelDataVo.java new file mode 100644 index 000000000..5c88c7070 --- /dev/null +++ b/accompany-business/accompany-business-sdk/src/main/java/com/accompany/business/vo/guild/UserHallEnergyLevelDataVo.java @@ -0,0 +1,72 @@ +package com.accompany.business.vo.guild; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class UserHallEnergyLevelDataVo { + + @ApiModelProperty("序号") + private Integer seqNO; + private Long uid; + @ApiModelProperty("用户昵称") + private String nick; + @ApiModelProperty("ID") + private Long erbanNo; + @ApiModelProperty("公会长ID") + private Long hallErbanNo; + @ApiModelProperty("公会ID") + private Integer agencyId; + @ApiModelProperty("主播数") + private Integer hallMemberCount; + @ApiModelProperty("公会名称") + private String agencyName; + @ApiModelProperty("公会国家") + private String agencyAbbr; + @ApiModelProperty("能量等级") + private Integer energyLevel; + @ApiModelProperty("能量点") + private Double energyValue; + @ApiModelProperty("实时钻石余额") + private Double diamondNum = 0D; + @ApiModelProperty("主播薪资") + private Double anchorSalary = 0D; + @ApiModelProperty("公会长薪资") + private BigDecimal hallSalary = BigDecimal.valueOf(0); + @ApiModelProperty("时长薪资") + private Double validTimeSalary = 0D; + @ApiModelProperty("钻石薪资") + private Double diamondSalary = 0D; + @ApiModelProperty("公会总薪资") + private Double totalHallSalary; + @ApiModelProperty("cp能量点") + private Double cpEnergyValue = 0D; + @ApiModelProperty("cp能量等级") + private Integer cpEnergyLevel = 0; + @ApiModelProperty("cp能量值薪资") + private Double cpSalary = 0D; + @ApiModelProperty("账户国家") + private String abbr; + @ApiModelProperty("有效天数") + private Integer micValidDay; + private Long micTime; + private Integer hallId; + private Date signTime; + private Byte region; + + @ApiModelProperty("下一档能量值") + private BigDecimal nextEnergValue = BigDecimal.valueOf(0); + @ApiModelProperty("当前能量等级档位") + private BigDecimal energyPosition; + @ApiModelProperty("当前公会能量等级档位") + private String currentLevelName; + private String nextLevelName; + /** + * 公会长薪资比例 + */ + private Double salaryRate; + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencyMonthSettleDetailMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencyMonthSettleDetailMapper.java new file mode 100644 index 000000000..b4f61b99a --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencyMonthSettleDetailMapper.java @@ -0,0 +1,24 @@ +package com.accompany.business.mybatismapper.guild; + +import com.accompany.business.model.guild.AgencyMonthSettleDetail; +import com.accompany.business.vo.guild.AgencyMonthSettleDetailVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 公会月政策结算明细表 Mapper 接口 + * + * @author + * @since 2024-07-01 + */ +public interface AgencyMonthSettleDetailMapper extends BaseMapper { + + AgencyMonthSettleDetail totalSalaryData(@Param("beginDate") Date beginDate, @Param("guildId") Long guildId); + List userSalaryData(@Param("beginDate") Date beginDate, @Param("guildId") Long diamondNum); + + Page agencySettleVo(@Param("page") Page page, @Param("dateCycle") String dateCycle, @Param("region") Byte region, @Param("guildId") Long guildId); +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencySalaryInfoMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencySalaryInfoMapper.java new file mode 100644 index 000000000..493f8b8b8 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencySalaryInfoMapper.java @@ -0,0 +1,14 @@ +package com.accompany.business.mybatismapper.guild; + +import com.accompany.business.model.guild.AgencySalaryInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * SS公会活动成员奖励信息表 Mapper 接口 + * + * @author + * @since 2024-01-26 + */ +public interface AgencySalaryInfoMapper extends BaseMapper { + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencyUserMonthSettleDetailMapper.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencyUserMonthSettleDetailMapper.java new file mode 100644 index 000000000..3fd3b2f6d --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/mybatismapper/guild/AgencyUserMonthSettleDetailMapper.java @@ -0,0 +1,28 @@ +package com.accompany.business.mybatismapper.guild; + +import com.accompany.business.model.guild.AgencyUserMonthSettleDetail; +import com.accompany.business.vo.guild.AgencyOpenAdminVo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 公会主播月政策结算明细表 Mapper 接口 + *

+ * + * @author wxf + * @since 2024-07-30 + */ +@Mapper +public interface AgencyUserMonthSettleDetailMapper extends BaseMapper { + List agencySettleDetailVo(@Param("date") String date, @Param("uid") Long uid, @Param("hallId") Long hallId); + + Page excellentAnchorList(@Param("page") Page page, @Param("hallId") Long hallId, @Param("dateCycle") String dateCycle, @Param("excellentAnchorDiamondNum") Long excellentAnchorDiamondNum); + + Page excellentAnchorDetailList(@Param("page") Page page, @Param("hallId") Long hallId, @Param("dateCycle") String dateCycle, @Param("excellentAnchorDiamondNum") Long excellentAnchorDiamondNum); + +} 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 370d2a013..1a89c52c6 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 @@ -1,11 +1,13 @@ package com.accompany.business.mybatismapper.guild; import com.accompany.business.model.guild.GuildMemberDiamondStatistics; +import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; import java.util.Date; +import java.util.List; public interface GuildMemberDiamondStatisticsMapper extends BaseMapper { @@ -13,4 +15,12 @@ public interface GuildMemberDiamondStatisticsMapper extends BaseMapper agencySettle(@Param("ppartitionId") Integer ppartitionId, + @Param("cycleDate") Date cycleDate, @Param("guildId") Long guildId); + + List agencySettleDetail(@Param("ppartitionId") Integer ppartitionId, + @Param("cycleDate") Date cycleDate, + @Param("guildId") Long guildId, + @Param("uid") Long uid); } \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleDetailService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleDetailService.java new file mode 100644 index 000000000..ce20a9c00 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleDetailService.java @@ -0,0 +1,26 @@ +package com.accompany.business.service.guild; + +import com.accompany.business.model.guild.AgencyMonthSettleDetail; +import com.accompany.business.param.BasePageParams; +import com.accompany.business.vo.guild.AgencyMonthSettleDetailVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Date; +import java.util.List; + +/** + * 公会月政策结算明细表 服务类 + * + * @author + * @since 2024-07-01 + */ +public interface AgencyMonthSettleDetailService extends IService { + + AgencyMonthSettleDetail totalSalaryData(Date beginDate, Long hallId); + List userSalaryData(Date beginDate, Long hallId); + + List listPage(Long hallId, Integer page, Integer pageSize); + + Page agencySettleVo(BasePageParams basePageParams, String dateCycle, Long hallId); +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleDetailServiceImpl.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleDetailServiceImpl.java new file mode 100644 index 000000000..0713a6ab1 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleDetailServiceImpl.java @@ -0,0 +1,54 @@ +package com.accompany.business.service.guild; + +import com.accompany.business.model.guild.AgencyMonthSettleDetail; +import com.accompany.business.mybatismapper.guild.AgencyMonthSettleDetailMapper; +import com.accompany.business.param.BasePageParams; +import com.accompany.business.vo.guild.AgencyMonthSettleDetailVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * 公会月政策结算明细表 服务实现类 + * + * @author + * @since 2024-07-01 + */ +@Service +public class AgencyMonthSettleDetailServiceImpl extends ServiceImpl implements AgencyMonthSettleDetailService { + + + + @Override + public AgencyMonthSettleDetail totalSalaryData(Date beginDate, Long hallId) { + return baseMapper.totalSalaryData(beginDate, hallId); + } + + @Override + public List userSalaryData(Date beginDate, Long hallId) { + return baseMapper.userSalaryData(beginDate, hallId); + } + + @Override + public List listPage(Long hallId, Integer page, Integer pageSize) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(AgencyMonthSettleDetail::getGuildId, hallId); + wrapper.orderByDesc(AgencyMonthSettleDetail::getStatDate); + IPage agencyMonthSettleDetailIPage = baseMapper.selectPage(new Page<>(page, pageSize, false), wrapper); + return agencyMonthSettleDetailIPage.getRecords(); + } + + @Override + public Page agencySettleVo(BasePageParams basePageParams, String dateCycle, Long hallId) { + + Page page = new Page<>(basePageParams.getPageNo(),basePageParams.getPageSize()); + + return this.baseMapper.agencySettleVo(page,dateCycle,basePageParams.getRegion(),hallId); + } +} 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 new file mode 100644 index 000000000..d8fb13a4e --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyMonthSettleService.java @@ -0,0 +1,95 @@ +package com.accompany.business.service.guild; + +import cn.hutool.core.date.DateUtil; +import com.accompany.business.model.guild.AgencyMonthSettleDetail; +import com.accompany.business.model.guild.AgencyUserMonthSettleDetail; +import com.accompany.business.service.user.UsersService; +import com.accompany.business.vo.guild.UserHallEnergyLevelDataVo; +import com.accompany.core.service.common.JedisService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.*; + +import static com.accompany.business.constant.guild.GuildUsdOperateTypeEnum.GUILD_USD_SETTLEMENT; + + +/** + * 公会月政策结算表 服务实现类 + * + * @author + * @since 2024-02-20 + */ +@Slf4j +@Service +public class AgencyMonthSettleService { + + @Autowired + private AgencyMonthSettleDetailService agencyMonthSettleDetailService; + @Autowired + private AgencyUserMonthSettleDetailService agencyUserMonthSettleDetailService; + @Autowired + private GuildMemberDiamondStatisticsService guildMemberDiamondStatisticsService; + @Autowired + private GuildUsdOperateService guildUsdOperateService; + + + public void monthRankTaskAll(Date beginDate, Date endDate) { + Integer partitionId = null; + try { + List userHallEnergyLevelDataVos = guildMemberDiamondStatisticsService.agencySettle(partitionId, beginDate, null); + if (CollectionUtils.isEmpty(userHallEnergyLevelDataVos)) { + return; + } + List agencyMonthSettleDetails = new ArrayList<>(); + for (UserHallEnergyLevelDataVo dataVo : userHallEnergyLevelDataVos) { + AgencyMonthSettleDetail agencyMonthSettleDetail = AgencyMonthSettleDetail.builder().uid(dataVo.getUid()).guildId(dataVo.getHallId()) + .diamondLevel(dataVo.getEnergyLevel()).diamondNum(BigDecimal.valueOf(dataVo.getEnergyValue())).hallMemberCount(dataVo.getHallMemberCount()) + .hallSalary(dataVo.getHallSalary()).salaryRate(dataVo.getSalaryRate()).createTime(new Date()).statDate(beginDate).endDate(endDate).build(); + agencyMonthSettleDetails.add(agencyMonthSettleDetail); + } + agencyMonthSettleDetailService.saveBatch(agencyMonthSettleDetails); + for (UserHallEnergyLevelDataVo dataVo : userHallEnergyLevelDataVos) { + if (dataVo.getHallSalary().doubleValue() == 0) { + continue; + } + guildUsdOperateService.operateUsd(dataVo.getUid(), null, GUILD_USD_SETTLEMENT.getType(), dataVo.getHallSalary()); + } + } catch (Exception e) { + log.error("AgencyMonthSettleServiceImpl.monthRankTaskAll, region:{} e:{}", partitionId, e); + } finally { + } + } + + public void monthRankTaskDetail(Date beginDate, Date endDate) { + Integer partitionId = null; + try { + List userHallEnergyLevelDataVos = guildMemberDiamondStatisticsService.agencySettleDetail(partitionId, beginDate, null, null); + if (CollectionUtils.isEmpty(userHallEnergyLevelDataVos)) { + return; + } + List agencyUserMonthSettleDetails = new ArrayList<>(); + for (UserHallEnergyLevelDataVo dataVo : userHallEnergyLevelDataVos) { + AgencyUserMonthSettleDetail agencyMonthSettleDetail = AgencyUserMonthSettleDetail.builder().uid(dataVo.getUid()).guildId(dataVo.getHallId()) + .diamondNum(BigDecimal.valueOf(dataVo.getEnergyValue())).createTime(new Date()).statDate(beginDate).endDate(endDate).build(); + agencyUserMonthSettleDetails.add(agencyMonthSettleDetail); + } + if (CollectionUtils.isEmpty(agencyUserMonthSettleDetails)) { + log.info("empty agencyUserMonthSettleDetails"); + return; + } + boolean saveBatch = agencyUserMonthSettleDetailService.saveBatch(agencyUserMonthSettleDetails); + if (!saveBatch) { + log.info("empty agencyUserMonthSettleDetails"); + return; + } + } catch (Exception e) { + log.error("AgencyMonthSettleServiceImpl.monthRankTaskAll, region:{} e:{}", partitionId, e); + } finally { + } + } +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencySalaryInfoService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencySalaryInfoService.java new file mode 100644 index 000000000..7f0a754a1 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencySalaryInfoService.java @@ -0,0 +1,24 @@ +package com.accompany.business.service.guild; + +import com.accompany.business.model.guild.AgencySalaryInfo; +import com.accompany.business.vo.guild.AgencySalaryInfoVo; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * SS公会活动成员奖励信息表 服务类 + * + * @author + * @since 2024-01-26 + */ +public interface AgencySalaryInfoService extends IService { + + + AgencySalaryInfo getByLevel(Integer level); + + + AgencySalaryInfoVo calByValue(Double energyValue, List list); + + +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencySalaryInfoServiceImpl.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencySalaryInfoServiceImpl.java new file mode 100644 index 000000000..3b3f4b9c8 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencySalaryInfoServiceImpl.java @@ -0,0 +1,57 @@ +package com.accompany.business.service.guild; + +import com.accompany.business.model.guild.AgencySalaryInfo; +import com.accompany.business.mybatismapper.guild.AgencySalaryInfoMapper; +import com.accompany.business.vo.guild.AgencySalaryInfoVo; +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.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 公会活动成员奖励信息表 服务实现类 + * + * @author + * @since 2024-01-26 + */ +@Service +public class AgencySalaryInfoServiceImpl extends ServiceImpl implements AgencySalaryInfoService { + + + @Override + public AgencySalaryInfo getByLevel(Integer level) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(AgencySalaryInfo::getLevelId, level) + .orderByAsc(AgencySalaryInfo::getStartValue); + return getOne(wrapper); + } + + @Override + public AgencySalaryInfoVo calByValue(Double energyValue, List list) { + if (CollectionUtils.isEmpty(list)) { + return null; + } + int size = list.size(); + AgencySalaryInfoVo result = null; + for (int i = 0; i < size; i++) { + AgencySalaryInfo agencySalaryInfo = list.get(i); + if (agencySalaryInfo.getStartValue() <= energyValue && agencySalaryInfo.getEndValue() > energyValue) { + result = new AgencySalaryInfoVo(); + BeanUtils.copyProperties(agencySalaryInfo, result); + if ((i + 1) < size) { + AgencySalaryInfo salaryInfo = list.get(i + 1); + if (salaryInfo != null) { + result.setNextLevelName(salaryInfo.getLevelName()); + } else { + result.setEndValue(0L); + } + } + } + } + return result; + } +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyUserMonthSettleDetailService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyUserMonthSettleDetailService.java new file mode 100644 index 000000000..3f9d0462e --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyUserMonthSettleDetailService.java @@ -0,0 +1,24 @@ +package com.accompany.business.service.guild; + +import com.accompany.business.model.guild.AgencyUserMonthSettleDetail; +import com.accompany.business.vo.guild.AgencyOpenAdminVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 公会主播月政策结算明细表 服务类 + *

+ * + * @author wxf + * @since 2024-07-30 + */ +public interface AgencyUserMonthSettleDetailService extends IService { + List agencySettleDetailVo(String date, Long uid, Long hallId); + + Page excellentAnchorList(Page page, Long hallId, String dateCycle, Long excellentAnchorDiamondNum); + + Page excellentAnchorDetailList(Page page, Long hallId, String dateCycle, Long excellentAnchorDiamondNum); +} diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyUserMonthSettleDetailServiceImpl.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyUserMonthSettleDetailServiceImpl.java new file mode 100644 index 000000000..da2156c71 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/AgencyUserMonthSettleDetailServiceImpl.java @@ -0,0 +1,37 @@ +package com.accompany.business.service.guild; + +import com.accompany.business.model.guild.AgencyUserMonthSettleDetail; +import com.accompany.business.mybatismapper.guild.AgencyUserMonthSettleDetailMapper; +import com.accompany.business.vo.guild.AgencyOpenAdminVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 公会主播月政策结算明细表 服务实现类 + *

+ * + * @author wxf + * @since 2024-07-30 + */ +@Service +public class AgencyUserMonthSettleDetailServiceImpl extends ServiceImpl implements AgencyUserMonthSettleDetailService { + + @Override + public List agencySettleDetailVo(String date, Long uid, Long hallId) { + return this.baseMapper.agencySettleDetailVo(date,uid,hallId); + } + + @Override + public Page excellentAnchorList(Page page, Long hallId, String dateCycle, Long excellentAnchorDiamondNum) { + return this.baseMapper.excellentAnchorList(page,hallId,dateCycle,excellentAnchorDiamondNum); + } + + @Override + public Page excellentAnchorDetailList(Page page, Long hallId, String dateCycle, Long excellentAnchorDiamondNum) { + return this.baseMapper.excellentAnchorDetailList(page,hallId,dateCycle,excellentAnchorDiamondNum); + } +} 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 c3c358b6e..ce5e0724b 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,17 +1,31 @@ package com.accompany.business.service.guild; +import com.accompany.business.model.guild.AgencySalaryInfo; 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.vo.guild.AgencySalaryInfoVo; +import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsVo; +import com.accompany.business.vo.guild.UserHallEnergyLevelDataVo; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; +@Slf4j @Service public class GuildMemberDiamondStatisticsService extends ServiceImpl { + @Autowired + private AgencySalaryInfoService agencySalaryInfoService; + public void update(String cycleDate, GuildMember guildMember, double diamond){ Date now = new Date(); this.baseMapper.updateDiamondStatistics(cycleDate, guildMember.getGuildId(), guildMember.getUid(), diamond, now); @@ -22,4 +36,54 @@ public class GuildMemberDiamondStatisticsService extends ServiceImpl agencySettle(Integer partitionId, Date cycleDate, Long guildId) { + List resultList = new ArrayList<>(); + List guildMemberDiamondStatistics = baseMapper.agencySettle(partitionId, cycleDate, guildId); + if (CollectionUtils.isEmpty(guildMemberDiamondStatistics)) { + return resultList; + } + List list = agencySalaryInfoService.list(); + if (CollectionUtils.isEmpty(list)) { + log.info("empty SsAgencyCoinsReward"); + return resultList; + } + for (GuildMemberDiamondStatisticsVo levelDay : guildMemberDiamondStatistics) { + UserHallEnergyLevelDataVo vo = new UserHallEnergyLevelDataVo(); + Long uid = levelDay.getUid(); + vo.setUid(uid); + vo.setHallId(levelDay.getGuildId()); + vo.setEnergyValue(levelDay.getDiamondNum()); + AgencySalaryInfoVo ssAgencyCoinsReward = agencySalaryInfoService.calByValue(levelDay.getDiamondNum(), list); + if (ssAgencyCoinsReward != null) { + vo.setEnergyLevel(ssAgencyCoinsReward.getLevelId()); + vo.setHallSalary(BigDecimal.valueOf(levelDay.getDiamondNum() * ssAgencyCoinsReward.getSalaryRate()) + .divide(BigDecimal.valueOf(ssAgencyCoinsReward.getUsbToDiamond()), 2, BigDecimal.ROUND_HALF_UP)); + vo.setNextEnergValue(BigDecimal.valueOf(ssAgencyCoinsReward.getEndValue())); + vo.setEnergyPosition(BigDecimal.valueOf(ssAgencyCoinsReward.getStartValue())); + vo.setCurrentLevelName(ssAgencyCoinsReward.getLevelName()); + vo.setSalaryRate(ssAgencyCoinsReward.getSalaryRate()); + vo.setNextLevelName(ssAgencyCoinsReward.getNextLevelName()); + vo.setHallMemberCount(levelDay.getHallMemberCount()); + } + resultList.add(vo); + } + return resultList; + } + + public List agencySettleDetail(Integer partitionId, Date beginDate, Long guildId, Long uid) { + List resultList = new ArrayList<>(); + List statisticsVos = baseMapper.agencySettleDetail(partitionId, beginDate, guildId, uid); + if (CollectionUtils.isEmpty(statisticsVos)) { + return resultList; + } + for (GuildMemberDiamondStatisticsVo levelDay : statisticsVos) { + UserHallEnergyLevelDataVo vo = new UserHallEnergyLevelDataVo(); + Long hallUid = levelDay.getUid(); + vo.setUid(hallUid); + vo.setHallId(levelDay.getGuildId()); + vo.setEnergyValue(levelDay.getDiamondNum()); + resultList.add(vo); + } + return resultList; + } } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildService.java index abf1d7c88..e85b5af8b 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/guild/GuildService.java @@ -3,6 +3,7 @@ package com.accompany.business.service.guild; import com.accompany.business.model.guild.Guild; import com.accompany.business.mybatismapper.guild.GuildMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.swagger.models.auth.In; import org.springframework.stereotype.Service; import java.util.List; diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencyMonthSettleDetailMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencyMonthSettleDetailMapper.xml new file mode 100644 index 000000000..a73334163 --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencyMonthSettleDetailMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + \ No newline at end of file diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencySalaryInfoMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencySalaryInfoMapper.xml new file mode 100644 index 000000000..280240c3d --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencySalaryInfoMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencyUserMonthSettleDetailMapper.xml b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencyUserMonthSettleDetailMapper.xml new file mode 100644 index 000000000..3d680289b --- /dev/null +++ b/accompany-business/accompany-business-service/src/main/resources/accompany/sqlmappers/AgencyUserMonthSettleDetailMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + 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 1074e520b..5ebc3abd5 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 @@ -15,4 +15,41 @@ where cycle_date = #{cycleDate} and guild_id = #{guildId} + + + \ No newline at end of file diff --git a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/guild/GuildTestController.java b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/guild/GuildTestController.java index d84a35a44..f14d155c2 100644 --- a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/guild/GuildTestController.java +++ b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/guild/GuildTestController.java @@ -1,5 +1,7 @@ package com.accompany.business.controller.guild; +import cn.hutool.core.date.DateUtil; +import com.accompany.business.service.guild.AgencyMonthSettleService; import com.accompany.business.service.guild.GuildMessageService; import com.accompany.common.annotation.Authorization; import com.accompany.common.result.BusiResult; @@ -18,6 +20,9 @@ public class GuildTestController { @Autowired private GuildMessageService guildMessageService; + @Autowired + private AgencyMonthSettleService agencyMonthSettleService; + @ApiOperation("测试小秘书消息") @Authorization @@ -28,4 +33,22 @@ public class GuildTestController { return BusiResult.success(); } + @RequestMapping(value = "monthSettleTaskAll") + @Authorization + public void monthSettleTaskAll(String beginDate, String endDate, String pwd) { + if (!"fdsfast43532453".equals(pwd)) { + return; + } + agencyMonthSettleService.monthRankTaskAll(DateUtil.parseDateTime(beginDate), DateUtil.parseDate(endDate)); + } + + @RequestMapping(value = "monthRankTaskDetailAll") + @Authorization + public void monthRankTaskDetail_(String beginDate, String endDate, String pwd) throws Exception { + if (!"fdsfast43532453".equals(pwd)) { + return; + } + agencyMonthSettleService.monthRankTaskDetail(DateUtil.parseDateTime(beginDate), DateUtil.parseDate(endDate)); + } + } 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 new file mode 100644 index 000000000..56695561e --- /dev/null +++ b/accompany-scheduler/accompany-scheduler-service/src/main/java/com/accompany/scheduler/task/guild/GuildSettleTask.java @@ -0,0 +1,51 @@ +package com.accompany.scheduler.task.guild; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.accompany.business.service.guild.AgencyMonthSettleService; +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.util.Date; + +@Component +@Slf4j +public class GuildSettleTask { + @Autowired + private AgencyMonthSettleService agencyMonthSettleService; + + /** + * 每月16号凌晨0点10分执行 + */ + @Scheduled(cron = "0 10 0 16 * ?") + public void monthRankTaskAll1() { + Date date = new Date(); + DateTime beginTime = DateUtil.beginOfMonth(date); + DateTime endTime = DateUtil.beginOfDay(date); + log.info("=-=monthRankTaskAll1=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime) , DateUtil.formatDateTime(endTime)); + agencyMonthSettleService.monthRankTaskAll(beginTime, endTime); + log.info("=-=monthRankTaskAll1=-= end"); + log.info("=-=monthRankTaskDetail1=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime) , DateUtil.formatDateTime(endTime)); + agencyMonthSettleService.monthRankTaskDetail(beginTime, endTime); + log.info("=-=monthRankTaskDetail1=-= end"); + } + + /** + * 每月1号凌晨0点10分执行 + */ + @Scheduled(cron = "0 10 0 1 * ?") + public void monthRankTaskAll2() { + Date date = new Date(); + 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(beginTime, endTime); + log.info("=-=monthRankTaskAll2=-= end", DateUtil.formatDateTime(date)); + log.info("=-=monthRankTaskDetail2=-=:beginTime:{},endTime:{}", DateUtil.formatDateTime(beginTime) , DateUtil.formatDateTime(endTime)); + agencyMonthSettleService.monthRankTaskDetail(beginTime, endTime); + log.info("=-=monthRankTaskDetail2=-= end"); + } +}