7 Commits

Author SHA1 Message Date
55b4943170 feat(discount): 折扣率语义扩展——允许>1加价卖给客户+解析改专属优先/*兜底
用户决策(2026-09-06):
1. 折扣率允许大于1:平台可加价卖产品给客户(如存储缺省1.5);
   也可小于1让利(如百炼模型0.9,供应商有折扣传导给客户)
2. 解析规则:确定客户→查客户专属折扣;查不到→'*'通配兜底;再无→1.0
   旧实现bug:专属与通配OR混查取全局min——专属0.95+通配0.8返回0.8,
   专属记录形同虚设

改动:
- init.py sor_get_min_product_discount: 两步查询(专属层min→通配层min)
- init.py add/update_discount_detail: 上限1→9.9999(DB double(5,4)约束)
- discount_setting/save_discount.dspy: 兜底记录识别'*'+NULL两种形态;
  「客户折扣率不得高于通用折扣率」校验保留(加价语义下=单客户价不贵于通用价)
- marketing_discount_setting/save_discount.dspy: >1上限放开,保留<基准约束
- generate_qr.dspy: 同上放开
- index.ui: placeholder 0~1→'>1加价 <1折扣',dec_len 2→4

本地mock测试5场景全过:专属优先/通配兜底/无记录1.0/exact_match不兜底/层内min
2026-09-06 15:43:01 +08:00
9d4c83a25f fix: 客户折扣不得高于全部用户折扣 2026-06-30 14:20:46 +08:00
7e3af2d9b8 fix: 所有Message加timeout, NaN过滤 2026-06-29 16:59:16 +08:00
34843b6634 fix: 过滤NaN/nan/null/空值防MySQL报错 2026-06-29 16:58:37 +08:00
f14eb4f704 fix: UiFloat用urlwidget+datawidget:self; dspy对比old_discount跳过无变化 2026-06-29 16:55:07 +08:00
1bf3528b6d fix: 折扣设置列宽加大(3/5/3/3); 新增inline_edit.js点击编辑折扣; save_discount uuid→getID 2026-06-29 11:37:47 +08:00
Hermes Agent
29578196a1 feat: 独立产品折扣设置页面(全量产品列表+行内upsert) 2026-06-24 20:42:36 +08:00