- 优化姓名匹配优先查找标签“收件人”等后面的名字,提升识别准确率 - 清理详细地址中标签文本,去除“收件人”“手机号码”“所在地区”“详细地址”等冗余字段 - 保留街道及详细地址完整信息,避免误删有效内容 - 类型定义中新增 country,调整 isDefault 类型为 boolean,增加 address 字段 - 使用 Python 测试验证解析效果,确保姓名、电话、省市区和详细地址准确提取 - 通过类型检查无误,提升代码健壮性和维护便利性
6.9 KiB
6.9 KiB
线下付款下单失败排查
- 文件:
src/pages/shop/checkout.tsx、src/api/shop/shopOrder/index.ts - 现象:结算页选择线下付款(payType=9)下单时报错:
创建支付订单失败:创建微信支付订单失败:支付配置中应用ID为null或空 - 原因:前端传参正确,但后端
POST /shop/shop-order在 payType=9 时仍尝试创建微信支付订单,因未配置 appId 失败 - 前端处理:
checkout.tsx增加线下付款支付配置类错误的友好提示createOrder返回类型放宽为WxPayResult | null,兼容非微信支付场景
- 后端修复(
/Users/gxwebsoft/JAVA/guilixu-java,3 个文件):OrderBusinessService.java—createOrder()中 Integer 比较从==改为.equals(),避免装箱陷阱导致 payType=8/9 拦截失效;微信支付分支前加日志ShopOrderServiceImpl.java—createWxOrder()方法开头增加 payType 守卫,非微信支付(1/102)直接抛异常,不走 JSAPI 分支ShopOrderController.java—saveLegacy()方法增加 payType 检查,货到付款/线下付款/余额支付跳过 createWxOrder
- 验证:Maven compile 成功,无编译错误
- 注意:后端服务需重启才能生效
结算页支付方式调整
- 文件:
src/pages/shop/checkout.tsx - 注释掉货到付款(id=8)选项,只保留线下付款(id=9)
- 默认支付方式从 8(货到付款) 改为 9(线下付款)
门店订单修改金额功能
- 文件:
src/pages/store/orders/index.tsx - 新增 OpType
'editPrice',在订单卡片操作区增加橙色「修改金额」按钮 - 仅对可操作订单(非已完成/非已关闭)显示
- 弹窗包含:当前实付展示、新金额输入(digit)、修改原因(必填 textarea)
- 提交调用
updateShopOrder({ orderId, payPrice, comments }),金额变更记录追加到 comments - 复用现有
updateShopOrderAPI(PUT/shop/shop-order),无需新增接口
修复 VIP 会员价格显示和下单问题
- 根因:
useVipStatushook 已定义但从未被任何页面使用,所有页面直接调用isVipMember()读取同步缓存。该缓存仅在「个人中心」页刷新,导致 VIP 会员访问商品详情/购物车/结算页时缓存为 stale false,不显示 dealerPrice - 修复文件(共 9 个):
src/api/shop/shopOrder/model/index.ts—OrderGoodsItem新增price?: string字段,下单时传 VIP 单价src/pages/shop/product-detail.tsx— 引入useVipStatus,用响应式isVip替换isVipMember()src/pages/shop/checkout.tsx— 引入useVipStatus,goodsPriceuseMemo 依赖加isVip;下单时OrderGoodsItem传price字段src/pages/shop/index.tsx— 引入useVipStatus,替换isVipMember()src/pages/shop/category.tsx— 引入useVipStatus,替换isVipMember()src/pages/shop/cart.tsx— 引入useVipStatus,替换isVipMember()src/contexts/CartContext.tsx— CartProvider 引入useVipStatus,calcPrice用响应式isVipsrc/components/business/SkuSelector/index.tsx— 引入useVipStatus,替换isVipMember()src/components/common/ProductCard/index.tsx— 引入useVipStatus,替换isVipMember()
- 原理:
useVipStatus在组件挂载时异步调用checkAndCacheVipStatus查询后端并更新缓存+React state,state 变化触发重渲染,使所有价格显示/计算自动更新为 dealerPrice - 验证:
npx taro build --type weapp构建成功
门店订单修改金额 — 修改原因保存字段变更
- 文件:
src/pages/store/orders/index.tsx、src/api/shop/shopOrder/model/index.ts - 变更:修改金额时的"修改原因"从追加到
comments字段改为保存到merchantRemarks(商户备注)字段 ShopOrder接口新增merchantRemarks?: string字段submitEditPrice中updateShopOrder传参从comments改为merchantRemarks
订单备注字段分离(buyerRemarks / merchantRemarks / comments)
- 文件:
src/api/shop/shopOrder/model/index.ts、src/pages/shop/checkout.tsx、src/pages/store/orders/index.tsx ShopOrder和OrderCreateRequest接口均新增buyerRemarks?: string(买家备注)- 结算页
checkout.tsx:订单备注从comments: remarks改为buyerRemarks: remarks - 门店订单列表
store/orders/index.tsx:订单卡片新增买家备注展示块(橙色背景,收货信息下方) - 字段约定:
buyerRemarks=买家下单备注,merchantRemarks=商户修改金额原因,comments=系统/其他备注
修复线下付款订单状态显示
- 文件:
src/components/common/OrderCard/index.tsx、src/pages/order/list.tsx、src/pages/order/detail.tsx - 问题:线下付款(payType=9)下单成功后,订单列表和详情页显示"线下付款·待确认",用户认为状态不对
- 修复内容:
- OrderCard
getCardStatus:将线下付款(payType=9)与货到付款(payType=8)统一处理,!payStatus && !isCod && !isOffline才显示"待付款",否则直接按 deliveryStatus 判断,线下付款订单显示"待发货" - OrderCard
showCloseButton:增加!order.payStatus条件,已付款订单不再显示取消按钮(需到详情页退款) - OrderCard 按钮文案:从"关闭订单"改为"取消订单",与详情页一致
- list.tsx
handleCloseOrder:弹窗标题改为"确认取消订单",toast 改为"订单已取消" - detail.tsx
getOrderDisplayStatus:线下付款未确认时显示"待发货"(蓝色),subtitle 保留付款引导文案 - detail.tsx
getOrderPhase:保留offline_pending阶段,底部按钮仍为"取消订单+联系客服"(未确认收款可取消,非退款)
- OrderCard
修复地址编辑页智能识别 bug
- 文件:
src/pages/user/address-edit.tsx - 问题:粘贴带标签的地址文本(如「收件人: 赵忠林 / 手机号码: 137... / 所在地区: 广西... / 详细地址: 大学东路...」)识别后:
- 姓名识别失败(之前只看文本开头的 2-4 个汉字,姓名不在开头)
- 详细地址保留了「收件人」「手机号码」「所在地区」「详细地址」等标签文字
- 修复
parseAddressText:- 姓名优先匹配
(?:收件人|收货人|姓名|联系人)[::]\s*([\u4e00-\u9fa5]{2,4}),找不到再回退到^[\u4e00-\u9fa5]{2,4} - 详细地址提取前先 strip 标签文字(收件人/手机号/所在地区/详细地址 + 中英冒号),再 strip 省市区,最后 strip 零散标签
- 姓名优先匹配
- 验证:用 Python 模拟(Python 是用 JS 同款正则+RegionData)解析截图中的输入:
- name: 赵忠林 ✓
- phone: 13737128880 ✓
- province/city/region: 广西壮族自治区/南宁市/西乡塘区 ✓
- address: 西乡塘街道大学东路9号瀚林御景3栋1单元1101号房 ✓(街道+详细地址完整保留)
- 项目 type-check (
npx tsc --noEmit) 无报错