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");
+ }
+}