公会薪资流水-清钻石fixed
公会薪资流水-清钻石
This commit is contained in:
@@ -17,6 +17,7 @@ import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -42,6 +43,9 @@ public class GuildPolicy2AdminService {
|
||||
|
||||
public PageResult<GuildPolicy2MemberAdminVo> queryMemberPage(Long ownerErbanNo, Integer guildId, Long erbanNo,
|
||||
Integer partitionId, String startDate, String endDate, Integer pageNo, Integer pageSize) {
|
||||
if (StringUtils.isEmpty(startDate) || StringUtils.isEmpty(endDate)) {
|
||||
throw new AdminServiceException("请选择周期");
|
||||
}
|
||||
Long uid = null;
|
||||
if (erbanNo != null) {
|
||||
Users user = usersService.getUserByErbanNo(erbanNo);
|
||||
|
@@ -30,6 +30,7 @@ public enum BillDomainTypeEnum {
|
||||
USER_EVENT(23, "用户活动"),
|
||||
FIRST_CHARGE(24, "首充"),
|
||||
GAME_USD(25, "游戏薪资"),
|
||||
GUILD_POLICY2(25, "土耳其公会政策2"),
|
||||
;
|
||||
|
||||
private int value;
|
||||
|
@@ -267,6 +267,10 @@ public enum BillObjTypeEnum {
|
||||
PLUS_GAME_USD( 178, "官方增加游戏薪资", BillTypeEnum.IN, CurrencyEnum.GAME_USD, BillDomainTypeEnum.GAME_USD),
|
||||
|
||||
MIUNS_GAME_USD( 179, "官方扣除游戏薪资", BillTypeEnum.OUT, CurrencyEnum.GAME_USD, BillDomainTypeEnum.GAME_USD),
|
||||
|
||||
GUILD_POLICY2_SUB_GUILD_USD( 180, "土耳其公会结算扣除薪资", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_POLICY2),
|
||||
|
||||
GUILD_POLICY2_SUB_GOLDS( 181, "土耳其公会结算扣除钻石", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.GUILD_POLICY2),
|
||||
;
|
||||
|
||||
BillObjTypeEnum(int value, String desc, BillTypeEnum type, CurrencyEnum currency, BillDomainTypeEnum domain) {
|
||||
|
@@ -0,0 +1,47 @@
|
||||
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-08-13
|
||||
*/
|
||||
@Data
|
||||
public class GuildDiamondClearPolicy2 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 BigDecimal guildUsd;
|
||||
/**
|
||||
* 清理时间
|
||||
*/
|
||||
private Date createTime;
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
package com.accompany.business.vo.guildpolicy;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class GuildPolicy2ClearDiamondVo {
|
||||
|
||||
private Long guildMemberId;
|
||||
private Integer guildId;
|
||||
private Long uid;//用户id
|
||||
private Integer partitionId;//分区id
|
||||
private BigDecimal purseGolds;//钱包钻石数量
|
||||
private BigDecimal guildUsd;
|
||||
|
||||
}
|
@@ -16,6 +16,9 @@ public class GuildPolicy2MemberAdminVo {
|
||||
@ExcelProperty("公会id")
|
||||
@ApiModelProperty("公会id")
|
||||
private Integer guildId;
|
||||
@ExcelProperty("公会名称")
|
||||
@ApiModelProperty("公会名称")
|
||||
private String guildName;
|
||||
@ExcelProperty("公会长id")
|
||||
@ApiModelProperty("公会长id")
|
||||
private Long ownerErbanNo;
|
||||
|
@@ -0,0 +1,14 @@
|
||||
package com.accompany.business.mybatismapper.guildpolicy2;
|
||||
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondClearPolicy2;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 公会钻石清理记录 Mapper 接口
|
||||
*
|
||||
* @author
|
||||
* @since 2025-08-13
|
||||
*/
|
||||
public interface GuildDiamondClearPolicy2Mapper extends BaseMapper<GuildDiamondClearPolicy2> {
|
||||
|
||||
}
|
@@ -3,6 +3,7 @@ package com.accompany.business.mybatismapper.guildpolicy2;
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2;
|
||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
||||
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2ClearDiamondVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
|
||||
@@ -51,4 +52,7 @@ public interface GuildDiamondStatisticsPolicy2Mapper extends BaseMapper<GuildDia
|
||||
@Param("startDate")String startDate, @Param("endDate")String endDate,
|
||||
@Param("guildId") Integer guildId, @Param("uid") Long uid,
|
||||
@Param("partitionId") Integer partitionIdd);
|
||||
|
||||
|
||||
List<GuildPolicy2ClearDiamondVo> listClearDaimondData(@Param("partitionId")Integer partitionId);
|
||||
}
|
||||
|
@@ -0,0 +1,18 @@
|
||||
package com.accompany.business.service.guildpolicy2;
|
||||
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondClearPolicy2;
|
||||
import com.accompany.business.mybatismapper.guildpolicy2.GuildDiamondClearPolicy2Mapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 公会钻石清理记录 服务实现类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-08-13
|
||||
*/
|
||||
@Service
|
||||
public class GuildDiamondClearPolicy2Service extends ServiceImpl<GuildDiamondClearPolicy2Mapper, GuildDiamondClearPolicy2> {
|
||||
|
||||
|
||||
}
|
@@ -5,6 +5,7 @@ import com.accompany.business.model.guildpolicy2.GuildDiamondStatisticsPolicy2;
|
||||
import com.accompany.business.mybatismapper.guildpolicy2.GuildDiamondStatisticsPolicy2Mapper;
|
||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
||||
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2ClearDiamondVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberAdminVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2MemberVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
|
||||
@@ -66,4 +67,8 @@ public class GuildDiamondStatisticsPolicy2Service extends ServiceImpl<GuildDiamo
|
||||
return baseMapper.listByStatDate(page, statDate, endDate, guildId, uid, partitionId);
|
||||
}
|
||||
|
||||
public List<GuildPolicy2ClearDiamondVo> listClearDaimondData(Integer partitionId) {
|
||||
return baseMapper.listClearDaimondData(partitionId);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -3,29 +3,38 @@ package com.accompany.business.service.guildpolicy2;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.constant.guild.GuildConstant;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.model.guildpolicy2.GuildDiamondClearPolicy2;
|
||||
import com.accompany.business.service.guild.GuildAuthService;
|
||||
import com.accompany.business.service.guild.GuildMemberService;
|
||||
import com.accompany.business.service.purse.UserPurseService;
|
||||
import com.accompany.business.service.room.RoomMicService;
|
||||
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.GuildPolicy2ClearDiamondVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2Vo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.BillObjTypeEnum;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
|
||||
import static com.accompany.common.constant.Constant.ClanMode.GUILD_POLICY2;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@@ -42,6 +51,12 @@ public class GuildPolicy2Service {
|
||||
private GuildMicStatisticsPolicy2Service guildMicStatisticsPolicy2Service;
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private GuildDiamondClearPolicy2Service guildDiamondClearPolicy2Service;
|
||||
@Autowired
|
||||
private UserPurseService userPurseService;
|
||||
@Resource(name = "bizExecutor")
|
||||
private ThreadPoolExecutor bizExecutor;
|
||||
|
||||
public BusiResult<GuildPolicy2Vo> getGuildPolicy2(Long uid, String cycleBeginDate) {
|
||||
GuildPolicy2Vo guildPolicy2Vo = new GuildPolicy2Vo();
|
||||
@@ -132,4 +147,59 @@ public class GuildPolicy2Service {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void clearDiamond(PartitionEnum partitionEnum, Date lastMonthDate) {
|
||||
if (!GUILD_POLICY2.equals(partitionEnum.getClanMode())) {
|
||||
log.info("clearDiamond partitionEnum:{}, clanMode:{} lastMonthDate:{}", partitionEnum, partitionEnum.getClanMode(), lastMonthDate);
|
||||
return;
|
||||
}
|
||||
List<GuildPolicy2ClearDiamondVo> policy2ClearDiamondVos = guildDiamondStatisticsPolicy2Service.listClearDaimondData(partitionEnum.getId());
|
||||
if (CollectionUtils.isEmpty(policy2ClearDiamondVos)) {
|
||||
log.info("clearDiamond partitionEnum:{}, clanMode:{} lastMonthDate:{} no data", partitionEnum, partitionEnum.getClanMode(), lastMonthDate);
|
||||
return;
|
||||
}
|
||||
String cycleDate = DateUtil.formatDate(lastMonthDate);
|
||||
Date date = new Date();
|
||||
List<GuildDiamondClearPolicy2> clearDiamondVos = new ArrayList<>();
|
||||
for (GuildPolicy2ClearDiamondVo policy2ClearDiamondVo : policy2ClearDiamondVos) {
|
||||
GuildDiamondClearPolicy2 policy2 = new GuildDiamondClearPolicy2();
|
||||
policy2.setCycleDate(cycleDate);
|
||||
policy2.setGuildId(policy2ClearDiamondVo.getGuildId());
|
||||
policy2.setGuildMemberId(policy2ClearDiamondVo.getGuildMemberId());
|
||||
policy2.setUid(policy2ClearDiamondVo.getUid());
|
||||
policy2.setPartitionId(partitionEnum.getId());
|
||||
if (policy2ClearDiamondVo.getPurseGolds() == null) {
|
||||
policy2.setDiamondNum(BigDecimal.ZERO);
|
||||
} else {
|
||||
policy2.setDiamondNum(policy2ClearDiamondVo.getPurseGolds());
|
||||
}
|
||||
if (policy2ClearDiamondVo.getGuildUsd() == null) {
|
||||
policy2.setGuildUsd(BigDecimal.ZERO);
|
||||
} else {
|
||||
policy2.setGuildUsd(policy2ClearDiamondVo.getGuildUsd());
|
||||
}
|
||||
policy2.setCreateTime(date);
|
||||
policy2.setUpdateTime(date);
|
||||
clearDiamondVos.add(policy2);
|
||||
}
|
||||
guildDiamondClearPolicy2Service.saveOrUpdateBatch(clearDiamondVos);
|
||||
for (GuildDiamondClearPolicy2 clearDiamondVo : clearDiamondVos) {
|
||||
bizExecutor.execute(() -> {
|
||||
try {
|
||||
log.info("clearDiamond partitionEnum:{}, clearDiamondVo:{}", partitionEnum, JSONObject.toJSONString(clearDiamondVo));
|
||||
if (clearDiamondVo.getDiamondNum().compareTo(BigDecimal.ZERO) > 0) {
|
||||
userPurseService.clearGolds(clearDiamondVo.getUid(), clearDiamondVo.getDiamondNum().doubleValue(),
|
||||
BillObjTypeEnum.GUILD_POLICY2_SUB_GOLDS);
|
||||
}
|
||||
if (clearDiamondVo.getGuildUsd().compareTo(BigDecimal.ZERO) > 0) {
|
||||
userPurseService.clearGuildUsd(clearDiamondVo.getUid(), clearDiamondVo.getGuildUsd(),
|
||||
BillObjTypeEnum.GUILD_POLICY2_SUB_GUILD_USD);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("clearDiamond partitionEnum:{}, clearDiamondVo:{} error:{}", partitionEnum, JSONObject.toJSONString(clearDiamondVo), e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -44,7 +44,6 @@ import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -583,4 +582,64 @@ public class UserPurseService extends ServiceImpl<UserPurseMapper,UserPurse> {
|
||||
return purseInUids.stream().collect(Collectors.toMap(UserPurse::getUid,Function.identity()));
|
||||
}
|
||||
|
||||
|
||||
@Frozen
|
||||
@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager")
|
||||
public UserPurse clearGolds(Long uid, Double goldNum, BillObjTypeEnum objTypeEnum) {
|
||||
if (goldNum <= 0d) {
|
||||
throw new ServiceException(BusiStatus.AMOUNT_PARAM_ERROR);
|
||||
}
|
||||
String desc = objTypeEnum.getDesc();
|
||||
UserPurse after = withLock(uid, RedisKey.lock_user_gold, userPurse -> {
|
||||
double restGold = userPurse.getGolds() - goldNum;
|
||||
double subGolds = goldNum;
|
||||
if (restGold < 0d){
|
||||
subGolds = userPurse.getGolds();
|
||||
}
|
||||
|
||||
log.info("subGold 操作前,buss:{},userPurse:{}", desc, gson.toJson(userPurse));
|
||||
int ret = baseMapper.updateMinusGolds(uid,subGolds);
|
||||
boolean result = SqlHelper.retBool(ret);
|
||||
if(!result) {
|
||||
throw new ServiceException(BusiStatus.SERVERBUSY);
|
||||
}
|
||||
userPurse.setGolds(DoubleUtil.sub(userPurse.getGolds(), subGolds));
|
||||
userPurse.setUpdateTime(new Date());
|
||||
log.info("subGold 操作后,buss:{},userPurse:{}", desc, gson.toJson(userPurse));
|
||||
return userPurse;
|
||||
});
|
||||
billRecordService.insertGeneralBillRecord(uid, objTypeEnum, goldNum, after);
|
||||
return after;
|
||||
}
|
||||
|
||||
|
||||
@Frozen
|
||||
@Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager")
|
||||
public UserPurse clearGuildUsd(Long uid, BigDecimal guildUsdNum, BillObjTypeEnum objTypeEnum) {
|
||||
if (BigDecimal.ZERO.compareTo(guildUsdNum) > 0) {
|
||||
throw new ServiceException(BusiStatus.AMOUNT_PARAM_ERROR);
|
||||
}
|
||||
|
||||
String desc = objTypeEnum.getDesc();
|
||||
UserPurse after = withLock(uid, RedisKey.lock_user_guild_usd, userPurse -> {
|
||||
BigDecimal purseGuildUsd = BigDecimal.valueOf(userPurse.getGuildUsd());
|
||||
BigDecimal subGuildUsd = guildUsdNum;
|
||||
if (purseGuildUsd.compareTo(guildUsdNum) < 0){
|
||||
subGuildUsd = purseGuildUsd;
|
||||
}
|
||||
log.info("subGuildUsd 操作前,buss:{},userPurse:{}", desc, gson.toJson(userPurse));
|
||||
int ret = baseMapper.updateMinusGuildUsd(uid, subGuildUsd.doubleValue());
|
||||
boolean result = SqlHelper.retBool(ret);
|
||||
if (!result){
|
||||
throw new ServiceException(BusiStatus.SERVERBUSY);
|
||||
}
|
||||
BigDecimal afterGuildUsd = purseGuildUsd.subtract(subGuildUsd);
|
||||
userPurse.setGuildUsd(afterGuildUsd.doubleValue());
|
||||
userPurse.setUpdateTime(new Date());
|
||||
log.info("subGold 操作后,buss:{},userPurse:{}", desc, gson.toJson(userPurse));
|
||||
return userPurse;
|
||||
});
|
||||
billRecordService.insertGeneralBillRecord(uid, objTypeEnum, guildUsdNum.doubleValue(), after);
|
||||
return after;
|
||||
}
|
||||
}
|
||||
|
@@ -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.guildpolicy2.GuildDiamondClearPolicy2Mapper">
|
||||
|
||||
</mapper>
|
@@ -48,8 +48,8 @@
|
||||
<select id="listPersonalData" resultType="com.accompany.business.vo.guildpolicy.GuildPolicy2PersonalVo">
|
||||
select
|
||||
gdsp.stat_date as statDate,
|
||||
ifnull(sum(gdsp.diamond_num), 0) as diamondNum,
|
||||
gmp.mic_minutes as micMinute,
|
||||
ifnull(gdsp.diamond_num, 0) as diamondNum,
|
||||
ifnull(gmp.mic_minutes, 0) as micMinute,
|
||||
if(gmp.mic_minutes >= 120, 1, 0) as validMicDay
|
||||
from `guild_diamond_statistics_policy2` gdsp
|
||||
left join guild_mic_statistics_policy2 gmp on gmp.guild_member_id = gdsp.guild_member_id and gmp.cycle_date = #{cycleDate}
|
||||
@@ -135,6 +135,7 @@
|
||||
select
|
||||
gd.guild_member_id guildMemberId,
|
||||
gd.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,
|
||||
@@ -164,4 +165,17 @@
|
||||
ORDER BY diamondNum desc
|
||||
</select>
|
||||
|
||||
<select id="listClearDaimondData" resultType="com.accompany.business.vo.guildpolicy.GuildPolicy2ClearDiamondVo">
|
||||
select
|
||||
gm.uid as uid,
|
||||
gm.guild_id as guildId,
|
||||
gm.id as guildMemberId,
|
||||
gm.partition_id as partitionId,
|
||||
ifnull(up.golds, 0) as purseGolds,
|
||||
ifnull(up.guild_usd, 0) as guildUsd
|
||||
from guild_member gm
|
||||
left join user_purse up on gm.uid = up.uid
|
||||
where gm.partition_id = #{partitionId} and gm.`enable` = 1
|
||||
group by gm.uid
|
||||
</select>
|
||||
</mapper>
|
||||
|
@@ -1,11 +1,13 @@
|
||||
package com.accompany.business.controller.guildpolicy;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.service.guildpolicy2.GuildPolicy2Service;
|
||||
import com.accompany.business.service.room.GuildMemberRoomMicRecordService;
|
||||
import com.accompany.business.vo.guild.CycleDateVo;
|
||||
import com.accompany.business.vo.guildpolicy.GuildPolicy2Vo;
|
||||
import com.accompany.common.annotation.Authorization;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
@@ -53,4 +55,11 @@ public class GuildPolicy2Controller {
|
||||
guildMemberRoomMicRecordService.statMicRecordTask4GuildPolicy2();;
|
||||
return guildPolicy2Service.getCycleDates(uid);
|
||||
}
|
||||
|
||||
@Authorization
|
||||
@GetMapping("/clearDiamond")
|
||||
public BusiResult<List<CycleDateVo>> clearDiamond(Integer partitionId, String date) {
|
||||
guildPolicy2Service.clearDiamond(PartitionEnum.getByPartitionId(partitionId), DateUtil.parseDateTime(date));
|
||||
return BusiResult.success();
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,41 @@
|
||||
package com.accompany.scheduler.task.guild;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.service.guildpolicy2.GuildPolicy2Service;
|
||||
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.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class GuildPolicy2ClearDiamondTask {
|
||||
|
||||
@Autowired
|
||||
private GuildPolicy2Service guildPolicy2Service;
|
||||
|
||||
|
||||
/**
|
||||
* 公户月结算,用户明细
|
||||
* 每月1号凌晨0点0分15秒执行
|
||||
*/
|
||||
@Scheduled(cron = "15 0 0 1 * ?", zone = "Etc/GMT-3")
|
||||
public void guildPolicy2ClearDiamond() {
|
||||
Date date = new Date();
|
||||
List<PartitionEnum> partitionEnumList = List.of(PartitionEnum.TURKEY);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user