feat(用户模块): 添加用户余额额度字段及相关逻辑

在用户表中新增balance_limit字段用于记录用户余额额度,并同步更新DTO、Entity及相关查询逻辑
修改用户更新逻辑,当只更新额度时自动计算剩余余额
更新统计查询SQL以包含额度字段的汇总
This commit is contained in:
dzq 2025-05-29 15:57:31 +08:00
parent 12fa1dce42
commit 1be43a1251
6 changed files with 21 additions and 4 deletions

View File

@ -75,6 +75,9 @@ public class QyUserApplicationService {
public void updateUser(UpdateQyUserCommand command) {
UserModel model = qyUserModelFactory.loadById(command.getId());
if (command.getBalanceLimit() != null && command.getBalance() == null) {
command.setBalance(command.getBalanceLimit().subtract(model.getUseBalance()));
}
model.loadUpdateCommand(command);
model.updateById();

View File

@ -152,6 +152,10 @@ public class QyUserEntity extends BaseEntity<QyUserEntity> {
@TableField("use_balance")
private BigDecimal useBalance;
@ApiModelProperty("用户余额额度")
@TableField("balance_limit")
private BigDecimal balanceLimit;
@ApiModelProperty("系统角色id")
@TableField("sys_role_id")
private Long sysRoleId;

View File

@ -45,12 +45,12 @@ public interface QyUserMapper extends BaseMapper<QyUserEntity> {
"AND sr.role_key = 'admin'")
List<String> selectAdminUserIds();
@Select("SELECT SUM(balance) AS balance, SUM(use_balance) AS useBalance " +
@Select("SELECT SUM(balance) AS balance, SUM(use_balance) AS useBalance, SUM(balance_limit) AS balanceLimit " +
"FROM qy_user " +
"WHERE deleted = 0")
QyUserStatsDTO selectTotalBalance();
@Select("SELECT SUM(balance) AS balance, SUM(use_balance) AS useBalance " +
@Select("SELECT SUM(balance) AS balance, SUM(use_balance) AS useBalance, SUM(balance_limit) AS balanceLimit " +
"FROM qy_user " +
"WHERE deleted = 0 AND corpid = #{corpid}")
QyUserStatsDTO selectTotalBalanceByCorpid(@Param("corpid") String corpid);

View File

@ -109,6 +109,9 @@ public class QyUserDTO {
@ExcelColumn(name = "已使用用户余额")
private BigDecimal useBalance;
@ExcelColumn(name = "用户余额额度")
private BigDecimal balanceLimit;
@ExcelColumn(name = "系统角色ID")
private Long sysRoleId;

View File

@ -9,9 +9,12 @@ import java.math.BigDecimal;
@Setter
public class QyUserStatsDTO {
// 用户余额
// 用户剩余余额
private BigDecimal balance;
// 已使用余额
private BigDecimal useBalance;
// 余额额度
private BigDecimal balanceLimit;
}

View File

@ -8,4 +8,8 @@ AFTER `balance`;
ALTER TABLE `qy_user`
ADD COLUMN `use_balance` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '已使用用户余额'
AFTER `balance`;
AFTER `balance`;
ALTER TABLE `qy_user`
ADD COLUMN `balance_limit` DECIMAL(15,2) NOT NULL DEFAULT '0.00' COMMENT '余额额度'
AFTER `use_balance`;