Files
glt-taro/.workbuddy/memory/2026-04-10.md
赵忠林 54404aa48f feat(order): 迁移和完善配送方式功能,支持全链路入库与展示
- 迁移配送方式选择功能从 orderConfirm 页至 user/ticket/use 页面
- orderConfirm 页面移除配送方式相关状态、UI与校验,取消配送费计算
- user/ticket/use 页面新增配送方式UI组件,支持配送费计算、楼层选择弹窗和提交校验
- 新增录入deliveryMethod、deliveryFloor、deliveryFee字段至订单模型与后端数据库
- 骑手端订单列表新增配送方式、楼层、配送费的详细展示
- 更新环境配置接口地址到正式API,修正测试及开发环境
- 用户页底部组件UI优化,新增版权icon并重构结构样式
- 使用配送方式字段校验下单逻辑,支持编辑模式配送信息回显与费用显示
- 移除orderConfirm中配送方式相关样式和组件,实现代码回滚清理
2026-04-12 21:57:50 +08:00

4.3 KiB
Raw Permalink Blame History

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_methoddelivery_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 - 订单创建时通知配送员

    • 注入 GltSubscribeMessageServiceUserMapper
    • 添加 notifyRidersOfNewOrder 方法

前端配置

  1. src/rider/index.tsx
    • handleRequestSubscribeMessage 函数需要配置实际的模板ID

微信后台需要申请的模板

模板名称:订单配送通知 关键词:订单状态、订单编号、配送地址、商品数量、通知时间