公会-结算
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package com.accompany.admin.mapper.api;
|
||||
|
||||
import com.accompany.admin.service.api.BiamondNeedSendVo;
|
||||
import com.accompany.business.model.guild.AgencyMonthSettleDetail;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
@@ -0,0 +1,51 @@
|
||||
package com.accompany.admin.service.guild;
|
||||
|
||||
import com.accompany.business.model.guild.GuildDiamondSalary;
|
||||
import com.accompany.business.service.guild.GuildDiamondSalaryService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class GuildDiamondSalaryAdminService {
|
||||
|
||||
@Autowired
|
||||
private GuildDiamondSalaryService service;
|
||||
|
||||
public List<GuildDiamondSalary> list(int partitionId) {
|
||||
return service.lambdaQuery()
|
||||
.eq(GuildDiamondSalary::getPartitionId, partitionId)
|
||||
.list();
|
||||
}
|
||||
|
||||
public void add(BigDecimal diamondNum, int partitionId, String level, BigDecimal baseSalaryRatio,
|
||||
Integer activeMemberCount, BigDecimal activeMemberBonusRatio) {
|
||||
GuildDiamondSalary po = new GuildDiamondSalary();
|
||||
po.setDiamondNum(diamondNum);
|
||||
po.setPartitionId(partitionId);
|
||||
po.setLevel(level);
|
||||
|
||||
GuildDiamondSalary db = service.lambdaQuery()
|
||||
.eq(GuildDiamondSalary::getDiamondNum, diamondNum)
|
||||
.one();
|
||||
if (null != db){
|
||||
po.setLevel(level);
|
||||
po.setBaseSalaryRatio(baseSalaryRatio);
|
||||
po.setActiveMemberCount(activeMemberCount);
|
||||
po.setActiveMemberBonusRatio(activeMemberBonusRatio);
|
||||
service.updateById(po);
|
||||
return;
|
||||
}
|
||||
|
||||
service.save(po);
|
||||
}
|
||||
|
||||
public void delete(BigDecimal diamondNum, int partitionId) {
|
||||
service.lambdaUpdate()
|
||||
.eq(GuildDiamondSalary::getDiamondNum, diamondNum)
|
||||
.eq(GuildDiamondSalary::getPartitionId, partitionId)
|
||||
.remove();
|
||||
}
|
||||
}
|
@@ -1,6 +1,5 @@
|
||||
package com.accompany.admin.service.guild;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.constant.guild.GuildConstant;
|
||||
import com.accompany.business.constant.guild.GuildUsdOperateTypeEnum;
|
||||
import com.accompany.business.model.UserPurse;
|
||||
@@ -20,7 +19,6 @@ import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.PartitionInfo;
|
||||
import com.accompany.core.model.RegionInfo;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
import com.accompany.core.service.region.RegionInfoService;
|
||||
@@ -58,7 +56,7 @@ public class GuildUsdBillRecordAdminService {
|
||||
private UserPurseService userPurseService;
|
||||
|
||||
@Autowired
|
||||
private AgencyMonthSettleService agencyMonthSettleService;
|
||||
private GuildSettleService guildSettleService;
|
||||
|
||||
@Autowired
|
||||
private GuildMemberDiamondStatisticsService guildMemberDiamondStatisticsService;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.accompany.admin.controller.guild;
|
||||
|
||||
import com.accompany.business.param.BasePageParams;
|
||||
import com.accompany.business.service.guild.AgencyMonthSettleService;
|
||||
import com.accompany.business.service.guild.GuildSettleService;
|
||||
import com.accompany.business.vo.guild.AgencyMonthSettleDetailVo;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.vo.BaseResponseVO;
|
||||
@@ -27,12 +27,12 @@ import java.util.List;
|
||||
public class AgencyMonthSettleController {
|
||||
|
||||
@Autowired
|
||||
private AgencyMonthSettleService agencyMonthSettleService;
|
||||
private GuildSettleService guildSettleService;
|
||||
|
||||
@ApiOperation("列表")
|
||||
@GetMapping("/list")
|
||||
public BaseResponseVO<Page<AgencyMonthSettleDetailVo>> list(BasePageParams basePageParams, Integer agencyId, Long agencyOwnerId) throws Exception {
|
||||
Page<AgencyMonthSettleDetailVo> iPage = agencyMonthSettleService.listPage(basePageParams,agencyId,agencyOwnerId);
|
||||
Page<AgencyMonthSettleDetailVo> iPage = guildSettleService.listPage(basePageParams,agencyId,agencyOwnerId);
|
||||
return new BaseResponseVO<>(BusiStatus.SUCCESS,iPage);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class AgencyMonthSettleController {
|
||||
String excelName = URLEncoder.encode("公会钻石流水统计", "UTF-8");
|
||||
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
|
||||
basePageParams.setPageSize(5000);
|
||||
Page<AgencyMonthSettleDetailVo> iPage = agencyMonthSettleService.listPage(basePageParams,agencyId,agencyOwnerId);
|
||||
Page<AgencyMonthSettleDetailVo> iPage = guildSettleService.listPage(basePageParams,agencyId,agencyOwnerId);
|
||||
List<AgencyMonthSettleDetailVo> agencyMonthSettleDetailVos = iPage.getRecords();
|
||||
EasyExcel.write(response.getOutputStream(), AgencyMonthSettleDetailVo.class).sheet("公会钻石流水统计").doWrite(agencyMonthSettleDetailVos);
|
||||
}
|
||||
|
@@ -0,0 +1,76 @@
|
||||
package com.accompany.admin.controller.guild;
|
||||
|
||||
import com.accompany.admin.service.guild.GuildDiamondSalaryAdminService;
|
||||
import com.accompany.business.model.guild.GuildDiamondSalary;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = "公会钻石工资")
|
||||
@RestController
|
||||
@RequestMapping("/admin/guild/salary")
|
||||
public class GuildDiamondSalaryAdminController {
|
||||
|
||||
@Autowired
|
||||
private GuildDiamondSalaryAdminService service;
|
||||
|
||||
@ApiOperation("创建")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "diamondNum", value = "钻石数", required = true),
|
||||
@ApiImplicitParam(name = "partitionId", value = "partitionId", required = true),
|
||||
@ApiImplicitParam(name = "level", value = "等级", required = true),
|
||||
@ApiImplicitParam(name = "baseSalaryRatio", value = "基础工资比例", required = true),
|
||||
@ApiImplicitParam(name = "activeMemberCount", value = "活跃主播人数", required = true),
|
||||
@ApiImplicitParam(name = "activeMemberBonusRatio", value = "活跃主播激励工资比例", required = true)
|
||||
})
|
||||
@PostMapping("/add")
|
||||
public BusiResult<Void> add(BigDecimal diamondNum, int partitionId, String level,
|
||||
BigDecimal baseSalaryRatio, int activeMemberCount, BigDecimal activeMemberBonusRatio){
|
||||
if (null == diamondNum || BigDecimal.ZERO.compareTo(diamondNum) >= 0
|
||||
|| !StringUtils.hasText(level)
|
||||
|| null == baseSalaryRatio || BigDecimal.ZERO.compareTo(baseSalaryRatio)>= 0
|
||||
|| null == activeMemberBonusRatio || BigDecimal.ZERO.compareTo(activeMemberBonusRatio)>= 0){
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
service.add(diamondNum, partitionId, level, baseSalaryRatio, activeMemberCount, activeMemberBonusRatio);
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
@ApiOperation("删除")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "diamondNum", value = "diamondNum", required = true),
|
||||
@ApiImplicitParam(name = "partitionId", value = "partitionId", required = true),
|
||||
})
|
||||
@PostMapping("/delete")
|
||||
public BusiResult<Void> delete(BigDecimal diamondNum, int partitionId){
|
||||
if (null == diamondNum){
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
service.delete(diamondNum, partitionId);
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
@ApiOperation("列表")
|
||||
@GetMapping("/list")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "partitionId", required = true),
|
||||
})
|
||||
public BusiResult<List<GuildDiamondSalary>> list(int partitionId){
|
||||
List<GuildDiamondSalary> list = service.list(partitionId);
|
||||
return BusiResult.success(list);
|
||||
}
|
||||
|
||||
}
|
@@ -1,74 +0,0 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 公会主播月政策结算明细表
|
||||
* </p>
|
||||
*
|
||||
* @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 String statDate;
|
||||
|
||||
/**
|
||||
* 结算结束时间
|
||||
*/
|
||||
@TableField("end_date")
|
||||
private String 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;
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,16 @@
|
||||
package com.accompany.business.model.guild;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class GuildDiamondSalary {
|
||||
private BigDecimal diamondNum;
|
||||
private Integer partitionId;
|
||||
private String level;
|
||||
private BigDecimal baseSalaryRatio;
|
||||
private Integer activeMemberCount;
|
||||
private BigDecimal activeMemberBonusRatio;
|
||||
|
||||
}
|
@@ -21,9 +21,7 @@ import java.util.Date;
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AgencyMonthSettleDetail implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
public class GuildSettleRecord implements Serializable {
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
@@ -35,31 +33,34 @@ public class AgencyMonthSettleDetail implements Serializable {
|
||||
* 结算结束时间
|
||||
*/
|
||||
private String endDate;
|
||||
private Long uid;
|
||||
/**
|
||||
* 所属厅id
|
||||
*/
|
||||
private Integer guildId;
|
||||
private Integer partitionId;
|
||||
private Long guildOwnerUid;
|
||||
|
||||
private String diamondLevel;
|
||||
private Integer hallMemberCount;
|
||||
private Integer memberCount;
|
||||
private Integer activeMemberCount;
|
||||
/**
|
||||
* 能量值
|
||||
*/
|
||||
private BigDecimal diamondNum;
|
||||
/**
|
||||
* 公会长工资
|
||||
*/
|
||||
private BigDecimal hallSalary;
|
||||
private String salaryLevel;
|
||||
/**
|
||||
* 公会长薪资比例
|
||||
*/
|
||||
private Double salaryRate;
|
||||
/**
|
||||
* 区服
|
||||
*/
|
||||
//private Byte region;
|
||||
private BigDecimal baseSalaryRatio;
|
||||
/**
|
||||
* 公会长工资
|
||||
*/
|
||||
private BigDecimal baseSalary;
|
||||
private BigDecimal activeMemberBonusRatio;
|
||||
private BigDecimal activeMemberBonus;
|
||||
private BigDecimal totalSalary;
|
||||
|
||||
private String memberRecord;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
@@ -6,6 +6,7 @@ import lombok.Data;
|
||||
@Data
|
||||
public class GuildMemberDiamondStatisticsVo extends GuildMemberDiamondStatistics {
|
||||
private Integer hallMemberCount;
|
||||
private Integer activeHallMemberCount;
|
||||
private Long guildMemberId;
|
||||
|
||||
}
|
||||
|
@@ -1,28 +0,0 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 公会主播月政策结算明细表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author wxf
|
||||
* @since 2024-07-30
|
||||
*/
|
||||
@Mapper
|
||||
public interface AgencyUserMonthSettleDetailMapper extends BaseMapper<AgencyUserMonthSettleDetail> {
|
||||
List<AgencyUserMonthSettleDetail> agencySettleDetailVo(@Param("date") String date, @Param("uid") Long uid, @Param("hallId") Integer hallId);
|
||||
|
||||
Page<AgencyOpenAdminVo> excellentAnchorList(@Param("page") Page<AgencyOpenAdminVo> page, @Param("hallId") Long hallId, @Param("dateCycle") String dateCycle, @Param("excellentAnchorDiamondNum") Long excellentAnchorDiamondNum);
|
||||
|
||||
Page<AgencyOpenAdminVo> excellentAnchorDetailList(@Param("page") Page<AgencyOpenAdminVo> page, @Param("hallId") Long hallId, @Param("dateCycle") String dateCycle, @Param("excellentAnchorDiamondNum") Long excellentAnchorDiamondNum);
|
||||
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
package com.accompany.business.mybatismapper.guild;
|
||||
|
||||
import com.accompany.business.model.guild.GuildDiamondSalary;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
public interface GuildDiamondSalaryMapper extends BaseMapper<GuildDiamondSalary> {
|
||||
|
||||
|
||||
}
|
@@ -26,13 +26,10 @@ public interface GuildMemberDiamondStatisticsMapper extends BaseMapper<GuildMemb
|
||||
List<GuildMemberIncomeVo> listMemberTotalDiamondBetweenDate(@Param("startDate")String startDate, @Param("endDate") String endDate,
|
||||
@Param("guildId")Integer guildId, @Param("guildMemberIds")List<Long> guildMemberIds);
|
||||
|
||||
List<GuildMemberDiamondStatisticsVo> agencySettle(@Param("partitionId") Integer partitionId,
|
||||
@Param("cycleDate") String cycleDate, @Param("guildId") Integer guildId);
|
||||
List<GuildMemberDiamondStatisticsVo> listGuildMemberDiamondStat(@Param("partitionId") Integer partitionId,
|
||||
@Param("cycleDate") String cycleDate,
|
||||
@Param("guildId") Integer guildId);
|
||||
|
||||
List<GuildMemberDiamondStatisticsVo> agencySettleDetail(@Param("partitionId") Integer partitionId,
|
||||
@Param("cycleDate") String cycleDate,
|
||||
@Param("guildId") Integer guildId,
|
||||
@Param("uid") Long uid);
|
||||
List<AgencyMonthSettleDetailVo> getAgencyOwnerSettleDate(@Param("partitionId") Integer partitionId, @Param("regionId") Integer regionId,
|
||||
@Param("cycleDate") String cycleDate, @Param("guildId") Integer guildId);
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.accompany.business.mybatismapper.guild;
|
||||
|
||||
import com.accompany.business.model.guild.AgencyMonthSettleDetail;
|
||||
import com.accompany.business.model.guild.GuildSettleRecord;
|
||||
import com.accompany.business.vo.guild.AgencyMonthSettleDetailVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -15,10 +15,10 @@ import java.util.List;
|
||||
* @author
|
||||
* @since 2024-07-01
|
||||
*/
|
||||
public interface AgencyMonthSettleDetailMapper extends BaseMapper<AgencyMonthSettleDetail> {
|
||||
public interface GuildSettleRecordMapper extends BaseMapper<GuildSettleRecord> {
|
||||
|
||||
AgencyMonthSettleDetail totalSalaryData(@Param("beginDate") Date beginDate, @Param("guildId") Long guildId);
|
||||
List<AgencyMonthSettleDetail> userSalaryData(@Param("beginDate") Date beginDate, @Param("guildId") Long diamondNum);
|
||||
GuildSettleRecord totalSalaryData(@Param("beginDate") Date beginDate, @Param("guildId") Long guildId);
|
||||
List<GuildSettleRecord> userSalaryData(@Param("beginDate") Date beginDate, @Param("guildId") Long diamondNum);
|
||||
|
||||
Page<AgencyMonthSettleDetailVo> agencySettleVo(@Param("page") Page<AgencyMonthSettleDetailVo> page, @Param("dateCycle") String dateCycle,
|
||||
@Param("partitionId") Integer partitionId, @Param("regionId") Integer regionId, @Param("guildId") Integer guildId);
|
@@ -1,26 +0,0 @@
|
||||
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> {
|
||||
|
||||
AgencyMonthSettleDetail totalSalaryData(Date beginDate, Long hallId);
|
||||
List<AgencyMonthSettleDetail> userSalaryData(Date beginDate, Long hallId);
|
||||
|
||||
List<AgencyMonthSettleDetail> listPage(Long hallId, Integer page, Integer pageSize);
|
||||
|
||||
Page<AgencyMonthSettleDetailVo> agencySettleVo(BasePageParams basePageParams, String dateCycle, Integer hallId);
|
||||
}
|
@@ -1,24 +0,0 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 公会主播月政策结算明细表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author wxf
|
||||
* @since 2024-07-30
|
||||
*/
|
||||
public interface AgencyUserMonthSettleDetailService extends IService<AgencyUserMonthSettleDetail> {
|
||||
List<AgencyUserMonthSettleDetail> agencySettleDetailVo(String date, Long uid, Integer hallId);
|
||||
|
||||
Page<AgencyOpenAdminVo> excellentAnchorList(Page<AgencyOpenAdminVo> page, Long hallId, String dateCycle, Long excellentAnchorDiamondNum);
|
||||
|
||||
Page<AgencyOpenAdminVo> excellentAnchorDetailList(Page<AgencyOpenAdminVo> page, Long hallId, String dateCycle, Long excellentAnchorDiamondNum);
|
||||
}
|
@@ -1,37 +0,0 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 公会主播月政策结算明细表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author wxf
|
||||
* @since 2024-07-30
|
||||
*/
|
||||
@Service
|
||||
public class AgencyUserMonthSettleDetailServiceImpl extends ServiceImpl<AgencyUserMonthSettleDetailMapper, AgencyUserMonthSettleDetail> implements AgencyUserMonthSettleDetailService {
|
||||
|
||||
@Override
|
||||
public List<AgencyUserMonthSettleDetail> agencySettleDetailVo(String date, Long uid, Integer hallId) {
|
||||
return this.baseMapper.agencySettleDetailVo(date,uid,hallId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<AgencyOpenAdminVo> excellentAnchorList(Page<AgencyOpenAdminVo> page, Long hallId, String dateCycle, Long excellentAnchorDiamondNum) {
|
||||
return this.baseMapper.excellentAnchorList(page,hallId,dateCycle,excellentAnchorDiamondNum);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<AgencyOpenAdminVo> excellentAnchorDetailList(Page<AgencyOpenAdminVo> page, Long hallId, String dateCycle, Long excellentAnchorDiamondNum) {
|
||||
return this.baseMapper.excellentAnchorDetailList(page,hallId,dateCycle,excellentAnchorDiamondNum);
|
||||
}
|
||||
}
|
@@ -0,0 +1,74 @@
|
||||
package com.accompany.business.service.guild;
|
||||
|
||||
import com.accompany.business.model.guild.GuildDiamondSalary;
|
||||
import com.accompany.business.mybatismapper.guild.GuildDiamondSalaryMapper;
|
||||
import com.accompany.business.util.CycleTimeUtil;
|
||||
import com.accompany.business.vo.guild.GuildCycleDiamondWageLevelVo;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@Service
|
||||
public class GuildDiamondSalaryService extends ServiceImpl<GuildDiamondSalaryMapper, GuildDiamondSalary> {
|
||||
|
||||
@Autowired
|
||||
private GuildMemberDiamondStatisticsService guildMemberDiamondStatisticsService;
|
||||
|
||||
public GuildCycleDiamondWageLevelVo getCycleDiamondSalaryLevel(Integer guildId, Integer partitionId){
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
|
||||
String cycleDate = CycleTimeUtil.getCurCycleDateByZoneId(partitionEnum.getZoneId());
|
||||
BigDecimal cycleDiamond = guildMemberDiamondStatisticsService.getTotalDiamondInCycle(cycleDate, guildId);
|
||||
TreeMap<BigDecimal, GuildDiamondSalary> diamondSalaryMap = getDiamondSalaryMap(partitionId);
|
||||
Map.Entry<BigDecimal, GuildDiamondSalary> curDiamondLevel = diamondSalaryMap.headMap(cycleDiamond, true).lastEntry();
|
||||
Map.Entry<BigDecimal, GuildDiamondSalary> nextDiamondLevel = diamondSalaryMap.tailMap(cycleDiamond, false).firstEntry();
|
||||
|
||||
GuildCycleDiamondWageLevelVo diamondSalaryVo = new GuildCycleDiamondWageLevelVo();
|
||||
diamondSalaryVo.setCurDiamond(cycleDiamond);
|
||||
diamondSalaryVo.setNextLevelGap(BigDecimal.ZERO);
|
||||
diamondSalaryVo.setCurLevel(curDiamondLevel.getValue().getLevel());
|
||||
diamondSalaryVo.setCurLevelWage(curDiamondLevel.getKey());
|
||||
|
||||
if (null != nextDiamondLevel) {
|
||||
diamondSalaryVo.setNextLevel(nextDiamondLevel.getValue().getLevel());
|
||||
BigDecimal nextLevelWage = nextDiamondLevel.getKey();
|
||||
diamondSalaryVo.setNextLevelWage(nextLevelWage);
|
||||
diamondSalaryVo.setNextLevelGap(nextLevelWage.subtract(cycleDiamond));
|
||||
}
|
||||
|
||||
return diamondSalaryVo;
|
||||
}
|
||||
|
||||
public GuildDiamondSalary calDiamondSalary(BigDecimal diamond, Integer partitionId){
|
||||
TreeMap<BigDecimal, GuildDiamondSalary> diamondSalaryMap = getDiamondSalaryMap(partitionId);
|
||||
Map.Entry<BigDecimal, GuildDiamondSalary> curDiamondLevel = diamondSalaryMap.headMap(diamond, true).lastEntry();
|
||||
return curDiamondLevel.getValue();
|
||||
}
|
||||
|
||||
public TreeMap<BigDecimal, GuildDiamondSalary> getDiamondSalaryMap(Integer partitionId) {
|
||||
List<GuildDiamondSalary> salaryList = lambdaQuery()
|
||||
.eq(GuildDiamondSalary::getPartitionId, partitionId).list();
|
||||
return getMap(salaryList);
|
||||
}
|
||||
|
||||
public TreeMap<BigDecimal, GuildDiamondSalary> getMap(List<GuildDiamondSalary> salaryList) {
|
||||
TreeMap<BigDecimal, GuildDiamondSalary> map = new TreeMap<>();
|
||||
|
||||
if (CollectionUtils.isEmpty(salaryList)){
|
||||
return map;
|
||||
}
|
||||
|
||||
for (GuildDiamondSalary salary : salaryList) {
|
||||
map.put(salary.getDiamondNum(), salary);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
@@ -1,6 +1,5 @@
|
||||
package com.accompany.business.service.guild;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.constant.activity.ActivityType;
|
||||
import com.accompany.business.model.guild.GuildDiamondWage;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
@@ -29,16 +28,16 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
public class GuildMemberDiamondStatisticsService extends ServiceImpl<GuildMemberDiamondStatisticsMapper, GuildMemberDiamondStatistics> {
|
||||
|
||||
@Autowired
|
||||
private GuildDiamondWageService guildDiamondWageService;
|
||||
@Autowired
|
||||
private ActivityH5LevelExpService activityH5LevelExpService;
|
||||
@Autowired
|
||||
private PartitionInfoService partitionInfoService;
|
||||
@Autowired
|
||||
private GuildMemberService guildMemberService;
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private PartitionInfoService partitionInfoService;
|
||||
@Autowired
|
||||
private GuildDiamondWageService guildDiamondWageService;
|
||||
|
||||
public void update(String cycleDate, GuildMember guildMember, double diamond){
|
||||
Date now = new Date();
|
||||
@@ -81,48 +80,6 @@ public class GuildMemberDiamondStatisticsService extends ServiceImpl<GuildMember
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<UserHallEnergyLevelDataVo> agencySettle(Integer partitionId, String cycleDate, Integer guildId) {
|
||||
List<UserHallEnergyLevelDataVo> resultList = new ArrayList<>();
|
||||
List<GuildMemberDiamondStatisticsVo> guildMemberDiamondStatistics = baseMapper.agencySettle(partitionId, cycleDate, guildId);
|
||||
if (CollectionUtils.isEmpty(guildMemberDiamondStatistics)) {
|
||||
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());
|
||||
BigDecimal diamond = BigDecimal.valueOf(levelDay.getDiamondNum());
|
||||
GuildDiamondWage guildDiamondWage = guildDiamondWageService.calDiamondWage(diamond, partitionId);
|
||||
vo.setEnergyLevel(guildDiamondWage.getLevel());
|
||||
//vo.setHallSalary(diamond.multiply(guildDiamondWage.getWageRatio()).divide(guildDiamondWage.getWageDivisor(), 2, RoundingMode.HALF_UP));
|
||||
vo.setHallSalary(diamond.multiply(guildDiamondWage.getWageRatio()));
|
||||
vo.setCurrentLevelName(guildDiamondWage.getLevel());
|
||||
vo.setSalaryRate(guildDiamondWage.getWageRatio().doubleValue());
|
||||
vo.setHallMemberCount(levelDay.getHallMemberCount());
|
||||
resultList.add(vo);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public List<UserHallEnergyLevelDataVo> agencySettleDetail(Integer partitionId, String beginDate, Integer guildId, Long uid) {
|
||||
List<UserHallEnergyLevelDataVo> resultList = new ArrayList<>();
|
||||
List<GuildMemberDiamondStatisticsVo> 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;
|
||||
}
|
||||
|
||||
public List<AgencyMonthSettleDetailVo> agencySettleVo(Integer partitionId, Integer regionId, String beginDate, Integer guildId) {
|
||||
List<AgencyMonthSettleDetailVo> levelMonths = baseMapper.getAgencyOwnerSettleDate(partitionId, regionId, beginDate, guildId);
|
||||
if (CollectionUtils.isEmpty(levelMonths)) {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.accompany.business.service.guild;
|
||||
|
||||
import com.accompany.business.model.guild.AgencyMonthSettleDetail;
|
||||
import com.accompany.business.mybatismapper.guild.AgencyMonthSettleDetailMapper;
|
||||
import com.accompany.business.model.guild.GuildSettleRecord;
|
||||
import com.accompany.business.mybatismapper.guild.GuildSettleRecordMapper;
|
||||
import com.accompany.business.param.BasePageParams;
|
||||
import com.accompany.business.vo.guild.AgencyMonthSettleDetailVo;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -21,30 +21,24 @@ import java.util.List;
|
||||
* @since 2024-07-01
|
||||
*/
|
||||
@Service
|
||||
public class AgencyMonthSettleDetailServiceImpl extends ServiceImpl<AgencyMonthSettleDetailMapper, AgencyMonthSettleDetail> implements AgencyMonthSettleDetailService {
|
||||
public class GuildSettleRecordService extends ServiceImpl<GuildSettleRecordMapper, GuildSettleRecord> {
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public AgencyMonthSettleDetail totalSalaryData(Date beginDate, Long hallId) {
|
||||
public GuildSettleRecord totalSalaryData(Date beginDate, Long hallId) {
|
||||
return baseMapper.totalSalaryData(beginDate, hallId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AgencyMonthSettleDetail> userSalaryData(Date beginDate, Long hallId) {
|
||||
public List<GuildSettleRecord> userSalaryData(Date beginDate, Long hallId) {
|
||||
return baseMapper.userSalaryData(beginDate, hallId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AgencyMonthSettleDetail> listPage(Long hallId, Integer page, Integer pageSize) {
|
||||
LambdaQueryWrapper<AgencyMonthSettleDetail> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(AgencyMonthSettleDetail::getGuildId, hallId);
|
||||
wrapper.orderByDesc(AgencyMonthSettleDetail::getStatDate);
|
||||
IPage<AgencyMonthSettleDetail> agencyMonthSettleDetailIPage = baseMapper.selectPage(new Page<>(page, pageSize, false), wrapper);
|
||||
public List<GuildSettleRecord> listPage(Long hallId, Integer page, Integer pageSize) {
|
||||
LambdaQueryWrapper<GuildSettleRecord> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(GuildSettleRecord::getGuildId, hallId);
|
||||
wrapper.orderByDesc(GuildSettleRecord::getStatDate);
|
||||
IPage<GuildSettleRecord> agencyMonthSettleDetailIPage = baseMapper.selectPage(new Page<>(page, pageSize, false), wrapper);
|
||||
return agencyMonthSettleDetailIPage.getRecords();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<AgencyMonthSettleDetailVo> agencySettleVo(BasePageParams basePageParams, String dateCycle, Integer guildId) {
|
||||
|
||||
Page<AgencyMonthSettleDetailVo> page = new Page<>(basePageParams.getPageNo(),basePageParams.getPageSize());
|
@@ -1,17 +1,16 @@
|
||||
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.model.guild.GuildDiamondSalary;
|
||||
import com.accompany.business.model.guild.GuildSettleRecord;
|
||||
import com.accompany.business.model.guild.Guild;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.mybatismapper.guild.GuildMemberDiamondStatisticsMapper;
|
||||
import com.accompany.business.param.BasePageParams;
|
||||
import com.accompany.business.service.SendSysMsgService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.util.CycleTimeUtil;
|
||||
import com.accompany.business.vo.guild.AgencyMonthSettleDetailVo;
|
||||
import com.accompany.business.vo.guild.GuildDateCycleVo;
|
||||
import com.accompany.business.vo.guild.UserHallEnergyLevelDataVo;
|
||||
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsVo;
|
||||
import com.accompany.common.config.SystemConfig;
|
||||
import com.accompany.common.config.WebSecurityConfig;
|
||||
import com.accompany.common.constant.AppEnum;
|
||||
@@ -27,6 +26,7 @@ import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.message.MessageRobotPushService;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -38,14 +38,12 @@ import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* 公会月政策结算表 服务实现类
|
||||
*
|
||||
@@ -54,15 +52,17 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class AgencyMonthSettleService {
|
||||
public class GuildSettleService {
|
||||
|
||||
@Autowired
|
||||
private AgencyMonthSettleDetailService agencyMonthSettleDetailService;
|
||||
@Autowired
|
||||
private AgencyUserMonthSettleDetailService agencyUserMonthSettleDetailService;
|
||||
private GuildSettleRecordService guildSettleRecordService;
|
||||
@Autowired
|
||||
private GuildMemberDiamondStatisticsService guildMemberDiamondStatisticsService;
|
||||
@Autowired
|
||||
private GuildMemberDiamondStatisticsMapper guildMemberDiamondStatisticsMapper;
|
||||
@Autowired
|
||||
private GuildDiamondSalaryService guildDiamondSalaryService;
|
||||
@Autowired
|
||||
private GuildUsdOperateService guildUsdOperateService;
|
||||
@Autowired
|
||||
private GuildService guildService;
|
||||
@@ -81,32 +81,86 @@ public class AgencyMonthSettleService {
|
||||
@Autowired
|
||||
private SendSysMsgService sendSysMsgService;
|
||||
|
||||
public void monthRankTaskAll(Integer partitionId, String beginDate, String endDate) {
|
||||
List<UserHallEnergyLevelDataVo> userHallEnergyLevelDataVos = guildMemberDiamondStatisticsService.agencySettle(partitionId, beginDate, null);
|
||||
if (CollectionUtils.isEmpty(userHallEnergyLevelDataVos)) {
|
||||
return;
|
||||
public List<GuildSettleRecord> cal(Integer partitionId, String beginDate, String endDate, Integer gId){
|
||||
List<GuildMemberDiamondStatisticsVo> memberSettleList = guildMemberDiamondStatisticsMapper.listGuildMemberDiamondStat(partitionId, beginDate, gId);
|
||||
if (CollectionUtils.isEmpty(memberSettleList)){
|
||||
log.error("[guild settle] partitionId {} cycleDate {} 周期内无有效公会", partitionId, beginDate);
|
||||
throw new ServiceException(BusiStatus.SERVERERROR);
|
||||
}
|
||||
List<AgencyMonthSettleDetail> agencyMonthSettleDetails = new ArrayList<>();
|
||||
for (UserHallEnergyLevelDataVo dataVo : userHallEnergyLevelDataVos) {
|
||||
AgencyMonthSettleDetail agencyMonthSettleDetail = AgencyMonthSettleDetail.builder().uid(dataVo.getUid()).guildId(dataVo.getHallId()).partitionId(partitionId)
|
||||
.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);
|
||||
Map<Integer, List<GuildMemberDiamondStatisticsVo>> groupByGuildIdMap = memberSettleList.stream().collect(Collectors.groupingBy(GuildMemberDiamondStatisticsVo::getGuildId));
|
||||
|
||||
sendMessage(agencyMonthSettleDetails);
|
||||
List<Integer> guildIdList = groupByGuildIdMap.keySet().stream().toList();
|
||||
Map<Integer, Guild> guildMap = guildService.mapGuildByIds(guildIdList);
|
||||
|
||||
for (UserHallEnergyLevelDataVo dataVo : userHallEnergyLevelDataVos) {
|
||||
if (dataVo.getHallSalary().doubleValue() == 0) {
|
||||
Double activeMemberStandard = 150000d;
|
||||
Date now = new Date();
|
||||
return groupByGuildIdMap.entrySet().stream().map(entry -> {
|
||||
Integer guildId = entry.getKey();
|
||||
List<GuildMemberDiamondStatisticsVo> memberDiamondList = entry.getValue();
|
||||
|
||||
GuildSettleRecord record = new GuildSettleRecord();
|
||||
record.setGuildId(guildId);
|
||||
record.setPartitionId(partitionId);
|
||||
record.setStatDate(beginDate);
|
||||
record.setEndDate(endDate);
|
||||
|
||||
Guild g = guildMap.get(guildId);
|
||||
if (null != g){
|
||||
record.setGuildOwnerUid(g.getOwnerUid());
|
||||
}
|
||||
|
||||
record.setMemberCount(memberDiamondList.size());
|
||||
|
||||
int activeMemberCount = (int) memberDiamondList.stream().filter(ds->activeMemberStandard.compareTo(ds.getDiamondNum()) <= 0).count();
|
||||
record.setActiveMemberCount(activeMemberCount);
|
||||
|
||||
BigDecimal totalDiamondNum = memberDiamondList.stream().map(GuildMemberDiamondStatisticsVo::getDiamondNum).map(BigDecimal::valueOf).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
||||
record.setDiamondNum(totalDiamondNum);
|
||||
|
||||
GuildDiamondSalary guildDiamondSalary = guildDiamondSalaryService.calDiamondSalary(totalDiamondNum, partitionId);
|
||||
if (null == guildDiamondSalary){
|
||||
throw new ServiceException(BusiStatus.SERVERERROR);
|
||||
}
|
||||
|
||||
record.setSalaryLevel(guildDiamondSalary.getLevel());
|
||||
record.setBaseSalaryRatio(guildDiamondSalary.getBaseSalaryRatio());
|
||||
|
||||
BigDecimal baseSalary = totalDiamondNum.multiply(guildDiamondSalary.getBaseSalaryRatio());
|
||||
record.setBaseSalary(baseSalary);
|
||||
|
||||
record.setActiveMemberBonusRatio(guildDiamondSalary.getActiveMemberBonusRatio());
|
||||
BigDecimal activeMemberBonus = totalDiamondNum.multiply(guildDiamondSalary.getActiveMemberBonusRatio());
|
||||
|
||||
BigDecimal totalSalary = baseSalary.add(activeMemberBonus);
|
||||
record.setTotalSalary(totalSalary);
|
||||
|
||||
record.setMemberRecord(JSON.toJSONString(memberDiamondList));
|
||||
|
||||
record.setCreateTime(now);
|
||||
record.setUpdateTime(now);
|
||||
|
||||
return record;
|
||||
}).toList();
|
||||
}
|
||||
|
||||
public void settle(Integer partitionId, String beginDate, String endDate){
|
||||
List<GuildSettleRecord> guildSettleRecords = cal(partitionId, beginDate, endDate, null);
|
||||
guildSettleRecordService.saveBatch(guildSettleRecords);
|
||||
|
||||
sendMessage(guildSettleRecords);
|
||||
|
||||
// 发财
|
||||
for (GuildSettleRecord record : guildSettleRecords) {
|
||||
log.info("[guild settle] partitionId {} guildId {} salary {}", record.getPartitionId(), record.getGuildId(), JSON.toJSONString(record));
|
||||
if (BigDecimal.ZERO.compareTo(record.getTotalSalary()) <= 0) {
|
||||
continue;
|
||||
}
|
||||
guildUsdOperateService.settlementGold(dataVo.getHallId(), dataVo.getUid(), dataVo.getHallSalary());
|
||||
guildUsdOperateService.settlementGold(record.getGuildId(), record.getGuildOwnerUid(), record.getTotalSalary());
|
||||
}
|
||||
|
||||
Map<Long, BigDecimal> uidSalaryMap = agencyMonthSettleDetails.stream()
|
||||
.filter(d->d.getHallSalary().compareTo(BigDecimal.ZERO) > 0)
|
||||
.collect(Collectors.toMap(AgencyMonthSettleDetail::getUid, AgencyMonthSettleDetail::getHallSalary));
|
||||
Map<Long, BigDecimal> uidSalaryMap = guildSettleRecords.stream()
|
||||
.filter(d->d.getTotalSalary().compareTo(BigDecimal.ZERO) > 0)
|
||||
.collect(Collectors.toMap(GuildSettleRecord::getGuildOwnerUid, GuildSettleRecord::getTotalSalary));
|
||||
sendSecretMessage(partitionId, uidSalaryMap);
|
||||
}
|
||||
|
||||
@@ -121,17 +175,17 @@ public class AgencyMonthSettleService {
|
||||
}
|
||||
}
|
||||
|
||||
public void sendMessage(List<AgencyMonthSettleDetail> agencyMonthSettleDetails) {
|
||||
Map<Integer, List<AgencyMonthSettleDetail>> partitionMap = agencyMonthSettleDetails.stream()
|
||||
.collect(Collectors.groupingBy(AgencyMonthSettleDetail::getPartitionId));
|
||||
public void sendMessage(List<GuildSettleRecord> guildSettleRecords) {
|
||||
Map<Integer, List<GuildSettleRecord>> partitionMap = guildSettleRecords.stream()
|
||||
.collect(Collectors.groupingBy(GuildSettleRecord::getPartitionId));
|
||||
for (Integer partitionId : partitionMap.keySet()){
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
List<AgencyMonthSettleDetail> detail = partitionMap.get(partitionId).stream()
|
||||
.filter(d->d.getHallSalary().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList());
|
||||
List<GuildSettleRecord> detail = partitionMap.get(partitionId).stream()
|
||||
.filter(d->d.getTotalSalary().compareTo(BigDecimal.ZERO) > 0).toList();
|
||||
String nowStr = DateTimeUtil.getCurrentDateTime();
|
||||
int count = detail.size();
|
||||
BigDecimal totalDiamondNum = detail.stream().map(AgencyMonthSettleDetail::getDiamondNum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal totalSalaryNum = detail.stream().map(AgencyMonthSettleDetail::getHallSalary).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal totalDiamondNum = detail.stream().map(GuildSettleRecord::getDiamondNum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal totalSalaryNum = detail.stream().map(GuildSettleRecord::getTotalSalary).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal rate = totalDiamondNum.compareTo(BigDecimal.ZERO) > 0?
|
||||
totalSalaryNum.divide(totalDiamondNum, 2, RoundingMode.HALF_UP):
|
||||
BigDecimal.ZERO;
|
||||
@@ -149,24 +203,6 @@ public class AgencyMonthSettleService {
|
||||
}
|
||||
}
|
||||
|
||||
public void monthRankTaskDetail(Integer partitionId, String beginDate, String endDate) {
|
||||
List<UserHallEnergyLevelDataVo> userHallEnergyLevelDataVos = guildMemberDiamondStatisticsService.agencySettleDetail(partitionId, beginDate, null, null);
|
||||
if (CollectionUtils.isEmpty(userHallEnergyLevelDataVos)) {
|
||||
return;
|
||||
}
|
||||
List<AgencyUserMonthSettleDetail> 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);
|
||||
}
|
||||
boolean saveBatch = agencyUserMonthSettleDetailService.saveBatch(agencyUserMonthSettleDetails);
|
||||
if (!saveBatch) {
|
||||
log.info("empty agencyUserMonthSettleDetails");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Page<AgencyMonthSettleDetailVo> listPage(BasePageParams basePageParams, Integer agencyId, Long agencyOwnerId) {
|
||||
if (null == basePageParams.getPartitionId()){
|
||||
throw new ServiceException(BusiStatus.SERVERERROR,"请选择分区");
|
||||
@@ -201,8 +237,7 @@ public class AgencyMonthSettleService {
|
||||
|
||||
String curCycleDate = CycleTimeUtil.getCurCycleDateByZoneId(ZoneId.systemDefault().getId());
|
||||
if (curCycleDate.equals(basePageParams.getDateCycle())){
|
||||
List<AgencyMonthSettleDetailVo> agencyMonthSettleDetailVos =
|
||||
guildMemberDiamondStatisticsService.agencySettleVo(basePageParams.getPartitionId(), basePageParams.getRegionId(), basePageParams.getDateCycle(), hallId);
|
||||
List<AgencyMonthSettleDetailVo> agencyMonthSettleDetailVos = guildMemberDiamondStatisticsService.agencySettleVo(basePageParams.getPartitionId(), basePageParams.getRegionId(), basePageParams.getDateCycle(), hallId);
|
||||
List<AgencyMonthSettleDetailVo> records = PageUtil.page(agencyMonthSettleDetailVos, basePageParams.getPageNo(), basePageParams.getPageSize());
|
||||
page.setRecords(records);
|
||||
page.setTotal(agencyMonthSettleDetailVos.size());
|
||||
@@ -213,7 +248,7 @@ public class AgencyMonthSettleService {
|
||||
}
|
||||
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(basePageParams.getPartitionId());
|
||||
Page<AgencyMonthSettleDetailVo> agencyMonthSettleDetailVoPage = agencyMonthSettleDetailService.agencySettleVo(basePageParams, basePageParams.getDateCycle(), hallId);
|
||||
Page<AgencyMonthSettleDetailVo> agencyMonthSettleDetailVoPage = guildSettleRecordService.agencySettleVo(basePageParams, basePageParams.getDateCycle(), hallId);
|
||||
for (AgencyMonthSettleDetailVo record : agencyMonthSettleDetailVoPage.getRecords()) {
|
||||
record.setPartitionDesc(partitionInfo.getDesc());
|
||||
record.setSalaryRate(record.getSalaryRate()*100);
|
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.accompany.business.mybatismapper.guild.AgencyUserMonthSettleDetailMapper">
|
||||
|
||||
<select id="agencySettleDetailVo"
|
||||
resultType="com.accompany.business.model.guild.AgencyUserMonthSettleDetail">
|
||||
select * from agency_user_month_settle_detail where stat_date = #{date}
|
||||
<if test="hallId != null">
|
||||
and guild_id = #{hallId}
|
||||
</if>
|
||||
<if test="uid != null">
|
||||
and uid = #{uid}
|
||||
</if>
|
||||
</select>
|
||||
<select id="excellentAnchorList" resultType="com.accompany.business.vo.guild.AgencyOpenAdminVo">
|
||||
SELECT stat_date dateCycle,guild_id guildId,uid, SUM(IF(diamond_num > #{excellentAnchorDiamondNum},1,0)) effectAnchor ,count(DISTINCT uid) allAnchor
|
||||
FROM agency_user_month_settle_detail
|
||||
WHERE stat_date = #{dateCycle} AND guild_id = #{hallId}
|
||||
GROUP BY guild_id
|
||||
</select>
|
||||
<select id="excellentAnchorDetailList"
|
||||
resultType="com.accompany.business.vo.guild.AgencyOpenAdminVo">
|
||||
SELECT guild_id hallId,uid uid,energy_value diamondFlow,IF(diamond_num > #{excellentAnchorDiamondNum},1,0) effect
|
||||
FROM agency_user_month_settle_detail
|
||||
WHERE stat_date = #{dateCycle} AND guild_id = #{hallId}
|
||||
order by diamondFlow desc
|
||||
</select>
|
||||
</mapper>
|
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.accompany.business.mybatismapper.guild.GuildDiamondSalaryMapper">
|
||||
|
||||
</mapper>
|
@@ -35,45 +35,22 @@
|
||||
group by s.guild_member_id
|
||||
</select>
|
||||
|
||||
<select id="agencySettle" resultType="com.accompany.business.vo.guild.GuildMemberDiamondStatisticsVo">
|
||||
select
|
||||
hm.guild_id guildId,
|
||||
h.owner_uid uid,
|
||||
count(hm.uid) hallMemberCount,
|
||||
sum(IFNULL(ed.diamond_num, 0)) diamondNum
|
||||
from guild_member hm
|
||||
left join guild_member_diamond_statistics ed on ed.guild_member_id = hm.id
|
||||
and hm.guild_id = ed.guild_id
|
||||
and ed.cycle_date = #{cycleDate}
|
||||
left join guild h on hm.guild_id = h.id
|
||||
where hm.partition_id = #{partitionId}
|
||||
<if test="guildId != null">
|
||||
and hm.guild_id = #{guildId}
|
||||
</if>
|
||||
and hm.`enable` = 1
|
||||
group by hm.guild_id
|
||||
</select>
|
||||
|
||||
<select id="agencySettleDetail" resultType="com.accompany.business.vo.guild.GuildMemberDiamondStatisticsVo">
|
||||
<select id="listGuildMemberDiamondStat" resultType="com.accompany.business.vo.guild.GuildMemberDiamondStatisticsVo">
|
||||
select
|
||||
hm.id guildMemberId,
|
||||
hm.guild_id guildId,
|
||||
hm.uid uid,
|
||||
sum(IFNULL(ed.diamond_num, 0)) diamondNum
|
||||
ed.cycle_date cycleDate,
|
||||
IFNULL(ed.diamond_num, 0) diamondNum
|
||||
from guild_member hm
|
||||
left join guild_member_diamond_statistics ed on ed.guild_member_id = hm.id
|
||||
and hm.guild_id = ed.guild_id
|
||||
and ed.cycle_date = #{cycleDate}
|
||||
left join guild h on hm.guild_id = h.id
|
||||
left join users u on hm.uid = u.uid
|
||||
where hm.partition_id = #{partitionId}
|
||||
<if test="guildId != null">
|
||||
and hm.guild_id = #{guildId}
|
||||
</if>
|
||||
<if test="uid != null">
|
||||
and hm.uid = #{uid}
|
||||
</if>
|
||||
left join guild_member_diamond_statistics ed
|
||||
on ed.guild_member_id = hm.id and ed.cycle_date = #{cycleDate}
|
||||
where 1=1
|
||||
<if test="guildId != null">
|
||||
and hm.guild_id = #{guildId}
|
||||
</if>
|
||||
and hm.partition_id = #{partitionId}
|
||||
and hm.`enable` = 1
|
||||
group by hm.guild_id, hm.uid
|
||||
</select>
|
||||
|
||||
<select id="getAgencyOwnerSettleDate"
|
||||
|
@@ -1,9 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.accompany.business.mybatismapper.guild.AgencyMonthSettleDetailMapper">
|
||||
<mapper namespace="com.accompany.business.mybatismapper.guild.GuildSettleRecordMapper">
|
||||
|
||||
|
||||
<select id="totalSalaryData" resultType="com.accompany.business.model.guild.AgencyMonthSettleDetail">
|
||||
<select id="totalSalaryData" resultType="com.accompany.business.model.guild.GuildSettleRecord">
|
||||
select ifnull(sum(anchor_salary), 0) anchorSalary,
|
||||
ifnull(sum(diamond_salary), 0) diamondSalary,
|
||||
ifnull(sum(hall_salary), 0) hallSalary,
|
||||
@@ -13,7 +12,7 @@
|
||||
and guild_id = #{guildId}
|
||||
</select>
|
||||
|
||||
<select id="userSalaryData" resultType="com.accompany.business.model.guild.AgencyMonthSettleDetail">
|
||||
<select id="userSalaryData" resultType="com.accompany.business.model.guild.GuildSettleRecord">
|
||||
select guild_id guildId, uid, ifnull(sum(anchor_salary), 0) anchorSalary,
|
||||
ifnull(sum(diamond_salary), 0) diamondSalary,
|
||||
ifnull(sum(hall_salary), 0) hallSalary,
|
@@ -1,13 +1,11 @@
|
||||
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.GuildSettleService;
|
||||
import com.accompany.business.service.guild.GuildMessageService;
|
||||
import com.accompany.business.service.room.RoomDayDiamondRewardRecordService;
|
||||
import com.accompany.common.annotation.Authorization;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.core.base.UidContextHolder;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -23,7 +21,7 @@ public class GuildTestController {
|
||||
@Autowired
|
||||
private GuildMessageService guildMessageService;
|
||||
@Autowired
|
||||
private AgencyMonthSettleService agencyMonthSettleService;
|
||||
private GuildSettleService guildSettleService;
|
||||
|
||||
|
||||
@ApiOperation("测试小秘书消息")
|
||||
@@ -35,22 +33,13 @@ public class GuildTestController {
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
@RequestMapping(value = "monthSettleTaskAll")
|
||||
@RequestMapping(value = "settle")
|
||||
@Authorization
|
||||
public void monthSettleTaskAll(String beginDate, String endDate, String pwd, Integer partiionId) {
|
||||
public void monthSettleTaskAll(Integer partitionId, String beginDate, String endDate, String pwd) {
|
||||
if (!"fdsfast43532453".equals(pwd)) {
|
||||
return;
|
||||
}
|
||||
agencyMonthSettleService.monthRankTaskAll(partiionId, beginDate, endDate);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "monthRankTaskDetailAll")
|
||||
@Authorization
|
||||
public void monthRankTaskDetail_(String beginDate, String endDate, String pwd, Integer partiionId) {
|
||||
if (!"fdsfast43532453".equals(pwd)) {
|
||||
return;
|
||||
}
|
||||
agencyMonthSettleService.monthRankTaskDetail(partiionId, beginDate, endDate);
|
||||
guildSettleService.settle(partitionId, beginDate, endDate);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
|
@@ -19,7 +19,7 @@ public class RechargeAgentWeekStatTask extends BaseTask {
|
||||
|
||||
@Scheduled(cron = "5 0 0 ? * MON")
|
||||
public void statWeekEn() {
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH2);
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH);
|
||||
service.stat(partitionEnumList);
|
||||
}
|
||||
|
||||
|
@@ -1,75 +0,0 @@
|
||||
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 com.accompany.business.service.guild.GuildSalaryBillDateCycleService;
|
||||
import com.accompany.business.util.CycleTimeUtil;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class GuildSettle4EnTask {
|
||||
@Autowired
|
||||
private AgencyMonthSettleService agencyMonthSettleService;
|
||||
@Autowired
|
||||
private GuildSalaryBillDateCycleService guildSalaryBillDateCycleService;
|
||||
|
||||
//zone = "Asia/Riyadh zone = "Etc/GMT-3" 两种方式都支持
|
||||
|
||||
/**
|
||||
* 公户月结算,用户明细
|
||||
* 每月1号凌晨0点10分执行
|
||||
*/
|
||||
@Scheduled(cron = "0 10 0 1 * ?")
|
||||
public void monthRank4EnTaskAll2() {
|
||||
Date date = new Date();
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
ZonedDateTime lastDateZdt = CycleTimeUtil.getLastDateZdtByZoneId(partitionEnum.getZoneId());
|
||||
ZonedDateTime lastEndDateZdt = CycleTimeUtil.getLastDateZdt(lastDateZdt);
|
||||
String lastCycDate = lastDateZdt.format(DateTimeUtil.dateFormatter);
|
||||
String lastCycEndDate = lastEndDateZdt.format(DateTimeUtil.dateFormatter);
|
||||
log.info("=-=monthRank4EnTaskAll2=-=:beginTime:{},endTime:{}", lastCycDate, lastCycEndDate);
|
||||
agencyMonthSettleService.monthRankTaskAll(partitionEnum.getId(), lastCycDate, lastCycEndDate);
|
||||
log.info("=-=monthRank4EnTaskAll2=-= end");
|
||||
log.info("=-=monthRankTaskDetail2=-=:beginTime:{},endTime:{}", lastCycDate, lastCycEndDate);
|
||||
agencyMonthSettleService.monthRankTaskDetail(partitionEnum.getId(), lastCycDate, lastCycEndDate);
|
||||
log.info("=-=monthRankTaskDetail2=-= end");
|
||||
} catch (Exception e) {
|
||||
log.error("[monthRank4EnTaskAll2] 异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 主播薪资操作记录结算
|
||||
*/
|
||||
@Scheduled(cron = "0 10 0 * * ?")
|
||||
public void settleAnchorBill() {
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
String today = DateTimeUtil.getZonedTodayStr(partitionEnum.getZoneId());
|
||||
String cycleDate = CycleTimeUtil.getCurCycleDateByZoneId(partitionEnum.getZoneId());
|
||||
if (today.equals(cycleDate)) {
|
||||
String lastCycleDate = CycleTimeUtil.getLastDateByZoneId(partitionEnum.getZoneId());
|
||||
guildSalaryBillDateCycleService.settleAnchorBill(lastCycleDate, partitionEnum.getId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("[monthRankTask异常] {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,8 +1,6 @@
|
||||
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 com.accompany.business.service.guild.GuildSettleService;
|
||||
import com.accompany.business.service.guild.GuildSalaryBillDateCycleService;
|
||||
import com.accompany.business.util.CycleTimeUtil;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
@@ -13,26 +11,46 @@ import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class GuildSettleTask {
|
||||
@Autowired
|
||||
private AgencyMonthSettleService agencyMonthSettleService;
|
||||
private GuildSettleService guildSettleService;
|
||||
@Autowired
|
||||
private GuildSalaryBillDateCycleService guildSalaryBillDateCycleService ;
|
||||
|
||||
//zone = "Asia/Riyadh zone = "Etc/GMT-3" 两种方式都支持
|
||||
|
||||
/**
|
||||
* 公户月结算,用户明细
|
||||
* 每月1号凌晨0点10分执行
|
||||
*/
|
||||
@Scheduled(cron = "0 10 0 1 * ?")
|
||||
public void settleEn() {
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
ZonedDateTime lastDateZdt = CycleTimeUtil.getLastDateZdtByZoneId(partitionEnum.getZoneId());
|
||||
ZonedDateTime lastEndDateZdt = CycleTimeUtil.getLastDateZdt(lastDateZdt);
|
||||
String lastCycDate = lastDateZdt.format(DateTimeUtil.dateFormatter);
|
||||
String lastCycEndDate = lastEndDateZdt.format(DateTimeUtil.dateFormatter);
|
||||
log.info("=-=guild settle=-=:beginTime:{},endTime:{}", lastCycDate, lastCycEndDate);
|
||||
guildSettleService.settle(partitionEnum.getId(), lastCycDate, lastCycEndDate);
|
||||
log.info("=-=guild settle=-= end");
|
||||
} catch (Exception e) {
|
||||
log.error("[guild settle] 异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 公户月结算,用户明细
|
||||
* 每月1号凌晨0点10分执行
|
||||
*/
|
||||
@Scheduled(cron = "0 10 0 1 * ?", zone = "Etc/GMT-3")
|
||||
public void monthRankTaskAll2() {
|
||||
Date date = new Date();
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ARAB, PartitionEnum.TURKEY);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
@@ -40,14 +58,31 @@ public class GuildSettleTask {
|
||||
ZonedDateTime lastEndDateZdt = CycleTimeUtil.getLastDateZdt(lastDateZdt);
|
||||
String lastCycDate = lastDateZdt.format(DateTimeUtil.dateFormatter);
|
||||
String lastCycEndDate = lastEndDateZdt.format(DateTimeUtil.dateFormatter);
|
||||
log.info("=-=monthRankTaskAll2=-=:beginTime:{},endTime:{}", lastCycDate, lastCycEndDate);
|
||||
agencyMonthSettleService.monthRankTaskAll(partitionEnum.getId(), lastCycDate, lastCycEndDate);
|
||||
log.info("=-=monthRankTaskAll2=-= end");
|
||||
log.info("=-=monthRankTaskDetail2=-=:beginTime:{},endTime:{}", lastCycDate, lastCycEndDate);
|
||||
agencyMonthSettleService.monthRankTaskDetail(partitionEnum.getId(), lastCycDate, lastCycEndDate);
|
||||
log.info("=-=monthRankTaskDetail2=-= end");
|
||||
log.info("=-=guild settle=-=:beginTime:{},endTime:{}", lastCycDate, lastCycEndDate);
|
||||
guildSettleService.settle(partitionEnum.getId(), lastCycDate, lastCycEndDate);
|
||||
log.info("=-=guild settle=-= end");
|
||||
} catch (Exception e) {
|
||||
log.error("[monthRankTaskAll2] 异常", e);
|
||||
log.error("[guild settle] 异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 主播薪资操作记录结算
|
||||
*/
|
||||
@Scheduled(cron = "0 10 0 * * ?")
|
||||
public void settleEnAnchorBill() {
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.ENGLISH);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
String today = DateTimeUtil.getZonedTodayStr(partitionEnum.getZoneId());
|
||||
String cycleDate = CycleTimeUtil.getCurCycleDateByZoneId(partitionEnum.getZoneId());
|
||||
if (today.equals(cycleDate)) {
|
||||
String lastCycleDate = CycleTimeUtil.getLastDateByZoneId(partitionEnum.getZoneId());
|
||||
guildSalaryBillDateCycleService.settleAnchorBill(lastCycleDate, partitionEnum.getId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("[monthRankTask异常] {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user