8d8080c7bf
- HomeSection 模型增加 discountRate 字段,默认 1.00 表示不打折 - zoneEdit 组件新增折扣系数输入框,支持设置 0.01~1 之间的折扣率 - 后端 guilixu-java 增加专区折扣逻辑,成交价=市场价×折扣系数,保证后端价格计算安全 - 小程序 guilixu-taro 频道详情和商品详情支持专区折扣展示和传参 - 购物车新增 sectionId 字段,支持专区折扣价计算,完善购物车加购与价格计算逻辑 - 提供对应迁移 SQL 脚本更新数据库结构(专区折扣率与购物车 section_id) - 修复历史订单商品支付状态,补偿专区销量统计数据 - MEMORY 文档补充详细开发与设计说明,明确双后端接口调度和业务逻辑划分
1.7 KiB
1.7 KiB
项目长期记忆
专区折扣系数功能(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/modelHomeSection 有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.xmlLEFT 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。