# 2026-04-10 工作日志 ## 完成的功能:四种用户分级标签 ### 需求 用户 ID 下方"管理员"标签改为四种分级: - 0: 普通用户 - 1: 超级管理员 - 2: 合伙人(总店) - 3: 合伙人(分店) ### 修改的文件 #### 后端 (JAVA) 1. `ShopDealerUser.java` - 添加 `dealerLevel` 字段 2. `ShopDealerUserMapper.xml` - 添加 dealerLevel 查询条件 #### 前端 (VUE) 1. `src/api/shop/shopDealerUser/model/index.ts` - 添加 dealerLevel 字段 2. `src/utils/userLevel.ts` - 新建用户等级配置工具文件 3. `src/pages/user/components/UserCard.tsx` - 修改角色标签显示逻辑 ### 注意事项 - 需要在数据库中添加 `dealer_level` 字段 - 后端需要重启生效 - 前端通过 dealerLevel 字段判断显示对应样式 ## 配送员订单通知功能 ### 需求 客户下单后,配送员手机声音提示和红点提示功能 ### 实现方案 1. **红点提示**:在配送员首页「配送订单」图标上显示待配送订单数量 2. **声音提示**:收到新订单时播放微信官方提示音 3. **设置功能**:支持开启/关闭声音提醒 ### 新增/修改的文件 1. `src/api/glt/gltTicketOrder/index.ts` - 添加 `getRiderPendingCount` 接口 2. `src/hooks/useRiderNotification.ts` - 新建配送员通知 Hook 3. `src/rider/index.tsx` - 添加 Badge 红点和设置入口 ### 技术实现 - 使用 30 秒轮询获取待配送订单数量 - 使用 NutUI 的 Badge 组件显示红点 - 使用 Taro.createInnerAudioContext 播放提示音 - 声音设置保存在本地存储 `rider_sound_enabled` ### 待后端配合 - 需要后端提供 `/glt/glt-ticket-order/rider/count` 接口(可选,使用现有 page 接口也行) - 需要配置微信订阅消息模板(可选) ## 下单页配送方式 + 配送费功能 ### 需求 1. 下单页必选配送方式:电梯 / 步梯 / 一楼商铺·其他 2. 步梯需二级选择是否送上楼,送上楼需选楼层 3. 配送费计算:每桶每层1元,第1层不收费(即 `(楼层-1) × 数量`) 4. 自提模式隐藏配送方式选择器 ### 修改的文件 1. `src/api/shop/shopOrder/model/index.ts` - OrderCreateRequest 新增 deliveryMethod、deliveryFloor 字段 2. `src/utils/payment.ts` - buildSingleGoodsOrder 透传配送方式字段 3. `src/shop/orderConfirm/index.tsx` - 配送方式选择UI、配送费计算、楼层选择弹窗、支付校验 4. `src/shop/orderConfirm/index.scss` - 配送方式选择器、楼层网格样式 ### 后端需配合 - 订单表新增 `delivery_method` 和 `delivery_floor` 字段 - 订单创建接口接收并存储这两个字段 - 骑手端/后台展示配送方式和楼层信息 ## 配送方式功能迁移:orderConfirm → user/ticket/use ### 原因 配送方式选择功能从购买下单页(orderConfirm)迁移到水票核销/立即送水页面(user/ticket/use)。 ### 修改的文件 1. `src/shop/orderConfirm/index.tsx` - 回滚:移除配送方式状态变量、UI、校验、楼层选择弹窗、配送费计算 2. `src/shop/orderConfirm/index.scss` - 回滚:移除配送方式/楼层选择相关样式 3. `src/api/glt/gltTicketOrder/model/index.ts` - GltTicketOrder 新增 deliveryMethod、deliveryFloor、deliveryFee 字段 4. `src/user/ticket/use.tsx` - 新增:配送方式选择UI、配送费计算、楼层选择弹窗、提交校验、编辑模式回显 5. `src/user/ticket/use.scss` - 新增:配送方式/楼层选择样式 ### 关键差异 - orderConfirm 页面是付费购买,配送费加到实付金额中 - use 页面是水票核销(不付费),配送费以"到付"形式展示在底部栏 - use 页面同时支持新建和编辑模式,编辑时回显配送信息 ## 微信订阅消息配置(补充) ### 需要做的配置 #### 后端配置 1. `GltSubscribeMessageServiceImpl.java` - 订阅消息发送服务 - 需要配置 `SUBSCRIBE_TEMPLATE_ID` 为实际模板ID 2. `GltTicketOrderController.java` - 订单创建时通知配送员 - 注入 `GltSubscribeMessageService` 和 `UserMapper` - 添加 `notifyRidersOfNewOrder` 方法 #### 前端配置 1. `src/rider/index.tsx` - `handleRequestSubscribeMessage` 函数需要配置实际的模板ID ### 微信后台需要申请的模板 模板名称:订单配送通知 关键词:订单状态、订单编号、配送地址、商品数量、通知时间