salaryType 位置迁移,settlementTask 引用更改

This commit is contained in:
tianfeng 2025-12-15 14:34:01 +08:00
parent 92d91ae4e6
commit 661ecf7556
19 changed files with 48 additions and 56 deletions

View File

@ -1,4 +1,4 @@
package com.red.circle.wallet.domain.salary;
package com.red.circle.wallet.inner.model.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.red.circle.wallet.domain.salary;
package com.red.circle.wallet.inner.model.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,5 +1,7 @@
package com.red.circle.other.app.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.common.business.dto.cmd.AppExtCommand;
import com.red.circle.other.app.command.bd.query.BdTeamSummaryQryExe;
@ -13,12 +15,17 @@ import com.red.circle.other.infra.database.mongo.entity.bd.BdSalarySettlementRec
import com.red.circle.other.infra.database.mongo.service.bd.AdminSalaryPolicyService;
import com.red.circle.other.infra.database.mongo.service.bd.AdminSalarySettlementRecordService;
import com.red.circle.other.infra.database.mongo.service.bd.BdSalarySettlementRecordService;
import com.red.circle.other.infra.database.rds.dao.sys.AdministratorDAO;
import com.red.circle.other.infra.database.rds.entity.sys.Administrator;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorService;
import com.red.circle.other.infra.enums.AdminPolicyType;
import com.red.circle.other.infra.enums.BdSettlementStatus;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.sequence.IdWorkerUtils;
import com.red.circle.wallet.inner.endpoint.salary.UserSalaryAccountClient;
import com.red.circle.wallet.inner.model.cmd.SalaryIssueInnerCmd;
import com.red.circle.wallet.inner.model.enums.SalaryEvent;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -46,13 +53,15 @@ public class AdminSalarySettlementServiceImpl implements AdminSalarySettlementSe
private final BdTeamSummaryQryExe bdTeamSummaryQryExe;
private final RechargeUserService rechargeUserService;
private final UserSalaryAccountClient userSalaryAccountClient;
private final AdministratorDAO administratorDAO;
@Override
public void processAllAdminSettlement(Integer billBelong, String billTitle) {
log.warn("开始处理所有管理员工资结算,结算周期:{}", billBelong);
// TODO: 查询所有管理员列表
List<Long> adminUserIds = List.of(); // 需要从数据库查询所有管理员ID
LambdaQueryWrapper<Administrator> eq = Wrappers.<Administrator>lambdaQuery().eq(Administrator::getStatus, Boolean.TRUE);
List<Administrator> administrators = administratorDAO.selectList(eq);
List<Long> adminUserIds = administrators.stream().map(Administrator::getUserId).toList();
if (CollectionUtils.isEmpty(adminUserIds)) {
log.warn("没有找到任何管理员数据");
@ -141,7 +150,7 @@ public class AdminSalarySettlementServiceImpl implements AdminSalarySettlementSe
// 6. 如果工资大于 0则发放工资
if (record.getTotalSalary().compareTo(BigDecimal.ZERO) > 0) {
try {
issueSalary(adminUserId, record);
// issueSalary(adminUserId, record);
log.info("管理员 {} 工资发放成功,金额:{} USD", adminUserId, record.getTotalSalary());
} catch (Exception e) {
log.error("管理员 {} 工资发放失败", adminUserId, e);
@ -367,8 +376,8 @@ public class AdminSalarySettlementServiceImpl implements AdminSalarySettlementSe
innerCmd.setBillBelong(record.getBillBelong());
innerCmd.setUserId(adminUserId);
innerCmd.setSysOrigin(record.getSysOrigin());
innerCmd.setSalaryType("ADMIN_SALARY");
innerCmd.setEventDesc("SALARY_ADMIN");
innerCmd.setSalaryType(SalaryType.ADMIN_SALARY.getCode());
innerCmd.setEventDesc(SalaryEvent.SALARY_ADMIN.getCode());
innerCmd.setAmount(record.getTotalSalary());
innerCmd.setTrackId(record.getId());
innerCmd.setBdId(adminUserId);

View File

@ -1,6 +1,5 @@
package com.red.circle.other.app.service;
import com.red.circle.common.business.core.enums.ReceiptType;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.other.app.dto.clientobject.BdLeaderSalarySettlementCO;
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
@ -14,19 +13,15 @@ import com.red.circle.other.infra.database.mongo.service.bd.BdLeaderSalaryPolicy
import com.red.circle.other.infra.database.mongo.service.bd.BdLeaderSalarySettlementRecordService;
import com.red.circle.other.infra.database.mongo.service.bd.BdSalarySettlementRecordService;
import com.red.circle.other.infra.database.rds.entity.team.BusinessDevelopmentBaseInfo;
import com.red.circle.other.infra.database.rds.entity.team.BusinessDevelopmentTeam;
import com.red.circle.other.infra.database.rds.service.team.BusinessDevelopmentBaseInfoService;
import com.red.circle.other.infra.database.rds.service.team.BusinessDevelopmentTeamService;
import com.red.circle.tool.core.collection.CollectionUtils;
import com.red.circle.tool.core.date.TimestampUtils;
import com.red.circle.tool.core.sequence.IdWorkerUtils;
import com.red.circle.wallet.inner.endpoint.bank.UserBankBalanceClient;
import com.red.circle.wallet.inner.endpoint.bank.UserBankRunningWaterClient;
import com.red.circle.wallet.inner.endpoint.salary.UserSalaryAccountClient;
import com.red.circle.wallet.inner.model.cmd.SalaryIssueInnerCmd;
import com.red.circle.wallet.inner.model.cmd.UserBankBalanceIncrCmd;
import com.red.circle.wallet.inner.model.dto.UserBankRunningWaterDTO;
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryEvent;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -267,8 +262,8 @@ public class BdLeaderSalarySettlementServiceImpl implements BdLeaderSalarySettle
innerCmd.setBillBelong(record.getBillBelong());
innerCmd.setUserId(bdLeaderUserId);
innerCmd.setSysOrigin(record.getSysOrigin());
innerCmd.setSalaryType("BD_LEADER_SALARY");
innerCmd.setEventDesc("SALARY_BD_LEADER");
innerCmd.setSalaryType(SalaryType.ADMIN_SALARY.getCode());
innerCmd.setEventDesc(SalaryEvent.SALARY_BD_LEADER.getCode());
innerCmd.setAmount(record.getSettlementSalary());
innerCmd.setTrackId(record.getId());
innerCmd.setBdId(bdLeaderUserId);

View File

@ -32,6 +32,8 @@ import com.red.circle.wallet.inner.endpoint.salary.UserSalaryAccountClient;
import com.red.circle.wallet.inner.model.cmd.SalaryIssueInnerCmd;
import com.red.circle.wallet.inner.model.cmd.UserBankBalanceIncrCmd;
import com.red.circle.wallet.inner.model.dto.UserBankRunningWaterDTO;
import com.red.circle.wallet.inner.model.enums.SalaryEvent;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -444,8 +446,8 @@ public class BdSalarySettlementServiceImpl implements BdSalarySettlementService
innerCmd.setBillBelong(record.getBillBelong());
innerCmd.setUserId(bdUserId);
innerCmd.setSysOrigin(record.getSysOrigin());
innerCmd.setSalaryType("BD_SALARY");
innerCmd.setEventDesc("SALARY_BD");
innerCmd.setSalaryType(SalaryType.ADMIN_SALARY.getCode());
innerCmd.setEventDesc(SalaryEvent.SALARY_BD.getCode());
innerCmd.setAmount(record.getSettlementSalary());
innerCmd.setTrackId(record.getId());
innerCmd.setBdId(bdUserId);

View File

@ -1,4 +1,5 @@
import com.red.circle.OtherServiceApplication;
import com.red.circle.other.app.scheduler.AdminSalarySettlementTask;
import com.red.circle.other.app.scheduler.BdLeaderSalarySettlementTask;
import com.red.circle.other.app.scheduler.BdSalarySettlementTask;
import com.red.circle.other.app.scheduler.TeamBillTask;
@ -33,6 +34,8 @@ public class BdSettlementTest {
@Autowired
private BdLeaderSalarySettlementTask bdLeaderSalarySettlementTask;
@Autowired
private AdminSalarySettlementTask adminSalarySettlementTask;
@Autowired
private BdSalaryPolicyService bdSalaryPolicyService;
@Autowired
private MongoTemplate mongoTemplate;
@ -62,6 +65,11 @@ public class BdSettlementTest {
}
@Test
public void testAdminSettlement() {
adminSalarySettlementTask.processAdminSalarySettlementTest(TeamBillCycleUtils.getCalcBillBelong());
}
@Test
public void testIssueSalary() {
// Long bdUserId = 1963790037740466178L;

View File

@ -6,14 +6,12 @@ import com.red.circle.framework.web.controller.BaseController;
import com.red.circle.wallet.app.dto.clientobject.*;
import com.red.circle.wallet.app.dto.cmd.*;
import com.red.circle.wallet.app.service.SalaryAccountService;
import com.red.circle.wallet.domain.salary.SalaryType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**

View File

@ -20,10 +20,10 @@ import com.red.circle.tool.core.tuple.PennyAmount;
import com.red.circle.wallet.app.dto.clientobject.UserBankWithdrawResultCO;
import com.red.circle.wallet.app.dto.cmd.UserBankWithdrawCmd;
import com.red.circle.wallet.domain.gateway.SalaryAccountGateway;
import com.red.circle.wallet.domain.salary.SalaryEvent;
import com.red.circle.wallet.inner.model.enums.SalaryEvent;
import com.red.circle.wallet.domain.salary.SalaryReceipt;
import com.red.circle.wallet.domain.salary.SalaryReceiptRes;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.infra.database.cache.service.WalletBankCacheService;
import com.red.circle.wallet.infra.database.mongo.dto.UserBankWithdrawMoneyApprovalProcess;
import com.red.circle.wallet.infra.database.mongo.dto.WithdrawMoneyApprovalProcessStatus;

View File

@ -4,7 +4,6 @@ import com.red.circle.common.business.core.enums.OpUserType;
import com.red.circle.common.business.core.enums.ReceiptType;
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.common.business.enums.SendPropsOrigin;
import com.red.circle.component.mq.MessageEventProcess;
import com.red.circle.component.redis.service.RedisService;
import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.framework.core.response.CommonErrorCode;
@ -13,16 +12,12 @@ import com.red.circle.framework.dto.ResultResponse;
import com.red.circle.order.inner.endpoint.UserFreightRechargeRecordClient;
import com.red.circle.order.inner.endpoint.UserRechargeCountClient;
import com.red.circle.order.inner.model.enums.MonthlyRechargeType;
import com.red.circle.other.inner.endpoint.activity.CumulativeRechargeClient;
import com.red.circle.other.inner.endpoint.activity.PropsActivityClient;
import com.red.circle.other.inner.endpoint.sys.EnumConfigClient;
import com.red.circle.other.inner.endpoint.team.target.UserBillDiamondBalanceClient;
import com.red.circle.other.inner.endpoint.user.region.UserRegionClient;
import com.red.circle.other.inner.endpoint.user.user.*;
import com.red.circle.other.inner.enums.activity.PropsActivityTypeEnum;
import com.red.circle.other.inner.model.cmd.activity.SendActivityRewardCmd;
import com.red.circle.other.inner.model.dto.activity.props.ActivityPropsRule;
import com.red.circle.other.inner.model.dto.agency.agency.BillDiamondBalanceDTO;
import com.red.circle.other.inner.model.dto.user.SysExchangeGoldTipDTO;
import com.red.circle.other.inner.model.dto.user.UserOneTimeTaskDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
@ -33,38 +28,25 @@ import com.red.circle.tool.core.tuple.PennyAmount;
import com.red.circle.wallet.app.convertor.SalaryAccountConvertor;
import com.red.circle.wallet.app.dto.clientobject.UserBankExchangeGoldResultCO;
import com.red.circle.wallet.app.dto.cmd.SalaryWithdrawCmd;
import com.red.circle.wallet.app.dto.cmd.UserBankExchangeGoldCmd;
import com.red.circle.wallet.app.dto.cmd.UserBillExchangeGoldCmd;
import com.red.circle.wallet.app.service.SalaryAccountService;
import com.red.circle.wallet.domain.gateway.SalaryAccountGateway;
import com.red.circle.wallet.domain.gateway.WalletGoldGateway;
import com.red.circle.wallet.domain.salary.SalaryReceipt;
import com.red.circle.wallet.domain.salary.SalaryReceiptRes;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.domain.wallet.WalletReceipt;
import com.red.circle.wallet.infra.database.mongo.entity.bank.UserBankRunningWater;
import com.red.circle.wallet.infra.database.mongo.entity.bank.UserBankWithdrawGoldApply;
import com.red.circle.wallet.infra.database.mongo.service.bank.UserBankBalanceService;
import com.red.circle.wallet.infra.database.mongo.service.bank.UserBankRunningWaterService;
import com.red.circle.wallet.infra.database.mongo.service.bank.UserBankWithdrawGoldApplyService;
import com.red.circle.wallet.infra.database.rds.entity.diamond.SalaryDiamondBalance;
import com.red.circle.wallet.infra.database.rds.entity.diamond.SalaryDiamondRunningWater;
import com.red.circle.wallet.infra.database.rds.entity.freight.FreightBalanceRunningWater;
import com.red.circle.wallet.infra.database.rds.service.diamond.SalaryDiamondBalanceService;
import com.red.circle.wallet.infra.database.rds.service.diamond.SalaryDiamondRunningWaterService;
import com.red.circle.wallet.infra.database.rds.service.freight.FreightBalanceRunningWaterService;
import com.red.circle.wallet.infra.database.rds.service.freight.FreightBalanceService;
import com.red.circle.wallet.inner.error.WalletErrorCode;
import com.red.circle.wallet.inner.model.dto.BankBalanceDTO;
import com.red.circle.wallet.inner.model.enums.FreightBalanceOrigin;
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
import com.red.circle.wallet.inner.model.enums.GoldWithdrawAcceptAccount;
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
import lombok.RequiredArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;

View File

@ -9,21 +9,18 @@ import com.red.circle.framework.core.response.CommonErrorCode;
import com.red.circle.framework.core.response.ResponseErrorCode;
import com.red.circle.other.inner.endpoint.user.region.UserRegionClient;
import com.red.circle.other.inner.model.dto.user.SysExchangeGoldTipDTO;
import com.red.circle.tool.core.date.TimestampUtils;
import com.red.circle.tool.core.num.ArithmeticUtils;
import com.red.circle.tool.core.sequence.IdWorkerUtils;
import com.red.circle.tool.core.tuple.PennyAmount;
import com.red.circle.wallet.app.convertor.SalaryAccountConvertor;
import com.red.circle.wallet.app.dto.clientobject.UserBankWithdrawResultCO;
import com.red.circle.wallet.app.dto.cmd.SalaryWithdrawCmd;
import com.red.circle.wallet.app.dto.cmd.UserBankWithdrawTransferCmd;
import com.red.circle.wallet.domain.gateway.SalaryAccountGateway;
import com.red.circle.wallet.domain.gateway.WalletGoldGateway;
import com.red.circle.wallet.domain.salary.SalaryReceipt;
import com.red.circle.wallet.domain.salary.SalaryReceiptRes;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.domain.wallet.WalletReceipt;
import com.red.circle.wallet.infra.database.mongo.entity.bank.UserBankRunningWater;
import com.red.circle.wallet.infra.database.mongo.service.bank.UserBankBalanceService;
import com.red.circle.wallet.infra.database.mongo.service.bank.UserBankRunningWaterService;
import com.red.circle.wallet.infra.database.rds.entity.freight.FreightBalance;
@ -32,10 +29,8 @@ import com.red.circle.wallet.infra.database.rds.service.freight.FreightBalanceRu
import com.red.circle.wallet.infra.database.rds.service.freight.FreightBalanceService;
import com.red.circle.wallet.inner.error.FreightErrorCode;
import com.red.circle.wallet.inner.error.WalletErrorCode;
import com.red.circle.wallet.inner.model.dto.BankBalanceDTO;
import com.red.circle.wallet.inner.model.enums.FreightBalanceOrigin;
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
import com.red.circle.wallet.inner.model.enums.UserBankWaterEvent;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

View File

@ -2,7 +2,7 @@ package com.red.circle.wallet.app.command.salary.query;
import com.red.circle.wallet.app.convertor.SalaryAccountConvertor;
import com.red.circle.wallet.app.dto.clientobject.SalaryAccountBalanceCO;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountBalance;
import com.red.circle.wallet.infra.database.rds.service.salary.SalaryAccountBalanceService;
import java.math.BigDecimal;

View File

@ -1,7 +1,7 @@
package com.red.circle.wallet.app.command.salary.query;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountRunningWater;
import com.red.circle.wallet.infra.database.rds.service.salary.SalaryAccountRunningWaterService;
import lombok.RequiredArgsConstructor;

View File

@ -9,10 +9,10 @@ import com.red.circle.wallet.app.dto.clientobject.SalaryIssueResultCO;
import com.red.circle.wallet.app.dto.clientobject.SalaryRunningWaterCO;
import com.red.circle.wallet.app.dto.cmd.SalaryIssueCmd;
import com.red.circle.wallet.app.dto.cmd.SalaryWithdrawCmd;
import com.red.circle.wallet.domain.salary.SalaryEvent;
import com.red.circle.wallet.inner.model.enums.SalaryEvent;
import com.red.circle.wallet.domain.salary.SalaryReceipt;
import com.red.circle.wallet.domain.salary.SalaryReceiptRes;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountBalance;
import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountRunningWater;

View File

@ -10,7 +10,7 @@ import com.red.circle.wallet.app.command.salary.query.SalaryRunningWaterQryExe;
import com.red.circle.wallet.app.command.salary.query.SalaryTotalIncomeQryExe;
import com.red.circle.wallet.app.dto.clientobject.*;
import com.red.circle.wallet.app.dto.cmd.*;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

View File

@ -3,7 +3,7 @@ package com.red.circle.wallet.domain.gateway;
import com.red.circle.tool.core.tuple.PennyAmount;
import com.red.circle.wallet.domain.salary.SalaryReceipt;
import com.red.circle.wallet.domain.salary.SalaryReceiptRes;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
/**
* 工资账户 Gateway.

View File

@ -4,6 +4,9 @@ import com.red.circle.common.business.core.enums.OpUserType;
import com.red.circle.common.business.core.enums.ReceiptType;
import com.red.circle.tool.core.tuple.PennyAmount;
import java.time.LocalDateTime;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryEvent;
import lombok.Data;
import lombok.experimental.Accessors;

View File

@ -1,7 +1,7 @@
package com.red.circle.wallet.infra.database.rds.service.salary;
import com.red.circle.framework.mybatis.service.BaseService;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountBalance;
/**

View File

@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.red.circle.framework.mybatis.service.impl.BaseServiceImpl;
import com.red.circle.tool.core.sequence.IdWorkerUtils;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.infra.database.rds.dao.salary.SalaryAccountBalanceDAO;
import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountBalance;
import com.red.circle.wallet.infra.database.rds.service.salary.SalaryAccountBalanceService;

View File

@ -11,7 +11,7 @@ import com.red.circle.tool.core.tuple.PennyAmount;
import com.red.circle.wallet.domain.gateway.SalaryAccountGateway;
import com.red.circle.wallet.domain.salary.SalaryReceipt;
import com.red.circle.wallet.domain.salary.SalaryReceiptRes;
import com.red.circle.wallet.domain.salary.SalaryType;
import com.red.circle.wallet.inner.model.enums.SalaryType;
import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountBalance;
import com.red.circle.wallet.infra.database.rds.entity.salary.SalaryAccountRunningWater;
import com.red.circle.wallet.infra.database.rds.service.salary.SalaryAccountBalanceService;