fix: xzjphbhqsj 与 phbhqsj 同用集团整体数据
去掉 club_id 过滤,仅保留邀请人数/派单流水等排序差异
This commit is contained in:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user