fix: 换打手继承拼多多订单号;优化后台添加会员提示

This commit is contained in:
XingQue
2026-06-25 22:47:19 +08:00
parent 93e68fe20f
commit deb1688d0c
3 changed files with 46 additions and 26 deletions

View File

@@ -1,9 +1,10 @@
"""后台会员管理:全局 Huiyuan 定义 + 各俱乐部 ClubHuiyuanPrice 售价/分成。"""
import logging
import random
import string
from decimal import Decimal
from django.db import transaction
from django.db import transaction, IntegrityError
from jituan.constants import CLUB_ID_DEFAULT, DATA_SCOPE_ALL
from jituan.models import ClubHuiyuanPrice
@@ -11,6 +12,14 @@ from jituan.services.club_context import club_id_for_write, resolve_club_id_from
from jituan.services.club_user_access import list_response_meta
from products.models import Huiyuan
logger = logging.getLogger(__name__)
CLUB_WRITE_SCOPE_MSG = '当前为集团汇总视图,请先在顶栏切换到具体俱乐部(如星阙、星之界)后再操作'
def club_write_blocked(request):
return resolve_club_scope(request) == DATA_SCOPE_ALL
def _format_member(m, price_row=None):
global_jiage = str(m.jiage)
@@ -82,8 +91,8 @@ def build_member_list_payload(request):
def update_member_for_club(request, huiyuan_id, jieshao, jiage, guanshifc, zuzhangfc, jtjieshao):
if resolve_club_scope(request) == DATA_SCOPE_ALL:
return None, '集团汇总视图下不可修改,请切换到具体俱乐部'
if club_write_blocked(request):
return None, CLUB_WRITE_SCOPE_MSG
club_id = club_id_for_write(request)
@@ -125,8 +134,8 @@ def update_member_for_club(request, huiyuan_id, jieshao, jiage, guanshifc, zuzha
def add_member_for_club(request, jieshao, jiage, guanshifc, zuzhangfc, jtjieshao, bankuai_id=None):
if resolve_club_scope(request) == DATA_SCOPE_ALL:
return None, '集团汇总视图下不可添加,请切换到具体俱乐部'
if club_write_blocked(request):
return None, CLUB_WRITE_SCOPE_MSG
club_id = club_id_for_write(request)
@@ -136,26 +145,35 @@ def add_member_for_club(request, jieshao, jiage, guanshifc, zuzhangfc, jtjieshao
if not Huiyuan.query.filter(huiyuan_id=new_id).exists():
return new_id
with transaction.atomic():
new_id = generate_huiyuan_id()
member = Huiyuan.query.create(
huiyuan_id=new_id,
jieshao=jieshao,
jiage=jiage,
guanshifc=guanshifc,
zuzhangfc=zuzhangfc,
jtjieshao=jtjieshao,
goumai_cishu=0,
bankuai_id=bankuai_id,
)
ClubHuiyuanPrice.query.create(
club_id=club_id,
huiyuan_id=new_id,
jiage=jiage,
guanshifc=guanshifc,
zuzhangfc=zuzhangfc,
is_enabled=True,
bankuai_id=bankuai_id,
)
try:
with transaction.atomic():
new_id = generate_huiyuan_id()
create_kwargs = dict(
huiyuan_id=new_id,
jieshao=jieshao,
jiage=jiage,
guanshifc=guanshifc,
zuzhangfc=zuzhangfc,
jtjieshao=jtjieshao or '',
goumai_cishu=0,
)
if bankuai_id is not None:
create_kwargs['bankuai_id'] = bankuai_id
member = Huiyuan.query.create(**create_kwargs)
ClubHuiyuanPrice.query.create(
club_id=club_id,
huiyuan_id=new_id,
jiage=jiage,
guanshifc=guanshifc,
zuzhangfc=zuzhangfc,
is_enabled=True,
bankuai_id=bankuai_id,
)
except IntegrityError as e:
logger.exception('添加会员失败 club_id=%s', club_id)
return None, f'添加失败:数据冲突({e}'
except Exception as e:
logger.exception('添加会员失败 club_id=%s', club_id)
return None, f'添加失败:{e}'
return {'huiyuan_id': member.huiyuan_id}, None