From 43d0d973c90982d2c9d9b04e0be944f78148e1a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=8C=E5=85=88=E8=88=9C?= <2499071264@qq.com> Date: Tue, 1 Sep 2026 16:25:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=A7=AF=E5=88=86=E5=95=86=E5=9F=8E-?= =?UTF-8?q?=E5=AF=B9=E8=B4=A6=E4=BC=98=E5=8C=962?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/budwk/app/sys/models/Sys_user.java | 9 +++++++++ .../mallbridge/service/MallInboundEventService.java | 7 ++++++- .../service/MallInboundPendingOrderService.java | 7 ++++++- .../service/support/AbstractMallBridgeSupport.java | 10 +++++----- src/main/resources/db/points-mall.sql | 4 ++++ .../views/platform/zhghh5/points-mall/index.html | 6 +++--- 6 files changed, 33 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/budwk/app/sys/models/Sys_user.java b/src/main/java/com/budwk/app/sys/models/Sys_user.java index 20985e24..b0eb211b 100644 --- a/src/main/java/com/budwk/app/sys/models/Sys_user.java +++ b/src/main/java/com/budwk/app/sys/models/Sys_user.java @@ -411,6 +411,15 @@ public class Sys_user extends BaseModel implements Serializable { @ColDefine(type = ColType.VARCHAR, width = 50) private String openId; + @Column("vuser_id") + @Comment("虚拟用户ID") + @ColDefine(type = ColType.VARCHAR, width = 64) + private String vuserId; + + @Column("vorg_id") + @Comment("虚拟组织ID") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String vorgId; /** * 基金会员 diff --git a/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/MallInboundEventService.java b/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/MallInboundEventService.java index 71b23123..bd831f2d 100644 --- a/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/MallInboundEventService.java +++ b/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/MallInboundEventService.java @@ -2,6 +2,7 @@ package com.budwk.app.zhgh.pointsmall.mallbridge.service; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; +import com.budwk.app.sys.models.Sys_user; import com.budwk.app.zhgh.pointsmall.mallbridge.dto.MallOrderQueryDTO; import com.budwk.app.zhgh.pointsmall.mallbridge.dto.MallOrderEventDTO; import com.budwk.app.zhgh.pointsmall.mallbridge.dto.OrderInfoDTO; @@ -369,7 +370,11 @@ public class MallInboundEventService extends AbstractMallBridgeSupport { .and("orderId", "in", orderIds) .and("delFlag", "=", false); if (StrUtil.isNotBlank(dto.getUserId())) { - subCnd.and("userId", "=", dto.getUserId()); + Sys_user user = fetchUser(dto.getUserId()); + if (user == null) { + return MallInboundResult.fail(400, "用户ID未配置或不存在"); + } + subCnd.and("userId", "=", user.getId()); } List subs = dao.query(PointsMallOrderSub.class, subCnd); diff --git a/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/MallInboundPendingOrderService.java b/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/MallInboundPendingOrderService.java index 28b0053d..1e60da15 100644 --- a/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/MallInboundPendingOrderService.java +++ b/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/MallInboundPendingOrderService.java @@ -2,6 +2,7 @@ package com.budwk.app.zhgh.pointsmall.mallbridge.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; +import com.budwk.app.sys.models.Sys_user; import com.budwk.app.zhgh.pointsmall.mallbridge.dto.MallPendingOrderDTO; import com.budwk.app.zhgh.pointsmall.mallbridge.model.MallInboundResult; import com.budwk.app.zhgh.pointsmall.mallbridge.service.support.AbstractMallBridgeSupport; @@ -32,13 +33,17 @@ public class MallInboundPendingOrderService extends AbstractMallBridgeSupport { if (dto.getOrderInfo() == null || StrUtil.isBlank(dto.getOrderInfo().getOrderId())) { return MallInboundResult.fail(400, "订单信息不能为空"); } + Sys_user user = fetchUser(dto.getUserId()); + if (user == null) { + return MallInboundResult.fail(400, "用户虚拟ID未配置或不存在"); + } log.info("积分商城接收待支付订单开始,supplierId={},orderId={}", dto.getSupplierId(), dto.getOrderInfo().getOrderId()); if (dao.count(PointsMallOrderMain.class, Cnd.where("orderId", "=", dto.getOrderInfo().getOrderId()) .and("supplierId", "=", dto.getSupplierId()).and("delFlag", "=", false)) > 0) { return MallInboundResult.fail(-1, "订单已存在"); } Trans.exec((Atom) () -> { - PointsMallOrderMain main = toMain(dto.getSupplierId(), dto.getUserId(), dto.getOrderInfo(), ORDER_PENDING_PAY); + PointsMallOrderMain main = toMain(dto.getSupplierId(), user.getId(), dto.getOrderInfo(), ORDER_PENDING_PAY); dao.insert(main); // 新增主单历史记录 diff --git a/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/support/AbstractMallBridgeSupport.java b/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/support/AbstractMallBridgeSupport.java index c1f928bb..fea70ac6 100644 --- a/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/support/AbstractMallBridgeSupport.java +++ b/src/main/java/com/budwk/app/zhgh/pointsmall/mallbridge/service/support/AbstractMallBridgeSupport.java @@ -57,12 +57,12 @@ public abstract class AbstractMallBridgeSupport { return dto != null && !StrUtil.hasBlank(dto.getSupplierId(), dto.getOrderId(), dto.getMainOrderId(), dto.getUserId()); } - protected Sys_user fetchUser(String userId) { - Sys_user user = dao.fetch(Sys_user.class, Cnd.where("id", "=", userId).and("disabled", "=", false).and("delFlag", "=", false)); - if (user != null) { - return user; + protected Sys_user fetchUser(String vuserId) { + if (StrUtil.isBlank(vuserId)) { + return null; } - return dao.fetch(Sys_user.class, Cnd.where("loginname", "=", userId).and("disabled", "=", false).and("delFlag", "=", false)); + return dao.fetch(Sys_user.class, Cnd.where("vuser_id", "=", vuserId) + .and("disabled", "=", false).and("delFlag", "=", false)); } protected PointsMallOrderExchange toExchange(MallOrderEventDTO dto, OrderInfoDTO orderInfo, PointsMallOrderSub sub, Integer orderStatus) { diff --git a/src/main/resources/db/points-mall.sql b/src/main/resources/db/points-mall.sql index d1982fff..c9af72f1 100644 --- a/src/main/resources/db/points-mall.sql +++ b/src/main/resources/db/points-mall.sql @@ -510,3 +510,7 @@ CREATE TABLE IF NOT EXISTS `points_mall_schedule_user_points_record` ( KEY `idx_points_mall_schedule_user_points_user` (`userId`), KEY `idx_points_mall_schedule_user_points_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分商城定时发放积分记录'; + +ALTER TABLE sys_user + ADD COLUMN vuser_id VARCHAR(64) NULL COMMENT '虚拟用户ID,积分商城向供应商传递的用户标识', + ADD COLUMN vorg_id VARCHAR(255) NULL COMMENT '虚拟组织ID'; \ No newline at end of file diff --git a/src/main/resources/views/platform/zhghh5/points-mall/index.html b/src/main/resources/views/platform/zhghh5/points-mall/index.html index b58408fb..118f3076 100644 --- a/src/main/resources/views/platform/zhghh5/points-mall/index.html +++ b/src/main/resources/views/platform/zhghh5/points-mall/index.html @@ -151,13 +151,13 @@ layout("/layouts/platform_h5.html"){ this.$toast("暂无跳转地址") return } - const userId = this.$store && this.$store.state.user ? this.$store.state.user.id : "" - if (!userId) { + const vuserId = this.$store && this.$store.state.user ? this.$store.state.user.vuserId : "" + if (!vuserId) { this.$toast("获取用户信息失败,请重新登录后再试") return } window.location.href = this.withSupplierQuery(item.supplierUrl, { - userId: userId + userId: vuserId }) }, withSupplierQuery(url, params) {