点单归属只映射抢单类型ID,押金/会员要求仍用商品后台配置,避免被商家端类型覆盖。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -33,30 +33,35 @@ def parse_guishu_leixing_id(raw, shenhezhuangtai=None):
|
||||
def resolve_order_qiangdan_fields(shangpin):
|
||||
"""
|
||||
点单写入 Dingdan 的抢单相关字段:
|
||||
- 商品或所属类型配置了 guishu_leixing_id → 用该商家端类型的 id/yaoqiuleixing/huiyuan_id/yongjin
|
||||
- 否则沿用商品自身字段
|
||||
- 抢单要求(yaoqiuleixing / huiyuan_id / yongjin)一律用商品自身后台配置
|
||||
- 若商品或所属类型配置了 guishu_leixing_id → 仅把 leixing_id 映射到商家端类型
|
||||
(抢单池按商家端类型展示;押金金额仍按商品配置,不覆盖)
|
||||
"""
|
||||
# 商品自身抢单要求(后台商品/类型配置的会员或押金门槛)
|
||||
yaoqiu = getattr(shangpin, 'yaoqiuleixing', None)
|
||||
huiyuan_id = getattr(shangpin, 'huiyuan_id', '') or ''
|
||||
yongjin = getattr(shangpin, 'yongjin', None)
|
||||
if yongjin is None:
|
||||
yongjin = 0
|
||||
|
||||
leixing_id = getattr(shangpin, 'leixing_id', None)
|
||||
|
||||
guishu_id = getattr(shangpin, 'guishu_leixing_id', None)
|
||||
if not guishu_id and getattr(shangpin, 'leixing_id', None):
|
||||
own_type = ShangpinLeixing.objects.filter(id=shangpin.leixing_id).only(
|
||||
if not guishu_id and leixing_id:
|
||||
own_type = ShangpinLeixing.objects.filter(id=leixing_id).only(
|
||||
'guishu_leixing_id',
|
||||
).first()
|
||||
if own_type:
|
||||
guishu_id = own_type.guishu_leixing_id
|
||||
|
||||
if guishu_id:
|
||||
merchant = ShangpinLeixing.objects.filter(id=guishu_id, shenhezhuangtai=3).first()
|
||||
merchant = ShangpinLeixing.objects.filter(id=guishu_id, shenhezhuangtai=3).only('id').first()
|
||||
if merchant:
|
||||
return {
|
||||
'leixing_id': merchant.id,
|
||||
'yaoqiuleixing': merchant.yaoqiuleixing,
|
||||
'huiyuan_id': merchant.huiyuan_id or '',
|
||||
'yongjin': merchant.yongjin if merchant.yongjin is not None else 0,
|
||||
}
|
||||
leixing_id = merchant.id
|
||||
|
||||
return {
|
||||
'leixing_id': shangpin.leixing_id,
|
||||
'yaoqiuleixing': getattr(shangpin, 'yaoqiuleixing', None),
|
||||
'huiyuan_id': getattr(shangpin, 'huiyuan_id', '') or '',
|
||||
'yongjin': getattr(shangpin, 'yongjin', 0) or 0,
|
||||
'leixing_id': leixing_id,
|
||||
'yaoqiuleixing': yaoqiu,
|
||||
'huiyuan_id': huiyuan_id,
|
||||
'yongjin': yongjin,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user