fix: 总会员按子会员迁出;我的会员去掉展开重复展示
EOF Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -365,6 +365,7 @@ def enrich_clumber_item(record, club_id=None):
|
||||
'daoqi': daoqi_str,
|
||||
'huiyuan_zhuangtai': 1,
|
||||
'shifou_daoqi': False,
|
||||
'display_owned': True,
|
||||
}
|
||||
if is_bundle_huiyuan(record.huiyuan_id):
|
||||
item['is_bundle'] = True
|
||||
@@ -379,16 +380,30 @@ def enrich_clumber_item(record, club_id=None):
|
||||
|
||||
|
||||
def _append_clumber_id_variants(items, seen, base_item, huiyuan_id):
|
||||
"""为老端 == 比较补齐多种会员 ID 写法。"""
|
||||
"""为老端 == 比较补齐多种会员 ID 写法。仅首条供「我的会员」展示。"""
|
||||
hide_owned = (
|
||||
base_item.get('display_owned') is False
|
||||
or bool(base_item.get('from_bundle'))
|
||||
or bool(base_item.get('id_variant'))
|
||||
)
|
||||
first = True
|
||||
for vid in expand_huiyuan_id_variants(huiyuan_id):
|
||||
if vid in seen:
|
||||
continue
|
||||
seen.add(vid)
|
||||
items.append({
|
||||
row = {
|
||||
**base_item,
|
||||
'huiyuanid': vid,
|
||||
'huiyuan_id': vid,
|
||||
})
|
||||
}
|
||||
if hide_owned or not first:
|
||||
row['display_owned'] = False
|
||||
if not first:
|
||||
row['id_variant'] = True
|
||||
else:
|
||||
row['display_owned'] = True
|
||||
first = False
|
||||
items.append(row)
|
||||
|
||||
|
||||
def _append_bundle_sub_clumber(items, seen, base_item):
|
||||
@@ -405,10 +420,23 @@ def _append_bundle_sub_clumber(items, seen, base_item):
|
||||
sid = str(sub_id).strip()
|
||||
if not sid:
|
||||
continue
|
||||
# 子项用子会员自己的名称;不进「我的会员」主列表(仅抢单匹配)
|
||||
child_name = ''
|
||||
try:
|
||||
hy = Huiyuan.query.filter(huiyuan_id=sid).first()
|
||||
if not hy:
|
||||
for vid in expand_huiyuan_id_variants(sid):
|
||||
hy = Huiyuan.query.filter(huiyuan_id=vid).first()
|
||||
if hy:
|
||||
break
|
||||
child_name = ((hy.jieshao if hy else '') or '').strip()
|
||||
except Exception:
|
||||
child_name = ''
|
||||
sub_base = {
|
||||
'huiyuanming': base_item.get('huiyuanming', ''),
|
||||
'huiyuanming': child_name or sid,
|
||||
'daoqi': base_item.get('daoqi', ''),
|
||||
'from_bundle': bundle_hid,
|
||||
'display_owned': False,
|
||||
'huiyuan_zhuangtai': 1,
|
||||
'shifou_daoqi': False,
|
||||
}
|
||||
@@ -486,6 +514,7 @@ def _build_clumber_from_paid_czjilu(yonghu_id, club_id=None):
|
||||
'daoqi': format_legacy_daoqi(daoqi),
|
||||
'huiyuan_zhuangtai': 1,
|
||||
'shifou_daoqi': False,
|
||||
'display_owned': True,
|
||||
}
|
||||
if is_bundle_huiyuan(hid):
|
||||
base['is_bundle'] = True
|
||||
|
||||
Reference in New Issue
Block a user