fix(cart): 修复购物车同一商品重复显示问题
- 后端新增 ShopCartService.addToCart 方法,按 user_id+goods_id+sku_id 判重合并数量 - 修改 ShopCartController.save 调用为 addToCart,避免重复插入购物车记录 - sku_id 为 null 或 0 时,判重逻辑支持 null-safe 匹配 - 提供历史数据清理脚本 sql/shop_cart_merge_duplicates.sql 合并重复购物车数据 - 更新文档记录购物车合并逻辑及相关接口说明 - 编译通过,后端服务需重启生效
This commit is contained in:
@@ -187,3 +187,15 @@
|
||||
- 微信支付(1):未付款 `payStatus=false`,正常进入 statusFilter=0
|
||||
- 修复:`getCardStatus` 第 30 行去掉 `&& !isOffline` 条件,改为 `if (!payStatus && !isCod) return { text: '待付款' }`。保留 `!isCod`(货到付款的特殊兜底,虽然正常流程不会走到这里);清理掉不再使用的 `isOffline` 变量
|
||||
- 决策依据:用户认可"线下付款订单出现在待付款 Tab"是合理的,因此只改前端文案判断,不动后端 SQL
|
||||
|
||||
## 修复购物车同一商品并列显示(应合并数量)
|
||||
- 现象:购物车页面同一商品并列显示多行,本应合并数量到一行
|
||||
- 根因:后端 `ShopCartController.save()` 直接调用 MyBatis-Plus 默认 `shopCartService.save()`,每次加购都 INSERT 新行,没有"同用户+商品+SKU已存在则累加数量"逻辑
|
||||
- 后端修复(`/Users/gxwebsoft/JAVA/guilixu-java`,3 个文件):
|
||||
1. `ShopCartService.java` — 接口新增 `boolean addToCart(ShopCart shopCart)` 方法
|
||||
2. `ShopCartServiceImpl.java` — 实现 `addToCart`:按 user_id+goods_id+sku_id 查询是否已存在(skuId 为 null/0 时匹配 IS NULL 或 =0),存在则累加 cart_num 后 updateById,不存在才 save;引入 `QueryWrapper`
|
||||
3. `ShopCartController.java` — `save()` 接口从 `shopCartService.save(shopCart)` 改为 `shopCartService.addToCart(shopCart)`
|
||||
- 注意:`ShopCart.userId` 是 `Integer` 类型(不是 Long),`goodsId` 是 Long
|
||||
- 历史数据清理:提供 `sql/shop_cart_merge_duplicates.sql`,按 (user_id,goods_id,sku_id) 分组合并 cart_num 并删除重复行(sku_id 可能为 NULL,用 `<=>` null-safe 匹配);执行前先备份
|
||||
- 编译验证:Maven compile 成功
|
||||
- 后端需重启服务才生效
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
- 门店中心:`src/pages/store/center/index.tsx`
|
||||
- 购物车 API:`src/api/shop/shopCart/index.ts`(批量删除接口 `/shop/shop-cart/batch` 后端期望直接接收 `ArrayList<Integer>` 即 `[1,2,3]`,不要用 `{ ids }` 包裹)
|
||||
- 购物车 Context:`src/contexts/CartContext.tsx`
|
||||
- 购物车合并加购:后端 `ShopCartServiceImpl.addToCart()` 按 user_id+goods_id+sku_id 判重,已存在则累加 cart_num,不存在才新增;skuId 为 null/0(单规格)匹配 IS NULL 或 =0。`ShopCart.userId` 是 Integer(非 Long)。历史重复数据清理脚本 `sql/shop_cart_merge_duplicates.sql`
|
||||
|
||||
## 订阅消息
|
||||
- 模板 ID:`sh1K9iK7vZjebUNFu6OsMsnsJxm4whThWGrhN7I4zVg`(交易提醒)
|
||||
|
||||
Reference in New Issue
Block a user