From 234441ff4388080e6e4ae1b98a2ad5799f8bc17b Mon Sep 17 00:00:00 2001 From: dzq Date: Mon, 7 Jul 2025 17:48:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2):=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E8=AE=A2=E5=8D=95=E6=9F=A5=E8=AF=A2=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=B9=B6=E6=B7=BB=E5=8A=A0=E4=BD=99=E9=A2=9D=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 and/or 包装器重构订单查询条件,提高查询逻辑清晰度 - 在支付控制器中添加 ab98 用户余额信息返回 - 移除 hasReturn 条件,统一查询已支付订单 --- .../api/controller/PaymentController.java | 7 +- .../shop/order/OrderApplicationService.java | 76 +++++++++---------- sql/20250703.sql | 3 + 3 files changed, 47 insertions(+), 39 deletions(-) diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java index 509b39a..d18cf77 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java @@ -334,6 +334,11 @@ public class PaymentController { public ResponseDTO getBalanceByQyUserid(@RequestParam String corpid, @RequestParam String userid) { QyUserEntity qyUser = qyUserApplicationService.getUserByUserIdAndCorpid(userid, corpid); + Ab98UserEntity ab98User = null; + if (qyUser.getAb98UserId()!= null) { + ab98User = ab98UserApplicationService.getByAb98UserId(qyUser.getAb98UserId()); + } + // 创建响应对象(假设GetBalanceResponse包含balance字段) GetBalanceResponse response = new GetBalanceResponse( qyUser.getUserid(), @@ -341,7 +346,7 @@ public class PaymentController { qyUser.getBalance(), qyUser.getUseBalance(), qyUser.getBalanceLimit(), - null); + ab98User); return ResponseDTO.ok(response); } 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 ad074a8..171a49d 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 @@ -417,29 +417,29 @@ public class OrderApplicationService { // 构建订单查询条件 QueryWrapper orderQueryWrapper = new QueryWrapper<>(); // 添加 openid 作为查询条件 - orderQueryWrapper.eq("openid", openid); - // 如果 Ab98 用户信息存在 - if (ab98User != null) { - // 添加 or 条件,根据 Ab98 用户的 userid 查询订单 - orderQueryWrapper.or() - .eq("userid", ab98User.getUserid()); + orderQueryWrapper.and(wrapper -> { + wrapper.eq("openid", openid); + // 如果 Ab98 用户信息存在 + if (ab98User != null) { + // 添加 or 条件,根据 Ab98 用户的 userid 查询订单 + wrapper.or() + .eq("userid", ab98User.getUserid()); - // 如果 corpid 不为空 - if (StringUtils.isNotBlank(corpid)) { - // 根据 Ab98 用户的 ab98UserId 和 corpid 获取企业微信用户信息 - QyUserEntity qyUser = qyUserService.getUserByAb98UserId(ab98User.getAb98UserId(), corpid); - // 如果企业微信用户信息存在 - if (qyUser!= null) { - // 添加 or 条件,根据企业微信用户的 userid 查询订单 - orderQueryWrapper.or() - .eq("userid", qyUser.getUserid()); + // 如果 corpid 不为空 + if (StringUtils.isNotBlank(corpid)) { + // 根据 Ab98 用户的 ab98UserId 和 corpid 获取企业微信用户信息 + QyUserEntity qyUser = qyUserService.getUserByAb98UserId(ab98User.getAb98UserId(), corpid); + // 如果企业微信用户信息存在 + if (qyUser!= null) { + // 添加 or 条件,根据企业微信用户的 userid 查询订单 + wrapper.or() + .eq("userid", qyUser.getUserid()); + } } } - } + }); // 根据查询条件获取订单列表 - if (Integer.valueOf(1).equals(hasReturn)) { - orderQueryWrapper.eq("pay_status", 2); - } + orderQueryWrapper.eq("pay_status", 2); List orderList = orderService.list(orderQueryWrapper); // 构建订单商品查询条件 @@ -487,29 +487,29 @@ public class OrderApplicationService { // 构建订单查询条件 QueryWrapper orderQueryWrapper = new QueryWrapper<>(); // 添加企业微信用户的 userid 作为查询条件 - orderQueryWrapper.eq("userid", qyUser.getUserid()); - // 如果企业微信用户的 ab98UserId 不为空 - if (qyUser.getAb98UserId() != null) { - // 根据 ab98UserId 获取 Ab98 用户信息 - Ab98UserEntity ab98User = ab98UserService.getById(qyUser.getAb98UserId()); - // 如果 Ab98 用户信息存在 - if (ab98User!= null) { - // 添加 or 条件,根据 Ab98 用户的 userid 查询订单 - orderQueryWrapper.or() - .eq("userid", ab98User.getUserid()); + orderQueryWrapper.and(wrapper -> { + wrapper.eq("userid", qyUser.getUserid()); + // 如果企业微信用户的 ab98UserId 不为空 + if (qyUser.getAb98UserId() != null) { + // 根据 ab98UserId 获取 Ab98 用户信息 + Ab98UserEntity ab98User = ab98UserService.getById(qyUser.getAb98UserId()); + // 如果 Ab98 用户信息存在 + if (ab98User!= null) { + // 添加 or 条件,根据 Ab98 用户的 userid 查询订单 + wrapper.or() + .eq("userid", ab98User.getUserid()); - // 如果 Ab98 用户的 openid 不为空 - if (StringUtils.isNotBlank(ab98User.getOpenid())) { - // 添加 or 条件,根据 Ab98 用户的 openid 查询订单 - orderQueryWrapper.or() - .eq("openid", ab98User.getOpenid()); + // 如果 Ab98 用户的 openid 不为空 + if (StringUtils.isNotBlank(ab98User.getOpenid())) { + // 添加 or 条件,根据 Ab98 用户的 openid 查询订单 + wrapper.or() + .eq("openid", ab98User.getOpenid()); + } } } - } + }); // 根据查询条件获取订单列表 - if (Integer.valueOf(1).equals(hasReturn)) { - orderQueryWrapper.eq("pay_status", 2); - } + orderQueryWrapper.eq("pay_status", 2); List orderList = orderService.list(orderQueryWrapper); // 构建订单商品查询条件 diff --git a/sql/20250703.sql b/sql/20250703.sql index 99ac130..88a18fb 100644 --- a/sql/20250703.sql +++ b/sql/20250703.sql @@ -17,5 +17,8 @@ CREATE TABLE `user_balance_record` ( KEY `idx_ab98_user_id` (`ab98_user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户余额交易记录表'; +ALTER TABLE `ab98_user` +ADD COLUMN `ab98_balance` INT NOT NULL DEFAULT 0 COMMENT '用户余额(单位:分)'; + ALTER TABLE `ab98_user` ADD COLUMN `ab98_balance` INT NOT NULL DEFAULT 0 COMMENT '用户余额(单位:分)'; \ No newline at end of file