feat: 假单种子脚本、商家名称字段、返回随机顺序与时间
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
"""抢单大厅假单:无资格/封禁打手仅展示假数据。"""
|
||||
import random
|
||||
from datetime import timedelta
|
||||
from decimal import Decimal
|
||||
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.utils import timezone
|
||||
from rest_framework.response import Response
|
||||
|
||||
from backend.utils import fmt_datetime, pick_leixing_id
|
||||
@@ -36,14 +39,22 @@ def dashou_should_use_fake_pool(user):
|
||||
return True
|
||||
|
||||
|
||||
def _format_fake_row(row):
|
||||
def _random_display_time_str():
|
||||
"""返回给前端的创建时间:当前请求时刻 2~5 分钟前的随机时间。"""
|
||||
seconds_ago = random.randint(120, 300)
|
||||
dt = timezone.now() - timedelta(seconds=seconds_ago)
|
||||
return fmt_datetime(dt)
|
||||
|
||||
|
||||
def _format_fake_row(row, display_time=None):
|
||||
"""字段与 DashouDingdanHuoquView 真实单列表保持一致。"""
|
||||
avatar = DEFAULT_DISPATCHER_AVATAR
|
||||
platform = int(row.Platform or 1)
|
||||
oid = row.OrderID
|
||||
price = float(row.Amount or 0)
|
||||
ct = fmt_datetime(row.CreateTime)
|
||||
ct = display_time or _random_display_time_str()
|
||||
zid = (row.DispatcherUserID or '').strip()
|
||||
sj_name = (getattr(row, 'MerchantNickname', None) or '').strip()
|
||||
|
||||
return {
|
||||
'dingdan_id': oid,
|
||||
@@ -59,7 +70,7 @@ def _format_fake_row(row):
|
||||
'beizhu': row.Remark or '',
|
||||
'creat_time': ct,
|
||||
'create_time': ct,
|
||||
'sjnicheng': '',
|
||||
'sjnicheng': sj_name if platform == 2 else '',
|
||||
'sj_avatar': avatar if platform == 2 else '',
|
||||
'zhiding_uid': zid,
|
||||
'zhiding_avatar': avatar,
|
||||
@@ -85,12 +96,14 @@ def build_fake_order_pool_response(request):
|
||||
if leixing_id is not None:
|
||||
qs = qs.filter(ProductTypeID=leixing_id)
|
||||
|
||||
qs = qs.order_by('-SortOrder', '-CreateTime')
|
||||
total = qs.count()
|
||||
offset = (page - 1) * page_size
|
||||
rows = list(qs[offset:offset + page_size])
|
||||
rows = list(qs)
|
||||
random.shuffle(rows)
|
||||
|
||||
formatted_list = [_format_fake_row(r) for r in rows]
|
||||
total = len(rows)
|
||||
offset = (page - 1) * page_size
|
||||
page_rows = rows[offset:offset + page_size]
|
||||
|
||||
formatted_list = [_format_fake_row(r) for r in page_rows]
|
||||
has_more = (page * page_size) < total
|
||||
|
||||
return Response({
|
||||
|
||||
Reference in New Issue
Block a user