8d8080c7bf
- HomeSection 模型增加 discountRate 字段,默认 1.00 表示不打折 - zoneEdit 组件新增折扣系数输入框,支持设置 0.01~1 之间的折扣率 - 后端 guilixu-java 增加专区折扣逻辑,成交价=市场价×折扣系数,保证后端价格计算安全 - 小程序 guilixu-taro 频道详情和商品详情支持专区折扣展示和传参 - 购物车新增 sectionId 字段,支持专区折扣价计算,完善购物车加购与价格计算逻辑 - 提供对应迁移 SQL 脚本更新数据库结构(专区折扣率与购物车 section_id) - 修复历史订单商品支付状态,补偿专区销量统计数据 - MEMORY 文档补充详细开发与设计说明,明确双后端接口调度和业务逻辑划分
13 lines
1.7 KiB
Markdown
13 lines
1.7 KiB
Markdown
# 项目长期记忆
|
||
|
||
## 专区折扣系数功能(2026-08-18 新增)
|
||
- 需求:专区商城价 = 市场价(salePrice) × discountRate(每专区可配,默认 1.00;本专区用 0.78)。
|
||
- **后端 guilixu-java**:`ShopHomeSection.discountRate` 字段 + 迁移SQL(`guilixu-admin/zone-discount-rate-10606.sql`);`OrderCreateRequest.OrderGoodsItem.sectionId`;`OrderBusinessService` 两处价格解析按 sectionId 重算成交价= salePrice×rate(后端算,不信任前端价)。
|
||
- **后台 guilixu-admin**:`zoneEdit.vue` 有「折扣系数」输入;`shopZone/model` HomeSection 有 `discountRate`。
|
||
- **小程序 guilixu-taro**:`section-detail`→`product-detail`→`checkout` 透传 sectionId+discountRate,「立即购买」与「购物车」两条链路均按系数生效(购物车补充见下)。
|
||
- **购物车链路补充(同日)**:`shop_cart` 表加 `section_id` 列(迁移SQL见 `zone-cart-section-id-10606.sql`);`ShopCart` 实体加 `sectionId`(真实列)+`discountRate`(exist=false)、`ShopCartMapper.xml` LEFT JOIN 专区取 `discount_rate`;`addToCart` 在"已存在累加"分支若新传 sectionId 非空则刷新 `existCart.sectionId`(专区加购覆盖普通加购的 null);`CartContext.addItem` 透传 sectionId、`calcPrice` 与 `cart.tsx` 按系数展示;`checkout.tsx` 的 `getItemDisplayPrice` 折扣分支改读顶层 `salePrice`(购物车项 product 为空)。两条链路现在都生效。
|
||
- 生效前置:执行迁移SQL、重新部署 guilixu-java、构建发布 taro。
|
||
|
||
## 双后端事实(沿用)
|
||
- 商城接口实际调 `https://guilixu-api.websoft.top`(= guilixu-java, db_guilixu);cms 走 mp-java。改商城相关先确认运行时 ApiUrl。详见历史 MEMORY。
|