diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/QyUserApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/QyUserApplicationService.java index ecbfaa3..ede561a 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/QyUserApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/QyUserApplicationService.java @@ -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(); diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/db/QyUserEntity.java b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/db/QyUserEntity.java index 86faff6..447b0e3 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/db/QyUserEntity.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/db/QyUserEntity.java @@ -152,6 +152,10 @@ public class QyUserEntity extends BaseEntity { @TableField("use_balance") private BigDecimal useBalance; + @ApiModelProperty("用户余额额度") + @TableField("balance_limit") + private BigDecimal balanceLimit; + @ApiModelProperty("系统角色id") @TableField("sys_role_id") private Long sysRoleId; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/db/QyUserMapper.java b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/db/QyUserMapper.java index 764f028..f37ea4c 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/db/QyUserMapper.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/db/QyUserMapper.java @@ -45,12 +45,12 @@ public interface QyUserMapper extends BaseMapper { "AND sr.role_key = 'admin'") List 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); diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/dto/QyUserDTO.java b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/dto/QyUserDTO.java index 0205105..c40de7b 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/dto/QyUserDTO.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/dto/QyUserDTO.java @@ -109,6 +109,9 @@ public class QyUserDTO { @ExcelColumn(name = "已使用用户余额") private BigDecimal useBalance; + @ExcelColumn(name = "用户余额额度") + private BigDecimal balanceLimit; + @ExcelColumn(name = "系统角色ID") private Long sysRoleId; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/dto/QyUserStatsDTO.java b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/dto/QyUserStatsDTO.java index 21e4c69..b85f951 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/dto/QyUserStatsDTO.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/user/dto/QyUserStatsDTO.java @@ -9,9 +9,12 @@ import java.math.BigDecimal; @Setter public class QyUserStatsDTO { - // 用户余额 + // 用户剩余余额 private BigDecimal balance; // 已使用余额 private BigDecimal useBalance; + + // 余额额度 + private BigDecimal balanceLimit; } diff --git a/sql/20250520_goods.sql b/sql/20250520_goods.sql index 378c0c7..e2440fa 100644 --- a/sql/20250520_goods.sql +++ b/sql/20250520_goods.sql @@ -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`; \ No newline at end of file +AFTER `balance`; + +ALTER TABLE `qy_user` +ADD COLUMN `balance_limit` DECIMAL(15,2) NOT NULL DEFAULT '0.00' COMMENT '余额额度' +AFTER `use_balance`; \ No newline at end of file