土耳其薪资结算数据
This commit is contained in:
@@ -74,7 +74,7 @@ public class GuildDiamondStatisticsDayAdminService {
|
||||
Page<GuildDiamondStatisticsDayVo> guildDiamondStatisticsDayPage;
|
||||
if (GUILD_POLICY2.equals(partitionEnum.getClanMode())) {
|
||||
guildDiamondStatisticsDayPage =
|
||||
guildDiamondStatisticsPolicy2Service.listByStatDate4OldPolicy(startDate, endDate, partitionId, regionId, guildId, pageNo, pageSize, inviteUid);
|
||||
guildDiamondStatisticsPolicy2Service.listByStatDate4Policy2(startDate, endDate, partitionId, regionId, guildId, pageNo, pageSize, inviteUid);
|
||||
} else {
|
||||
guildDiamondStatisticsDayPage =
|
||||
guildDiamondStatisticsDayService.listByStatDate(startDate, endDate, partitionId, regionId, guildId, pageNo, pageSize, inviteUid);
|
||||
|
@@ -3,16 +3,16 @@ package com.accompany.admin.service.guildpolicy2;
|
||||
import com.accompany.business.model.guild.Guild;
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondWagePolicy2;
|
||||
import com.accompany.business.service.guild.GuildService;
|
||||
import com.accompany.business.service.guildpolicy2.GuildDiamondStatisticsPolicy2Service;
|
||||
import com.accompany.business.service.guildpolicy2.GuildDiamondWagePolicy2Service;
|
||||
import com.accompany.business.service.guildpolicy2.GuildMicStatisticsPolicy2Service;
|
||||
import com.accompany.business.service.guildpolicy2.GuildPolicy2Service;
|
||||
import com.accompany.business.service.guildpolicy2.*;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.util.FullMonthCycleTimeUtil;
|
||||
import com.accompany.business.vo.guild.CycleDateVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildMemberMicDayVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.result.PageResult;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -22,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@@ -40,6 +42,8 @@ public class GuildPolicy2AdminService {
|
||||
private GuildService guildService;
|
||||
@Autowired
|
||||
private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsPolicy2SettleService guildDiamondStatisticsPolicy2SettleService;
|
||||
|
||||
public PageResult<GuildPolicy2MemberAdminVo> queryMemberPage(Long ownerErbanNo, Integer guildId, Long erbanNo,
|
||||
Integer partitionId, String startDate, String endDate, Integer pageNo, Integer pageSize) {
|
||||
@@ -65,22 +69,31 @@ public class GuildPolicy2AdminService {
|
||||
}
|
||||
guildId = vaildGuildByOwnerUid.getId();
|
||||
}
|
||||
Page<GuildPolicy2MemberAdminVo> voPage = guildDiamondStatisticsPolicy2Service.listByStatDate(startDate, endDate, partitionId, guildId, uid, pageNo, pageSize);
|
||||
List<GuildPolicy2MemberAdminVo> records = voPage.getRecords();
|
||||
PageResult<GuildPolicy2MemberAdminVo> pageResult = new PageResult<>(voPage);
|
||||
if (CollectionUtils.isEmpty(records)) {
|
||||
return pageResult;
|
||||
}
|
||||
TreeMap<BigDecimal, GuildDiamondWagePolicy2> diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionId);
|
||||
for (GuildPolicy2MemberAdminVo record : records) {
|
||||
GuildDiamondWagePolicy2 diamondWagePolicy2 = guildDiamondWagePolicy2Service.calDiamondWageVo(diamondWageMap, record.getDiamondNum(), record.getMicDay());
|
||||
if (diamondWagePolicy2 == null) {
|
||||
continue;
|
||||
ZonedDateTime zonedDateTime = DateTimeUtil.convertWithZoneId(new Date(), PartitionEnum.TURKEY.getZoneId());
|
||||
String nowDate = FullMonthCycleTimeUtil.getCycleDate(zonedDateTime);
|
||||
PageResult<GuildPolicy2MemberAdminVo> pageResult;
|
||||
if (nowDate.equals(startDate) || startDate.compareTo("2025-09-01") <= 0) {
|
||||
Page<GuildPolicy2MemberAdminVo> voPage = guildDiamondStatisticsPolicy2Service.listByStatDate(startDate, endDate, partitionId, guildId, uid, pageNo, pageSize);
|
||||
List<GuildPolicy2MemberAdminVo> records = voPage.getRecords();
|
||||
pageResult = new PageResult<>(voPage);
|
||||
if (CollectionUtils.isEmpty(records)) {
|
||||
return pageResult;
|
||||
}
|
||||
record.setAnchorDiamondSalary(diamondWagePolicy2.getAnchorDiamondSalary());
|
||||
record.setOwnerSalary(diamondWagePolicy2.getOwnerSalary());
|
||||
record.setAnchorMicSalary(diamondWagePolicy2.getAnchorMicSalary());
|
||||
TreeMap<BigDecimal, GuildDiamondWagePolicy2> diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionId);
|
||||
for (GuildPolicy2MemberAdminVo record : records) {
|
||||
GuildDiamondWagePolicy2 diamondWagePolicy2 = guildDiamondWagePolicy2Service.calDiamondWageVo(diamondWageMap, record.getDiamondNum(), record.getMicDay());
|
||||
if (diamondWagePolicy2 == null) {
|
||||
continue;
|
||||
}
|
||||
record.setAnchorDiamondSalary(diamondWagePolicy2.getAnchorDiamondSalary());
|
||||
record.setOwnerSalary(diamondWagePolicy2.getOwnerSalary());
|
||||
record.setAnchorMicSalary(diamondWagePolicy2.getAnchorMicSalary());
|
||||
}
|
||||
} else {
|
||||
Page<GuildPolicy2MemberAdminVo> voPage = guildDiamondStatisticsPolicy2SettleService.listByStatDate(startDate, partitionId, guildId, uid, pageNo, pageSize);
|
||||
pageResult = new PageResult<>(voPage);
|
||||
}
|
||||
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
|
@@ -114,4 +114,5 @@ public class GuildConstant {
|
||||
|
||||
public static final BigDecimal USD_WITHDRAW_RATE = BigDecimal.valueOf(0.06D);
|
||||
|
||||
public static final int GUILD_POLICY2_VALID_DAY_MINUTES = 120;
|
||||
}
|
||||
|
@@ -0,0 +1,63 @@
|
||||
package com.accompany.business.model.guildpolicy2;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 公会钻石流水结算实体类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@Data
|
||||
public class GuildDiamondStatisticsPolicy2Settle implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
private String cycleDate;
|
||||
private Integer partitionId;
|
||||
private Long guildMemberId;
|
||||
private Long uid;
|
||||
/**
|
||||
* 所属厅id
|
||||
*/
|
||||
private Integer guildId;
|
||||
/**
|
||||
* 钻石流水
|
||||
*/
|
||||
private BigDecimal diamondNum;
|
||||
/**
|
||||
* 有效上麦时长
|
||||
*/
|
||||
private Integer micMinutes;
|
||||
/**
|
||||
* 有效上麦天数
|
||||
*/
|
||||
private Integer micDay;
|
||||
/**
|
||||
* 主播薪资
|
||||
*/
|
||||
private BigDecimal anchorSalary;
|
||||
/**
|
||||
* 主播上麦薪资
|
||||
*/
|
||||
private BigDecimal anchorMicSalary;
|
||||
/**
|
||||
* 公会长薪资
|
||||
*/
|
||||
private BigDecimal ownerSalary;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
}
|
@@ -32,7 +32,8 @@ public interface GuildDiamondStatisticsPolicy2Mapper extends BaseMapper<GuildDia
|
||||
|
||||
BigDecimal getTotalDiamondInCycleGuildMember(@Param("cycleDate")String cycleDate, @Param("guildMemberId")Long guildMemberId);
|
||||
|
||||
List<GuildPolicy2MemberVo> listMemberData(@Param("cycleDate")String cycleDate, @Param("guildId")Integer guildId);
|
||||
List<GuildPolicy2MemberVo> listMemberData(@Param("cycleDate")String cycleDate, @Param("guildId")Integer guildId,
|
||||
@Param("validDayMinutes") Integer validDayMinutes);
|
||||
|
||||
List<GuildPolicy2PersonalVo> listPersonalDiamondData(@Param("cycleDate")String cycleDate, @Param("guildMemberId")Long guildMemberId);
|
||||
|
||||
@@ -41,7 +42,7 @@ public interface GuildDiamondStatisticsPolicy2Mapper extends BaseMapper<GuildDia
|
||||
@Param("guildId") Integer guildId, @Param("uid") Long uid,
|
||||
@Param("partitionId") Integer partitionId, @Param("regionId") Integer regionId);
|
||||
|
||||
Page<GuildDiamondStatisticsDayVo> listByStatDate4OldPolicy(@Param("ipage") Page<GuildDiamondStatisticsDayVo> ipage,
|
||||
Page<GuildDiamondStatisticsDayVo> listByStatDate4Policy2(@Param("ipage") Page<GuildDiamondStatisticsDayVo> ipage,
|
||||
@Param("startDate")String startDate, @Param("endDate")String endDate,
|
||||
@Param("guildId") Integer guildId,
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@@ -51,7 +52,8 @@ public interface GuildDiamondStatisticsPolicy2Mapper extends BaseMapper<GuildDia
|
||||
Page<GuildPolicy2MemberAdminVo> listByStatDate(@Param("ipage") Page<GuildPolicy2MemberAdminVo> ipage,
|
||||
@Param("startDate")String startDate, @Param("endDate")String endDate,
|
||||
@Param("guildId") Integer guildId, @Param("uid") Long uid,
|
||||
@Param("partitionId") Integer partitionIdd);
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@Param("validDayMinutes") Integer validDayMinutes);
|
||||
|
||||
|
||||
List<GuildPolicy2ClearDiamondDto> listClearDaimondData(@Param("partitionId")Integer partitionId);
|
||||
|
@@ -0,0 +1,27 @@
|
||||
package com.accompany.business.mybatismapper.guildpolicy2;
|
||||
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2Settle;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公会钻石流水结算 Mapper 接口
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
public interface GuildDiamondStatisticsPolicy2SettleMapper extends BaseMapper<GuildDiamondStatisticsPolicy2Settle> {
|
||||
|
||||
List<GuildDiamondStatisticsPolicy2Settle> settleByCycleDate(@Param("cycleDate") String cycleDate,
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@Param("validDayMinutes") Integer validDayMinutes);
|
||||
|
||||
Page<GuildPolicy2MemberAdminVo> listByStatDate(@Param("ipage") Page<GuildPolicy2MemberAdminVo> ipage,
|
||||
@Param("startDate")String startDate,
|
||||
@Param("guildId") Integer guildId, @Param("uid") Long uid,
|
||||
@Param("partitionId") Integer partitionId);
|
||||
}
|
@@ -18,6 +18,8 @@ import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static com.accompany.business.constant.guild.GuildConstant.GUILD_POLICY2_VALID_DAY_MINUTES;
|
||||
|
||||
/**
|
||||
* 公会钻石流水统计按天 服务实现类
|
||||
*
|
||||
@@ -41,7 +43,7 @@ public class GuildDiamondStatisticsPolicy2Service extends ServiceImpl<GuildDiamo
|
||||
}
|
||||
|
||||
public List<GuildPolicy2MemberVo> listMemberData(String cycleDate, Integer guildId) {
|
||||
return baseMapper.listMemberData(cycleDate, guildId);
|
||||
return baseMapper.listMemberData(cycleDate, guildId, GUILD_POLICY2_VALID_DAY_MINUTES);
|
||||
}
|
||||
|
||||
public List<GuildPolicy2PersonalVo> listPersonalDiamondData(String cycleDate, Long guildMemberId) {
|
||||
@@ -55,16 +57,16 @@ public class GuildDiamondStatisticsPolicy2Service extends ServiceImpl<GuildDiamo
|
||||
return baseMapper.listMemberByStatDate(page, statDate, endDate, guildId, uid, partitionId, regionId);
|
||||
}
|
||||
|
||||
public Page<GuildDiamondStatisticsDayVo> listByStatDate4OldPolicy(String statDate, String endDate, Integer partitionId, Integer regionId,
|
||||
public Page<GuildDiamondStatisticsDayVo> listByStatDate4Policy2(String statDate, String endDate, Integer partitionId, Integer regionId,
|
||||
Integer guildId, Integer pageNo, Integer pageSize, Long inviteUid) {
|
||||
Page<GuildDiamondStatisticsDayVo> page = new Page<>(pageNo, pageSize);
|
||||
return baseMapper.listByStatDate4OldPolicy(page, statDate, endDate, guildId, partitionId, regionId, inviteUid);
|
||||
return baseMapper.listByStatDate4Policy2(page, statDate, endDate, guildId, partitionId, regionId, inviteUid);
|
||||
}
|
||||
|
||||
public Page<GuildPolicy2MemberAdminVo> listByStatDate(String statDate, String endDate, Integer partitionId,
|
||||
Integer guildId, Long uid, Integer pageNo, Integer pageSize) {
|
||||
Page<GuildPolicy2MemberAdminVo> page = new Page<>(pageNo, pageSize);
|
||||
return baseMapper.listByStatDate(page, statDate, endDate, guildId, uid, partitionId);
|
||||
return baseMapper.listByStatDate(page, statDate, endDate, guildId, uid, partitionId, GUILD_POLICY2_VALID_DAY_MINUTES);
|
||||
}
|
||||
|
||||
public List<GuildPolicy2ClearDiamondDto> listClearDaimondData(Integer partitionId) {
|
||||
|
@@ -0,0 +1,34 @@
|
||||
package com.accompany.business.service.guildpolicy2;
|
||||
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2Settle;
|
||||
import com.accompany.business.mybatismapper.guildpolicy2.GuildDiamondStatisticsPolicy2SettleMapper;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.accompany.business.constant.guild.GuildConstant.GUILD_POLICY2_VALID_DAY_MINUTES;
|
||||
|
||||
/**
|
||||
* 公会钻石流水结算 服务实现类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-09
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class GuildDiamondStatisticsPolicy2SettleService extends ServiceImpl<GuildDiamondStatisticsPolicy2SettleMapper, GuildDiamondStatisticsPolicy2Settle> {
|
||||
|
||||
public List<GuildDiamondStatisticsPolicy2Settle> settleByCycleDate(String cycleDate, Integer partitionId) {
|
||||
return baseMapper.settleByCycleDate(cycleDate, partitionId, GUILD_POLICY2_VALID_DAY_MINUTES);
|
||||
}
|
||||
|
||||
public Page<GuildPolicy2MemberAdminVo> listByStatDate(String cycleDate, Integer partitionId,
|
||||
Integer guildId, Long uid, Integer pageNo, Integer pageSize) {
|
||||
Page<GuildPolicy2MemberAdminVo> page = new Page<>(pageNo, pageSize);
|
||||
return baseMapper.listByStatDate(page, cycleDate, guildId, uid, partitionId);
|
||||
}
|
||||
}
|
@@ -5,6 +5,8 @@ import com.accompany.business.constant.guild.GuildConstant;
|
||||
import com.accompany.business.dto.guild.GuildPolicy2ClearDiamondDto;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondClearPolicy2;
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2Settle;
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondWagePolicy2;
|
||||
import com.accompany.business.service.guild.GuildAuthService;
|
||||
import com.accompany.business.service.guild.GuildMemberService;
|
||||
import com.accompany.business.service.guild.GuildMemberWeekLevelRewardV2Service;
|
||||
@@ -67,7 +69,10 @@ public class GuildPolicy2Service {
|
||||
private GuildCrystalSettlementService guildCrystalSettlementService;
|
||||
@Autowired
|
||||
private GuildMemberWeekLevelRewardV2Service guildMemberWeekLevelRewardV2Service;
|
||||
|
||||
@Autowired
|
||||
private GuildDiamondWagePolicy2Service guildDiamondWagePolicy2Service;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsPolicy2SettleService guildDiamondStatisticsPolicy2SettleService;
|
||||
public BusiResult<GuildPolicy2Vo> getGuildPolicy2(Long uid, String cycleBeginDate) {
|
||||
GuildPolicy2Vo guildPolicy2Vo = new GuildPolicy2Vo();
|
||||
guildPolicy2Vo.setCycleDate(cycleBeginDate);
|
||||
@@ -282,6 +287,34 @@ public class GuildPolicy2Service {
|
||||
}
|
||||
}
|
||||
|
||||
public void settle(PartitionEnum partitionEnum, String cycleDate) {
|
||||
if (!GUILD_POLICY2.equals(partitionEnum.getClanMode())) {
|
||||
log.info("GuildPolicy2Service.settle partitionEnum:{}, clanMode:{} cycleDate:{}", partitionEnum, partitionEnum.getClanMode(), cycleDate);
|
||||
return;
|
||||
}
|
||||
int partitionId = partitionEnum.getId();
|
||||
List<GuildDiamondStatisticsPolicy2Settle> list = guildDiamondStatisticsPolicy2SettleService.settleByCycleDate(cycleDate, partitionId);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
log.info("Policy2Settle.emptyData");
|
||||
return;
|
||||
}
|
||||
Date date = new Date();
|
||||
TreeMap<BigDecimal, GuildDiamondWagePolicy2> diamondWageMap = guildDiamondWagePolicy2Service.getDiamondWageMap(partitionId);
|
||||
for (GuildDiamondStatisticsPolicy2Settle settle : list) {
|
||||
settle.setCreateTime(date);
|
||||
settle.setUpdateTime(date);
|
||||
settle.setCycleDate(cycleDate);
|
||||
GuildDiamondWagePolicy2 diamondWagePolicy2 = guildDiamondWagePolicy2Service.calDiamondWageVo(diamondWageMap, settle.getDiamondNum(), settle.getMicDay());
|
||||
if (diamondWagePolicy2 == null) {
|
||||
continue;
|
||||
}
|
||||
settle.setAnchorSalary(diamondWagePolicy2.getAnchorDiamondSalary());
|
||||
settle.setOwnerSalary(diamondWagePolicy2.getOwnerSalary());
|
||||
settle.setAnchorMicSalary(diamondWagePolicy2.getAnchorMicSalary());
|
||||
}
|
||||
guildDiamondStatisticsPolicy2SettleService.saveBatch(list);
|
||||
}
|
||||
|
||||
public void clearGuildCrystal(PartitionEnum partitionEnum, Date lastMonthDate) {
|
||||
if (!Constant.ClanMode.GUILD_POLICY2.equals(partitionEnum.getClanMode())) {
|
||||
return;
|
||||
|
@@ -43,7 +43,7 @@
|
||||
where cycle_date = #{cycleDate}
|
||||
GROUP BY guild_member_id) gdsp on gm.id = gdsp.guild_member_id
|
||||
left join
|
||||
(select guild_member_id, COUNT(DISTINCT CASE WHEN mic_minutes >= 120 THEN stat_date END) micDay
|
||||
(select guild_member_id, COUNT(DISTINCT CASE WHEN mic_minutes >= #{validDayMinutes} THEN stat_date END) micDay
|
||||
from guild_mic_statistics_policy2
|
||||
where cycle_date = #{cycleDate} GROUP BY guild_member_id) gmp on gmp.guild_member_id = gm.id
|
||||
left join users u on u.uid = gm.uid
|
||||
@@ -106,7 +106,7 @@
|
||||
ORDER BY gm.`enable` desc, diamondNum desc, gm.guild_id desc
|
||||
</select>
|
||||
|
||||
<select id="listByStatDate4OldPolicy" resultType="com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo">
|
||||
<select id="listByStatDate4Policy2" resultType="com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo">
|
||||
select gd.guild_id guildId,
|
||||
ANY_VALUE(g.name) guildName,
|
||||
sum(gd.diamond_num) diamondNum,
|
||||
@@ -157,7 +157,7 @@
|
||||
where stat_date >= #{startDate} and stat_date <= #{endDate}
|
||||
GROUP BY guild_member_id) gd on gm.id = gd.guild_member_id
|
||||
left join
|
||||
(select guild_member_id, sum(mic_minutes) mic_minutes,COUNT(DISTINCT CASE WHEN mic_minutes >= 120 THEN stat_date END) micDay
|
||||
(select guild_member_id, sum(mic_minutes) mic_minutes,COUNT(DISTINCT CASE WHEN mic_minutes >= #{validDayMinutes} THEN stat_date END) micDay
|
||||
from guild_mic_statistics_policy2
|
||||
where stat_date >= #{startDate} and stat_date <= #{endDate}
|
||||
GROUP BY guild_member_id) gmp on gmp.guild_member_id = gm.id
|
||||
|
@@ -0,0 +1,62 @@
|
||||
<?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.guildpolicy2.GuildDiamondStatisticsPolicy2SettleMapper">
|
||||
<select id="settleByCycleDate" resultType="com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2Settle">
|
||||
select
|
||||
gm.partition_id partitionId,
|
||||
gm.id guildMemberId,
|
||||
gm.uid uid,
|
||||
gm.guild_id guildId,
|
||||
ifnull(gd.diamond_num, 0) diamondNum,
|
||||
ifnull(gmp.mic_minutes, 0) micMinutes,
|
||||
ifnull(gmp.micDay, 0) AS micDay
|
||||
from guild_member gm
|
||||
left join
|
||||
(select guild_member_id, sum(diamond_num) diamond_num
|
||||
from guild_diamond_statistics_policy2
|
||||
where cycle_date = #{cycleDate}
|
||||
GROUP BY guild_member_id) gd on gm.id = gd.guild_member_id
|
||||
left join
|
||||
(select guild_member_id, sum(mic_minutes) mic_minutes,COUNT(DISTINCT CASE WHEN mic_minutes >= #{validDayMinutes} THEN stat_date END) micDay
|
||||
from guild_mic_statistics_policy2
|
||||
where cycle_date = #{cycleDate}
|
||||
GROUP BY guild_member_id) gmp on gmp.guild_member_id = gm.id
|
||||
left join guild g on g.id = gm.guild_id
|
||||
where gm.`enable` = 1
|
||||
and gm.partition_id = #{partitionId}
|
||||
group by gm.id
|
||||
</select>
|
||||
|
||||
<select id="listByStatDate" resultType="com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo">
|
||||
select
|
||||
gm.id guildMemberId,
|
||||
gm.guild_id guildId,
|
||||
ANY_VALUE(g.name) guildName,
|
||||
ANY_VALUE(u.erban_no) ownerErbanNo,
|
||||
ANY_VALUE(um.erban_no) erbanNo,
|
||||
ANY_VALUE(um.nick) nick,
|
||||
ifnull(gm.diamond_num, 0) diamondNum,
|
||||
ifnull(gm.mic_minutes, 0) micMinutes,
|
||||
ifnull(gm.mic_day, 0) AS micDay,
|
||||
ifnull(gm.anchor_salary, 0) AS anchorDiamondSalary,
|
||||
ifnull(gm.anchor_mic_salary, 0) AS anchorMicSalary,
|
||||
ifnull(gm.owner_salary, 0) AS ownerSalary
|
||||
from guild_diamond_statistics_policy2_settle gm
|
||||
left join users um on um.uid = gm.uid
|
||||
left join guild g on g.id = gm.guild_id
|
||||
left join users u on u.uid = g.owner_uid
|
||||
<where>
|
||||
<if test="partitionId != null">
|
||||
and gm.partition_id = #{partitionId}
|
||||
</if>
|
||||
<if test="guildId != null">
|
||||
and gm.guild_id = #{guildId}
|
||||
</if>
|
||||
<if test="uid != null">
|
||||
and gm.uid = #{uid}
|
||||
</if>
|
||||
</where>
|
||||
group by gm.id
|
||||
ORDER BY diamondNum desc
|
||||
</select>
|
||||
</mapper>
|
@@ -61,4 +61,11 @@ public class GuildPolicy2Controller {
|
||||
guildPolicy2Service.clearDiamond(PartitionEnum.getByPartitionId(partitionId), DateUtil.parseDateTime(date));
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
@Authorization
|
||||
@GetMapping("/settle")
|
||||
public BusiResult<List<CycleDateVo>> settle(Integer partitionId, String cycleDate) {
|
||||
guildPolicy2Service.settle(PartitionEnum.getByPartitionId(partitionId), cycleDate);
|
||||
return BusiResult.success();
|
||||
}
|
||||
}
|
||||
|
@@ -30,15 +30,26 @@ public class GuildPolicy2SettlementTask {
|
||||
public void guildPolicy2ClearDiamond() {
|
||||
Date date = new Date();
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.TURKEY);
|
||||
Date lastMonth = DateUtil.offsetMonth(date, -1);
|
||||
for (PartitionEnum partitionEnum : partitionEnumList) {
|
||||
try {
|
||||
Date lastMonth = DateUtil.offsetMonth(date, -1);
|
||||
log.info("=-=GuildPolicy2ClearDiamondTask=-=:begin");
|
||||
guildPolicy2Service.clearDiamond(partitionEnum, lastMonth);
|
||||
log.info("=-=GuildPolicy2ClearDiamondTask=-= end");
|
||||
} catch (Exception e) {
|
||||
log.error("[GuildPolicy2ClearDiamondTask] 异常", e);
|
||||
}
|
||||
|
||||
try {
|
||||
String cycleDate = DateUtil.formatDate(lastMonth);
|
||||
log.info("=-=GuildPolicy2.settle=-=:begin");
|
||||
guildPolicy2Service.settle(partitionEnum, cycleDate);
|
||||
log.info("=-=GuildPolicy2.settle=-= end");
|
||||
} catch (Exception e) {
|
||||
log.error("[GuildPolicy2.settle] 异常", e);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user