feat: 链接派单H5提交必填拼多多订单号并写入订单

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-06-25 17:29:23 +08:00
parent 815f344d19
commit 93e68fe20f

View File

@@ -2225,8 +2225,9 @@ class KehuGetDingdanLianjieView(APIView):
if lianjie_obj.is_used:
dingdan_info.update({
'youxi_nicheng': dingdan_obj.Nickname or '',
'zhiding_dashou': dingdan_obj.PlayerID or '',
'zhiding_dashou': dingdan_obj.AssignedID or dingdan_obj.PlayerID or '',
'beizhu': dingdan_obj.Remark or '',
'waibu_dingdan_id': dingdan_obj.ExternalOrderID or '',
})
# 获取聊天相关标识
@@ -2369,6 +2370,7 @@ class KehuTianxieDingdanView(APIView):
youxi_nicheng = data.get('youxi_nicheng', '').strip()
zhiding_dashou = data.get('zhiding_dashou', '').strip() # 可选
beizhu = data.get('beizhu', '').strip() # 可选
waibu_dingdan_id = str(data.get('waibu_dingdan_id') or data.get('waibuDingdanId') or '').strip()[:64]
# 4.0 临时关闭指定功能(如需开启,请删除或注释掉下面两行)
@@ -2379,7 +2381,7 @@ class KehuTianxieDingdanView(APIView):
logger.info(
f"请求参数 - Token: {token[:8]}..., 昵称: {youxi_nicheng[:10]}..., 指定打手: {zhiding_dashou}, 备注长度: {len(beizhu)}")
f"请求参数 - Token: {token[:8]}..., 昵称: {youxi_nicheng[:10]}..., 指定打手: {zhiding_dashou}, 备注长度: {len(beizhu)}, 拼多多ID: {waibu_dingdan_id[:16] if waibu_dingdan_id else ''}")
# 5. 验证必填参数
if not token:
@@ -2398,6 +2400,14 @@ class KehuTianxieDingdanView(APIView):
'data': None
}, status=status.HTTP_400_BAD_REQUEST)
if not waibu_dingdan_id:
logger.warning(f"拼多多订单号为空 - IP: {client_ip}")
return Response({
'code': 400,
'msg': '拼多多订单号不能为空',
'data': None
}, status=status.HTTP_400_BAD_REQUEST)
# 6. 验证游戏昵称格式
if len(youxi_nicheng) > 50:
logger.warning(f"游戏昵称过长 - IP: {client_ip}, 长度: {len(youxi_nicheng)}")
@@ -2427,7 +2437,15 @@ class KehuTianxieDingdanView(APIView):
'data': None
}, status=status.HTTP_400_BAD_REQUEST)
# 8. 验证备注长度
# 8. 验证拼多多订单号
if len(waibu_dingdan_id) > 64:
return Response({
'code': 400,
'msg': '拼多多订单号不能超过64个字符',
'data': None
}, status=status.HTTP_400_BAD_REQUEST)
# 9. 验证备注长度
if len(beizhu) > 500:
logger.warning(f"备注过长 - IP: {client_ip}, 长度: {len(beizhu)}")
return Response({
@@ -2551,6 +2569,7 @@ class KehuTianxieDingdanView(APIView):
# 更新订单信息
dingdan_obj.Nickname = youxi_nicheng # 游戏昵称
dingdan_obj.Remark = beizhu if beizhu else '' # 备注
dingdan_obj.ExternalOrderID = waibu_dingdan_id
dingdan_obj.Status = zhuangtai_xin # 新状态1或7
# 如果是指定打手设置zhiding_id