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__)
XZJ_CLUB_ID = 'xzj'
XZJ_ROLE_CONFIG = {
'dashou': {
'model': PlayerDailyStats,
@@ -153,10 +153,7 @@ def _count_youxiao_guanshi_for_zuzhang(zuzhang_uid, start_date=None, end_date=No
)
if not guanshi_uids:
return 0
qs = ManagerDailyStats.objects.filter(
club_id=XZJ_CLUB_ID,
ManagerID__in=guanshi_uids,
)
qs = ManagerDailyStats.objects.filter(ManagerID__in=guanshi_uids)
if start_date and end_date:
qs = qs.filter(Date__gte=start_date, Date__lte=end_date)
qs = (
@@ -251,7 +248,6 @@ class XzjPhbHqsjView(APIView):
'msg': '获取成功',
'data': {
'list': result_list,
'club_id': XZJ_CLUB_ID,
'sort_field': cfg.get('sort_response_key'),
},
})
@@ -270,17 +266,16 @@ class XzjPhbHqsjView(APIView):
fields = cfg['fields']
id_field = cfg['id_field']
annotate_kwargs = {f: Sum(f) for f in fields}
base_qs = model.objects.filter(club_id=XZJ_CLUB_ID)
if all_time:
return list(
base_qs.values(id_field)
model.objects.values(id_field)
.annotate(**annotate_kwargs)
.order_by(f'-{sort_field}')[:MAX_RANK]
)
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 = [
{id_field: getattr(r, id_field), **{f: getattr(r, f) for f in fields}}
for r in qs
@@ -292,7 +287,7 @@ class XzjPhbHqsjView(APIView):
return rows
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)
.annotate(**annotate_kwargs)
.order_by(f'-{sort_field}')[:MAX_RANK]