From 66d1fcd02666eae187140f2abd9f9971d56b9cbb Mon Sep 17 00:00:00 2001 From: dzq Date: Wed, 28 May 2025 11:41:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=94=A8=E6=88=B7):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=B7=B2=E4=BD=BF=E7=94=A8=E4=BD=99=E9=A2=9D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=B9=B6=E5=AE=9E=E7=8E=B0=E8=AE=A2=E5=8D=95=E5=92=8C=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在用户表中添加 use_balance 字段用于记录已使用余额 修改订单和退款审批服务,在扣款和退款时同步更新该字段 --- .../java/com/agileboot/domain/qywx/user/db/QyUserEntity.java | 4 ++++ .../java/com/agileboot/domain/qywx/user/dto/QyUserDTO.java | 3 +++ .../shop/approval/ReturnApprovalApplicationService.java | 1 + .../agileboot/domain/shop/order/OrderApplicationService.java | 1 + sql/20250520_goods.sql | 4 ++++ 5 files changed, 13 insertions(+) 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 0359600..86faff6 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 @@ -148,6 +148,10 @@ public class QyUserEntity extends BaseEntity { @TableField("balance") private BigDecimal balance; + @ApiModelProperty("已使用用户余额") + @TableField("use_balance") + private BigDecimal useBalance; + @ApiModelProperty("系统角色id") @TableField("sys_role_id") private Long sysRoleId; 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 47ccbac..0205105 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 @@ -106,6 +106,9 @@ public class QyUserDTO { @ExcelColumn(name = "用户余额") private BigDecimal balance; + @ExcelColumn(name = "已使用用户余额") + private BigDecimal useBalance; + @ExcelColumn(name = "系统角色ID") private Long sysRoleId; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java index a309323..fb18a1d 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java @@ -192,6 +192,7 @@ public class ReturnApprovalApplicationService { QyUserEntity qyUser = userService.getUserByUserId(userid, WeixinConstants.corpid); if (null != qyUser) { qyUser.setBalance(qyUser.getBalance().add(command.getReturnAmount())); + qyUser.setUseBalance(qyUser.getUseBalance().subtract(command.getReturnAmount())); } userService.updateById(qyUser); } catch (Exception e) { diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java index bd03787..ab32871 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/order/OrderApplicationService.java @@ -192,6 +192,7 @@ public class OrderApplicationService { throw new ApiException(ErrorCode.Client.COMMON_REQUEST_PARAMETERS_INVALID, "余额不足"); } else { qyUser.setBalance(qyUser.getBalance().subtract(orderModel.getTotalAmount())); + qyUser.setUseBalance(qyUser.getUseBalance().add(orderModel.getTotalAmount())); userService.updateById(qyUser); } // 金额转换(元转分)并四舍五入 diff --git a/sql/20250520_goods.sql b/sql/20250520_goods.sql index fe75a20..378c0c7 100644 --- a/sql/20250520_goods.sql +++ b/sql/20250520_goods.sql @@ -4,4 +4,8 @@ AFTER `goods_detail`; ALTER TABLE `qy_user` ADD COLUMN `sys_role_id` BIGINT DEFAULT NULL COMMENT '系统角色id' +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