diff --git a/.workbuddy/memory/2026-07-04.md b/.workbuddy/memory/2026-07-04.md index 20cc3e0..00e6d75 100644 --- a/.workbuddy/memory/2026-07-04.md +++ b/.workbuddy/memory/2026-07-04.md @@ -115,3 +115,33 @@ - 修改:`src/hooks/index.ts` - 修改:`src/pages/store/orders/index.tsx` - 修改:`src/pages/store/center/index.tsx` + +--- + +### 11. 后端订阅消息发送服务 + +#### 11.1 新建 WxSubscribeMessageService +- 接口:`/JAVA/shop-api/src/main/java/com/gxwebsoft/shop/service/WxSubscribeMessageService.java` +- 实现:`/JAVA/shop-api/src/main/java/com/gxwebsoft/shop/service/impl/WxSubscribeMessageServiceImpl.java` +- 功能:客户下单后自动推送微信小程序订阅消息给门店所有店员 +- 流程: + 1. 根据 `storeId` 查询 `shop_store_user` 表获取店员 userId 列表 + 2. 批量查询 `sys_user` 表获取店员小程序 openid + 3. 调用 `WxMiniappAccessTokenService` 获取 access_token + 4. 调用微信 `subscribeMessage.send` API 逐个发送 +- 容错设计: + - 订单无 storeId 跳过 + - 门店无店员/店员无 openid 跳过 + - access_token 获取失败跳过 + - errcode 43101(用户未授权订阅)正常跳过不报错 + - 所有异常不向上抛出,不影响订单创建 + +#### 11.2 集成到 OrderBusinessService +- 修改 `OrderBusinessService.createOrder()` 方法 +- 在保存订单和商品后、创建微信支付订单前,调用 `sendNewOrderNotification` +- 外层 try-catch 确保通知失败不影响主流程 + +#### 涉及文件 +- 新建:`JAVA/shop-api/.../service/WxSubscribeMessageService.java` +- 新建:`JAVA/shop-api/.../service/impl/WxSubscribeMessageServiceImpl.java` +- 修改:`JAVA/shop-api/.../service/OrderBusinessService.java`