fix: xzjphbhqsj 与 phbhqsj 同用集团整体数据

去掉 club_id 过滤,仅保留邀请人数/派单流水等排序差异
This commit is contained in:
XingQue
2026-06-26 03:04:45 +08:00
parent 5ebcb56b65
commit 550061435e

View File

@@ -1,7 +1,9 @@
""" """
星之界(xzj) 排行榜 — 与 /yonghu/phbhqsj 独立,旧接口零改动。 星之界小程序专用排行榜 — 与 /yonghu/phbhqsj 独立,旧接口零改动。
规则摘要: 数据范围与 phbhqsj 相同:集团整体日统计,不按俱乐部拆分。
仅排序/展示规则不同:
- 管事/组长:按邀请人数排序;展示无效邀请、有效人数、收入金额 - 管事/组长:按邀请人数排序;展示无效邀请、有效人数、收入金额
- 接单员:按成交金额排序 - 接单员:按成交金额排序
- 商家:按派单流水排序(非成交额) - 商家:按派单流水排序(非成交额)
@@ -32,8 +34,6 @@ from users.paihang_views import (
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
XZJ_CLUB_ID = 'xzj'
XZJ_ROLE_CONFIG = { XZJ_ROLE_CONFIG = {
'dashou': { 'dashou': {
'model': PlayerDailyStats, 'model': PlayerDailyStats,
@@ -153,10 +153,7 @@ def _count_youxiao_guanshi_for_zuzhang(zuzhang_uid, start_date=None, end_date=No
) )
if not guanshi_uids: if not guanshi_uids:
return 0 return 0
qs = ManagerDailyStats.objects.filter( qs = ManagerDailyStats.objects.filter(ManagerID__in=guanshi_uids)
club_id=XZJ_CLUB_ID,
ManagerID__in=guanshi_uids,
)
if start_date and end_date: if start_date and end_date:
qs = qs.filter(Date__gte=start_date, Date__lte=end_date) qs = qs.filter(Date__gte=start_date, Date__lte=end_date)
qs = ( qs = (
@@ -251,7 +248,6 @@ class XzjPhbHqsjView(APIView):
'msg': '获取成功', 'msg': '获取成功',
'data': { 'data': {
'list': result_list, 'list': result_list,
'club_id': XZJ_CLUB_ID,
'sort_field': cfg.get('sort_response_key'), 'sort_field': cfg.get('sort_response_key'),
}, },
}) })
@@ -270,17 +266,16 @@ class XzjPhbHqsjView(APIView):
fields = cfg['fields'] fields = cfg['fields']
id_field = cfg['id_field'] id_field = cfg['id_field']
annotate_kwargs = {f: Sum(f) for f in fields} annotate_kwargs = {f: Sum(f) for f in fields}
base_qs = model.objects.filter(club_id=XZJ_CLUB_ID)
if all_time: if all_time:
return list( return list(
base_qs.values(id_field) model.objects.values(id_field)
.annotate(**annotate_kwargs) .annotate(**annotate_kwargs)
.order_by(f'-{sort_field}')[:MAX_RANK] .order_by(f'-{sort_field}')[:MAX_RANK]
) )
if start_date == end_date: if start_date == end_date:
qs = base_qs.filter(Date=start_date).order_by(f'-{sort_field}')[:MAX_RANK] qs = model.objects.filter(Date=start_date).order_by(f'-{sort_field}')[:MAX_RANK]
rows = [ rows = [
{id_field: getattr(r, id_field), **{f: getattr(r, f) for f in fields}} {id_field: getattr(r, id_field), **{f: getattr(r, f) for f in fields}}
for r in qs for r in qs
@@ -292,7 +287,7 @@ class XzjPhbHqsjView(APIView):
return rows return rows
return list( return list(
base_qs.filter(Date__gte=start_date, Date__lte=end_date) model.objects.filter(Date__gte=start_date, Date__lte=end_date)
.values(id_field) .values(id_field)
.annotate(**annotate_kwargs) .annotate(**annotate_kwargs)
.order_by(f'-{sort_field}')[:MAX_RANK] .order_by(f'-{sort_field}')[:MAX_RANK]