修正过早的键更新
This commit is contained in:
@@ -5856,24 +5856,24 @@ class FaKuanLieBiaoView(APIView):
|
|||||||
for r in records:
|
for r in records:
|
||||||
results.append({
|
results.append({
|
||||||
'id': r.id,
|
'id': r.id,
|
||||||
'PenalizedUserID': r.PenalizedUserID,
|
'beichufa_id': r.PenalizedUserID,
|
||||||
'Identity': r.Identity,
|
'shenfen': r.Identity,
|
||||||
'Identity_text': dict(Penalty._meta.get_field('Identity').choices).get(r.Identity, ''),
|
'shenfen_text': dict(Penalty._meta.get_field('Identity').choices).get(r.Identity, ''),
|
||||||
'ApplicantID': r.ApplicantID or '',
|
'shenqing_chufa': r.ApplicantID or '',
|
||||||
'ApplicantIdentity': r.ApplicantIdentity,
|
'shenqingren_shenfen': r.ApplicantIdentity,
|
||||||
'Reason': r.Reason or '',
|
'chufaliyou': r.Reason or '',
|
||||||
'FineAmount': str(r.FineAmount),
|
'fakuanjine': str(r.FineAmount),
|
||||||
'RelatedOrderID': r.RelatedOrderID or '',
|
'guanliandingdan_id': r.RelatedOrderID or '',
|
||||||
'Status': r.Status,
|
'zhuangtai': r.Status,
|
||||||
'AffectsGrabbing': r.AffectsGrabbing,
|
'yingxiang_qiangdan': r.AffectsGrabbing,
|
||||||
'AppealReason': r.AppealReason or '',
|
'shensuliyou': r.AppealReason or '',
|
||||||
'RejectReason': r.RejectReason or '',
|
'bohuiliyou': r.RejectReason or '',
|
||||||
'ProcessorID': r.ProcessorID or '',
|
'chulizhe': r.ProcessorID or '',
|
||||||
'ProcessorIdentity': r.ProcessorIdentity,
|
'chulizhe_shenfen': r.ProcessorIdentity,
|
||||||
'zhengju_tupian': zhengju_map.get(r.id, []),
|
'zhengju_tupian': zhengju_map.get(r.id, []),
|
||||||
'shensu_tupian': shensu_map.get(r.id, []),
|
'shensu_tupian': shensu_map.get(r.id, []),
|
||||||
'CreateTime': r.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if r.CreateTime else '',
|
'creat_time': r.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if r.CreateTime else '',
|
||||||
'UpdateTime': r.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if r.UpdateTime else '',
|
'update_time': r.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if r.UpdateTime else '',
|
||||||
})
|
})
|
||||||
|
|
||||||
return Response({
|
return Response({
|
||||||
@@ -7161,7 +7161,7 @@ class CwhqjtddsjView(APIView):
|
|||||||
'success_count': item['success_count'],
|
'success_count': item['success_count'],
|
||||||
'success_amount': float(item['success_amount'] or 0),
|
'success_amount': float(item['success_amount'] or 0),
|
||||||
'refund_count': item['refund_count'],
|
'refund_count': item['refund_count'],
|
||||||
'PlayerCommission': float(item['PlayerCommission_sum'] or 0),
|
'dashou_fencheng': float(item['PlayerCommission_sum'] or 0),
|
||||||
'dianpu_fenhong': float(item['dianpu_fenhong_sum'] or 0),
|
'dianpu_fenhong': float(item['dianpu_fenhong_sum'] or 0),
|
||||||
'profit': round(total_profit, 2)
|
'profit': round(total_profit, 2)
|
||||||
})
|
})
|
||||||
|
|||||||
165
orders/views.py
165
orders/views.py
@@ -443,7 +443,7 @@ class PaymentVerifyView(APIView):
|
|||||||
return Response({
|
return Response({
|
||||||
'code': 0,
|
'code': 0,
|
||||||
'msg': '订单状态正常',
|
'msg': '订单状态正常',
|
||||||
'data': {'dingdanid': dingdanid, 'Status': dingdan.Status}
|
'data': {'dingdanid': dingdanid, 'zhuangtai': dingdan.Status}
|
||||||
})
|
})
|
||||||
|
|
||||||
# ---------- 5. 如果状态为9,则主动查询微信支付状态 ----------
|
# ---------- 5. 如果状态为9,则主动查询微信支付状态 ----------
|
||||||
@@ -466,11 +466,11 @@ class PaymentVerifyView(APIView):
|
|||||||
return Response({
|
return Response({
|
||||||
'code': 0,
|
'code': 0,
|
||||||
'msg': '支付成功',
|
'msg': '支付成功',
|
||||||
'data': {'dingdanid': dingdanid, 'Status': dingdan.Status}
|
'data': {'dingdanid': dingdanid, 'zhuangtai': dingdan.Status}
|
||||||
})
|
})
|
||||||
elif trade_state in ['NOTPAY', 'USERPAYING']:
|
elif trade_state in ['NOTPAY', 'USERPAYING']:
|
||||||
# 用户尚未支付或支付中
|
# 用户尚未支付或支付中
|
||||||
return Response({'code': 1, 'msg': '支付中', 'data': {'Status': 9}})
|
return Response({'code': 1, 'msg': '支付中', 'data': {'zhuangtai': 9}})
|
||||||
else:
|
else:
|
||||||
# 其他状态:CLOSED, REVOKED, PAYERROR 等,视为支付失败
|
# 其他状态:CLOSED, REVOKED, PAYERROR 等,视为支付失败
|
||||||
return Response({'code': 2, 'msg': '支付失败'})
|
return Response({'code': 2, 'msg': '支付失败'})
|
||||||
@@ -491,7 +491,7 @@ class PaymentVerifyView(APIView):
|
|||||||
8: '结算中',
|
8: '结算中',
|
||||||
0: '订单已作废',
|
0: '订单已作废',
|
||||||
}.get(dingdan.Status, '订单状态异常')
|
}.get(dingdan.Status, '订单状态异常')
|
||||||
return Response({'code': 3, 'msg': status_msg, 'data': {'Status': dingdan.Status}})
|
return Response({'code': 3, 'msg': status_msg, 'data': {'zhuangtai': dingdan.Status}})
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"订单复查接口异常: {e}", exc_info=True)
|
logger.error(f"订单复查接口异常: {e}", exc_info=True)
|
||||||
@@ -1091,11 +1091,11 @@ class DingdanHuoquView(APIView):
|
|||||||
for order in current_page_orders:
|
for order in current_page_orders:
|
||||||
order_data = {
|
order_data = {
|
||||||
'dingdanId': order.OrderID,
|
'dingdanId': order.OrderID,
|
||||||
'Status': order.Status,
|
'zhuangtai': order.Status,
|
||||||
'jine': float(order.Amount) if order.Amount else 0.0,
|
'jine': float(order.Amount) if order.Amount else 0.0,
|
||||||
'ImageURL': order.ImageURL or '',
|
'tupian_url': order.ImageURL or '',
|
||||||
'Description': order.Description or '',
|
'jieshao': order.Description or '',
|
||||||
'Remark': order.Remark or '',
|
'beizhu': order.Remark or '',
|
||||||
'nicheng': order.Nickname or '',
|
'nicheng': order.Nickname or '',
|
||||||
'chuangjianshijian': order.CreateTime.strftime('%Y-%m-%d %H:%M:%S')
|
'chuangjianshijian': order.CreateTime.strftime('%Y-%m-%d %H:%M:%S')
|
||||||
}
|
}
|
||||||
@@ -1212,9 +1212,9 @@ class DingdanXiangqingView(APIView):
|
|||||||
|
|
||||||
# 5. 构建返回数据(字段名与前端对应)
|
# 5. 构建返回数据(字段名与前端对应)
|
||||||
response_data = {
|
response_data = {
|
||||||
'Status': zhuangtai, # 订单状态
|
'zhuangtai': zhuangtai, # 订单状态
|
||||||
'zhiding': zhiding_id, # 指定打手ID
|
'zhiding': zhiding_id, # 指定打手ID
|
||||||
'PlayerID': jiedan_dashou_id, # 服务打手ID
|
'jiedan_dashou_id': jiedan_dashou_id, # 服务打手ID
|
||||||
'dashouliuyan': dashou_liuyan, # 打手留言
|
'dashouliuyan': dashou_liuyan, # 打手留言
|
||||||
'dashoujiaofu': dashoujiaofu_list # 打手交付图片列表
|
'dashoujiaofu': dashoujiaofu_list # 打手交付图片列表
|
||||||
}
|
}
|
||||||
@@ -1545,13 +1545,13 @@ class DingdanXiangqingView2(APIView):
|
|||||||
fanche_cishu = biaoxian.fanche_cishu
|
fanche_cishu = biaoxian.fanche_cishu
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
'Status': zhuangtai,
|
'zhuangtai': zhuangtai,
|
||||||
'PlayerID': jiedan_dashou_id,
|
'jiedan_dashou_id': jiedan_dashou_id,
|
||||||
'dashou_nicheng': dashou_nicheng,
|
'dashou_nicheng': dashou_nicheng,
|
||||||
'dashou_touxiang': dashou_touxiang,
|
'dashou_touxiang': dashou_touxiang,
|
||||||
'dashouliuyan': dashou_liuyan,
|
'dashouliuyan': dashou_liuyan,
|
||||||
'dashoujiaofu': dashoujiaofu_list,
|
'dashoujiaofu': dashoujiaofu_list,
|
||||||
'UpdateTime': update_time,
|
'update_time': update_time,
|
||||||
'jiedan_time': jiedan_time,
|
'jiedan_time': jiedan_time,
|
||||||
'tijiao_time': tijiao_time,
|
'tijiao_time': tijiao_time,
|
||||||
'laoban_pingjia': laoban_pingjia,
|
'laoban_pingjia': laoban_pingjia,
|
||||||
@@ -1787,9 +1787,9 @@ class ShangpinLeixingView(APIView):
|
|||||||
for sp in shangpin_queryset:
|
for sp in shangpin_queryset:
|
||||||
item = {
|
item = {
|
||||||
'id': sp.id,
|
'id': sp.id,
|
||||||
'GrabRequirement': sp.yaoqiuleixing,
|
'yaoqiuleixing': sp.yaoqiuleixing,
|
||||||
'MembershipID': sp.huiyuan_id,
|
'huiyuan_id': sp.huiyuan_id,
|
||||||
'Description': sp.jieshao,
|
'jieshao': sp.jieshao,
|
||||||
# 当前类型所属板块的称号列表(无板块则为空数组)
|
# 当前类型所属板块的称号列表(无板块则为空数组)
|
||||||
'chenghaoList': bankuai_chenghao_map.get(sp.bankuai_id, [])
|
'chenghaoList': bankuai_chenghao_map.get(sp.bankuai_id, [])
|
||||||
}
|
}
|
||||||
@@ -2119,16 +2119,16 @@ class ShangjiaDingdanHuoquView(APIView):
|
|||||||
for shangjia_order in current_page_orders:
|
for shangjia_order in current_page_orders:
|
||||||
order = shangjia_order.Order
|
order = shangjia_order.Order
|
||||||
order_data = {
|
order_data = {
|
||||||
'OrderID': order.OrderID,
|
'dingdan_id': order.OrderID,
|
||||||
'Status': order.Status,
|
'zhuangtai': order.Status,
|
||||||
'jine': float(order.Amount) if order.Amount else 0.0,
|
'jine': float(order.Amount) if order.Amount else 0.0,
|
||||||
'Description': order.Description or '',
|
'jieshao': order.Description or '',
|
||||||
'Remark': order.Remark or '',
|
'beizhu': order.Remark or '',
|
||||||
'nicheng': order.Nickname or '',
|
'nicheng': order.Nickname or '',
|
||||||
'ProductTypeID': order.ProductTypeID, # 🆕 返回商品类型ID
|
'shangpin_leixing_id': order.ProductTypeID, # 返回商品类型ID
|
||||||
'ImageURL': order.ImageURL or '', # 🆕 返回商品图片
|
'tupian_url': order.ImageURL or '', # 返回商品图片
|
||||||
'jiedan_dashou_id': order.PlayerID or '', # 🆕 返回打手ID
|
'jiedan_dashou_id': order.PlayerID or '', # 返回打手ID
|
||||||
'CreateTime': order.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if order.CreateTime else ''
|
'creat_time': order.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if order.CreateTime else ''
|
||||||
}
|
}
|
||||||
order_list.append(order_data)
|
order_list.append(order_data)
|
||||||
|
|
||||||
@@ -2242,12 +2242,12 @@ class ShangjiaDingdanXiangqingView(APIView):
|
|||||||
'chufaliyou': fadan_obj.Reason or '',
|
'chufaliyou': fadan_obj.Reason or '',
|
||||||
'fakuanjine': float(fadan_obj.FineAmount) if fadan_obj.FineAmount else 0.0,
|
'fakuanjine': float(fadan_obj.FineAmount) if fadan_obj.FineAmount else 0.0,
|
||||||
'yingxiang_qiangdan': fadan_obj.AffectsGrabbing,
|
'yingxiang_qiangdan': fadan_obj.AffectsGrabbing,
|
||||||
'Status': fadan_obj.Status,
|
'zhuangtai': fadan_obj.Status,
|
||||||
'shensuliyou': fadan_obj.AppealReason or '',
|
'shensuliyou': fadan_obj.AppealReason or '',
|
||||||
'tongyi_chufaliyou': fadan_obj.ApproveReason or '',
|
'tongyi_chufaliyou': fadan_obj.ApproveReason or '',
|
||||||
'bohuiliyou': fadan_obj.RejectReason or '',
|
'bohuiliyou': fadan_obj.RejectReason or '',
|
||||||
'CreateTime': fadan_obj.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if fadan_obj.CreateTime else '',
|
'creat_time': fadan_obj.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if fadan_obj.CreateTime else '',
|
||||||
'UpdateTime': fadan_obj.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if fadan_obj.UpdateTime else '',
|
'update_time': fadan_obj.UpdateTime.strftime('%Y-%m-%d %H:%M:%S') if fadan_obj.UpdateTime else '',
|
||||||
}
|
}
|
||||||
|
|
||||||
# 7. 商家自己的分红利率(用于罚款分红计算)
|
# 7. 商家自己的分红利率(用于罚款分红计算)
|
||||||
@@ -2279,13 +2279,13 @@ class ShangjiaDingdanXiangqingView(APIView):
|
|||||||
# 9. 构建返回数据
|
# 9. 构建返回数据
|
||||||
response_data = {
|
response_data = {
|
||||||
# 基础订单字段
|
# 基础订单字段
|
||||||
'OrderID': order.OrderID,
|
'dingdan_id': order.OrderID,
|
||||||
'Status': order.Status or 0,
|
'zhuangtai': order.Status or 0,
|
||||||
'jine': float(order.Amount) if order.Amount else 0.0,
|
'jine': float(order.Amount) if order.Amount else 0.0,
|
||||||
'Description': order.Description or '',
|
'jieshao': order.Description or '',
|
||||||
'Remark': order.Remark or '',
|
'beizhu': order.Remark or '',
|
||||||
'nicheng': order.Nickname or '',
|
'nicheng': order.Nickname or '',
|
||||||
'CreateTime': order.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if order.CreateTime else '',
|
'creat_time': order.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if order.CreateTime else '',
|
||||||
|
|
||||||
# 打手信息
|
# 打手信息
|
||||||
'dashou_yonghuid': dashou_yonghuid,
|
'dashou_yonghuid': dashou_yonghuid,
|
||||||
@@ -2294,7 +2294,7 @@ class ShangjiaDingdanXiangqingView(APIView):
|
|||||||
|
|
||||||
# 服务详情
|
# 服务详情
|
||||||
'fuwudashou_id': dashou_yonghuid, # 保留旧字段兼容
|
'fuwudashou_id': dashou_yonghuid, # 保留旧字段兼容
|
||||||
'PlayerRemark': order.PlayerRemark or '',
|
'dashou_liuyan': order.PlayerRemark or '',
|
||||||
'dashou_jiaofu': dashou_jiaofu,
|
'dashou_jiaofu': dashou_jiaofu,
|
||||||
|
|
||||||
# 商家扩展字段(旧)
|
# 商家扩展字段(旧)
|
||||||
@@ -2498,10 +2498,10 @@ class ShangjiaJiesuanView(APIView):
|
|||||||
'code': 0,
|
'code': 0,
|
||||||
'msg': '结单成功',
|
'msg': '结单成功',
|
||||||
'data': {
|
'data': {
|
||||||
'OrderID': dingdan_id,
|
'dingdan_id': dingdan_id,
|
||||||
'new_zhuangtai': 3,
|
'new_zhuangtai': 3,
|
||||||
'jine': float(jine),
|
'jine': float(jine),
|
||||||
'PlayerCommission': float(dashou_fencheng),
|
'dashou_fencheng': float(dashou_fencheng),
|
||||||
'jiedan_dashou_id': jiedan_dashou_id,
|
'jiedan_dashou_id': jiedan_dashou_id,
|
||||||
'pingfen': pingfen,
|
'pingfen': pingfen,
|
||||||
'liuyan': liuyan
|
'liuyan': liuyan
|
||||||
@@ -2644,7 +2644,7 @@ class ShangjiaChexiaoView(APIView):
|
|||||||
'code': 0,
|
'code': 0,
|
||||||
'msg': '撤销成功',
|
'msg': '撤销成功',
|
||||||
'data': {
|
'data': {
|
||||||
'OrderID': dingdan_id,
|
'dingdan_id': dingdan_id,
|
||||||
'new_zhuangtai': 5,
|
'new_zhuangtai': 5,
|
||||||
'tuikuan_liyou': chexiao_liyou,
|
'tuikuan_liyou': chexiao_liyou,
|
||||||
'jine': float(dingdan.Amount) if dingdan.Amount else 0.0
|
'jine': float(dingdan.Amount) if dingdan.Amount else 0.0
|
||||||
@@ -2783,7 +2783,7 @@ class ShangjiaTuikuanShenqingView(APIView):
|
|||||||
'code': 0,
|
'code': 0,
|
||||||
'msg': '退款申请提交成功',
|
'msg': '退款申请提交成功',
|
||||||
'data': {
|
'data': {
|
||||||
'OrderID': dingdan_id,
|
'dingdan_id': dingdan_id,
|
||||||
'new_zhuangtai': 4,
|
'new_zhuangtai': 4,
|
||||||
'tuikuan_liyou': tuikuan_liyou,
|
'tuikuan_liyou': tuikuan_liyou,
|
||||||
'jine': float(dingdan.Amount) if dingdan.Amount else 0.0,
|
'jine': float(dingdan.Amount) if dingdan.Amount else 0.0,
|
||||||
@@ -2943,12 +2943,12 @@ class ShangjiaChufaShenqingView(APIView):
|
|||||||
'code': 0,
|
'code': 0,
|
||||||
'msg': '处罚申请提交成功',
|
'msg': '处罚申请提交成功',
|
||||||
'data': {
|
'data': {
|
||||||
'OrderID': dingdan_id,
|
'dingdan_id': dingdan_id,
|
||||||
'dashou_id': dashou_id,
|
'dashou_id': dashou_id,
|
||||||
'chufa_liyou': chufa_liyou,
|
'chufa_liyou': chufa_liyou,
|
||||||
'sqzhuangtai': 0,
|
'sqzhuangtai': 0,
|
||||||
'jifen': 5,
|
'jifen': 5,
|
||||||
'tupian_count': len(chufa_tupian_urls) if chufa_tupian_urls else 0 # 🔴 返回图片数量
|
'tupian_count': len(chufa_tupian_urls) if chufa_tupian_urls else 0 # 返回图片数量
|
||||||
}
|
}
|
||||||
}, status=status.HTTP_200_OK)
|
}, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
@@ -3140,22 +3140,21 @@ class DashouDingdanHuoquView(APIView):
|
|||||||
zid = order.get('AssignedID')
|
zid = order.get('AssignedID')
|
||||||
info = zhiding_info.get(zid, {})
|
info = zhiding_info.get(zid, {})
|
||||||
formatted_list.append({
|
formatted_list.append({
|
||||||
'OrderID': order['OrderID'],
|
'dingdan_id': order['OrderID'],
|
||||||
'Status': order['Status'],
|
'zhuangtai': order['Status'],
|
||||||
'pingtai': order['Platform'],
|
'pingtai': order['Platform'],
|
||||||
'Platform': order['Platform'],
|
'dashou_fencheng': float(order['PlayerCommission']) if order['PlayerCommission'] else 0.0,
|
||||||
'PlayerCommission': float(order['PlayerCommission']) if order['PlayerCommission'] else 0.0,
|
'zhiding_id': order['AssignedID'] or '',
|
||||||
'AssignedID': order['AssignedID'] or '',
|
'shangpin_leixing_id': order['ProductTypeID'] or 0,
|
||||||
'ProductTypeID': order['ProductTypeID'] or 0,
|
'tupian_url': order['ImageURL'] or '',
|
||||||
'ImageURL': order['ImageURL'] or '',
|
'yaoqiuleixing': order['GrabRequirement'] or 0,
|
||||||
'GrabRequirement': order['GrabRequirement'] or 0,
|
'huiyuan_id': order['MembershipID'] or '',
|
||||||
'MembershipID': order['MembershipID'] or '',
|
|
||||||
'yajin': float(order['CommissionReq']) if order['CommissionReq'] else 0.0,
|
'yajin': float(order['CommissionReq']) if order['CommissionReq'] else 0.0,
|
||||||
'CommissionReq': float(order['CommissionReq']) if order['CommissionReq'] else 0.0,
|
'yongjin': float(order['CommissionReq']) if order['CommissionReq'] else 0.0,
|
||||||
'Description': order['Description'] or '',
|
'jieshao': order['Description'] or '',
|
||||||
'Remark': order['Remark'] or '',
|
'beizhu': order['Remark'] or '',
|
||||||
'creat_time': order['CreateTime'].strftime('%Y-%m-%d %H:%M:%S') if order['CreateTime'] else '',
|
'creat_time': order['CreateTime'].strftime('%Y-%m-%d %H:%M:%S') if order['CreateTime'] else '',
|
||||||
'MerchantNickname': order['MerchantNickname'] or '',
|
'shangjia_nicheng': order['MerchantNickname'] or '',
|
||||||
'zhiding_uid': order['AssignedID'] or '',
|
'zhiding_uid': order['AssignedID'] or '',
|
||||||
'zhiding_avatar': info.get('avatar', ''),
|
'zhiding_avatar': info.get('avatar', ''),
|
||||||
'zhiding_nicheng': info.get('nicheng', ''),
|
'zhiding_nicheng': info.get('nicheng', ''),
|
||||||
@@ -3607,7 +3606,7 @@ class QiangdanView(APIView):
|
|||||||
'code': 200,
|
'code': 200,
|
||||||
'msg': '抢单成功',
|
'msg': '抢单成功',
|
||||||
'data': {
|
'data': {
|
||||||
'OrderID': dingdan_id,
|
'dingdan_id': dingdan_id,
|
||||||
'chat_established': chat_success
|
'chat_established': chat_success
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -3771,13 +3770,13 @@ class DashouDingdanHuoquView1(APIView):
|
|||||||
order_list = []
|
order_list = []
|
||||||
for order in current_page_orders:
|
for order in current_page_orders:
|
||||||
order_data = {
|
order_data = {
|
||||||
'OrderID': order.OrderID,
|
'dingdan_id': order.OrderID,
|
||||||
'Status': order.Status,
|
'zhuangtai': order.Status,
|
||||||
'jine': float(order.PlayerCommission) if order.PlayerCommission else 0.0,
|
'jine': float(order.PlayerCommission) if order.PlayerCommission else 0.0,
|
||||||
'Description': order.Description or '',
|
'jieshao': order.Description or '',
|
||||||
'ImageURL': order.ImageURL or '',
|
'tupian_url': order.ImageURL or '',
|
||||||
'nicheng': order.Nickname or '',
|
'nicheng': order.Nickname or '',
|
||||||
'CreateTime': order.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if order.CreateTime else ''
|
'creat_time': order.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if order.CreateTime else ''
|
||||||
}
|
}
|
||||||
order_list.append(order_data)
|
order_list.append(order_data)
|
||||||
|
|
||||||
@@ -4104,10 +4103,10 @@ class ShangjiaCOSZhengshuView(APIView):
|
|||||||
'region': settings.COS_REGION,
|
'region': settings.COS_REGION,
|
||||||
# 🔴【修改】商家专用上传目录
|
# 🔴【修改】商家专用上传目录
|
||||||
'upload_dir': 'a_long/chfajltp/sjzjtp/',
|
'upload_dir': 'a_long/chfajltp/sjzjtp/',
|
||||||
# 🔴【新增】返回商家ID和订单ID,便于前端生成文件名
|
# 返回商家ID和订单ID,便于前端生成文件名
|
||||||
'OrderID': dingdan_id,
|
'dingdan_id': dingdan_id,
|
||||||
'MerchantID': shangjia_id,
|
'shangjia_id': shangjia_id,
|
||||||
# 🔴【新增】可选:返回商家昵称,便于前端显示
|
# 返回商家昵称,便于前端显示
|
||||||
'shangjia_nicheng': shangjia_profile.nicheng if hasattr(shangjia_profile, 'nicheng') else ''
|
'shangjia_nicheng': shangjia_profile.nicheng if hasattr(shangjia_profile, 'nicheng') else ''
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4238,7 +4237,7 @@ class DashouTijiaoView(APIView):
|
|||||||
'code': 0,
|
'code': 0,
|
||||||
'msg': '订单提交成功',
|
'msg': '订单提交成功',
|
||||||
'data': {
|
'data': {
|
||||||
'OrderID': dingdan_id,
|
'dingdan_id': dingdan_id,
|
||||||
'new_zhuangtai': 8, # 新的订单状态
|
'new_zhuangtai': 8, # 新的订单状态
|
||||||
'dashou_zhuangtai': 1 # 打手新的状态
|
'dashou_zhuangtai': 1 # 打手新的状态
|
||||||
}
|
}
|
||||||
@@ -4302,16 +4301,16 @@ class DashouDingdanXiangqingView(APIView):
|
|||||||
|
|
||||||
# 5. 构建基础订单数据
|
# 5. 构建基础订单数据
|
||||||
dingdan_data = {
|
dingdan_data = {
|
||||||
'OrderID': dingdan.OrderID,
|
'dingdan_id': dingdan.OrderID,
|
||||||
'Status': dingdan.Status,
|
'zhuangtai': dingdan.Status,
|
||||||
'jine': float(dingdan.PlayerCommission) if dingdan.PlayerCommission else 0.0,
|
'jine': float(dingdan.PlayerCommission) if dingdan.PlayerCommission else 0.0,
|
||||||
'Description': dingdan.Description or '',
|
'jieshao': dingdan.Description or '',
|
||||||
'ImageURL': dingdan.ImageURL or '',
|
'tupian_url': dingdan.ImageURL or '',
|
||||||
'nicheng': dingdan.Nickname or '',
|
'nicheng': dingdan.Nickname or '',
|
||||||
'Remark': dingdan.Remark or '',
|
'beizhu': dingdan.Remark or '',
|
||||||
'CreateTime': dingdan.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if dingdan.CreateTime else '',
|
'creat_time': dingdan.CreateTime.strftime('%Y-%m-%d %H:%M:%S') if dingdan.CreateTime else '',
|
||||||
'tuikuan_liyou':dingdan.RefundReason or '',
|
'tuikuan_liyou':dingdan.RefundReason or '',
|
||||||
'PlayerRemark': dingdan.PlayerRemark or '',
|
'dashou_liuyan': dingdan.PlayerRemark or '',
|
||||||
'fuwudashou_id': dingdan.PlayerID or '',
|
'fuwudashou_id': dingdan.PlayerID or '',
|
||||||
'fadanpingtai': dingdan.Platform or ''
|
'fadanpingtai': dingdan.Platform or ''
|
||||||
}
|
}
|
||||||
@@ -4334,7 +4333,7 @@ class DashouDingdanXiangqingView(APIView):
|
|||||||
try:
|
try:
|
||||||
shangjia_kuozhan = dingdan.shangjia_kuozhan
|
shangjia_kuozhan = dingdan.shangjia_kuozhan
|
||||||
shangjia_info = {
|
shangjia_info = {
|
||||||
'MerchantID': shangjia_kuozhan.MerchantID or '',
|
'shangjia_id': shangjia_kuozhan.MerchantID or '',
|
||||||
'shangjia_nicheng': shangjia_kuozhan.MerchantNickname or '',
|
'shangjia_nicheng': shangjia_kuozhan.MerchantNickname or '',
|
||||||
'shangjia_liuyan': shangjia_kuozhan.MerchantReview or '',
|
'shangjia_liuyan': shangjia_kuozhan.MerchantReview or '',
|
||||||
#'tuikuan_liyou': '',
|
#'tuikuan_liyou': '',
|
||||||
@@ -4346,7 +4345,7 @@ class DashouDingdanXiangqingView(APIView):
|
|||||||
except MerchantOrderExt.DoesNotExist:
|
except MerchantOrderExt.DoesNotExist:
|
||||||
# 没有商家扩展信息,返回空值
|
# 没有商家扩展信息,返回空值
|
||||||
shangjia_info = {
|
shangjia_info = {
|
||||||
'MerchantID': '',
|
'shangjia_id': '',
|
||||||
'shangjia_nicheng': '',
|
'shangjia_nicheng': '',
|
||||||
'shangjia_liuyan': '',
|
'shangjia_liuyan': '',
|
||||||
'tuikuan_liyou': '',
|
'tuikuan_liyou': '',
|
||||||
@@ -4465,20 +4464,20 @@ class AdGetDingdanXiangQing(APIView):
|
|||||||
# 7. 构建返回数据 - 主表字段
|
# 7. 构建返回数据 - 主表字段
|
||||||
response_data = {
|
response_data = {
|
||||||
# 基础信息字段
|
# 基础信息字段
|
||||||
'OrderID': dingdan_obj.OrderID or '',
|
'dingdan_id': dingdan_obj.OrderID or '',
|
||||||
'Description': dingdan_obj.Description or '',
|
'jieshao': dingdan_obj.Description or '',
|
||||||
'Status': dingdan_obj.Status or 0,
|
'zhuangtai': dingdan_obj.Status or 0,
|
||||||
'leixing': dingdan_obj.ProductTypeID or 0, # 前端需要 leixing,对应 leixing_id
|
'leixing': dingdan_obj.ProductTypeID or 0, # 前端需要 leixing,对应 leixing_id
|
||||||
'fadanpingtai': dingdan_obj.Platform or 0, # 前端需要 fadanpingtai,对应 fadan_pingtai
|
'fadanpingtai': dingdan_obj.Platform or 0, # 前端需要 fadanpingtai,对应 fadan_pingtai
|
||||||
'jiage': float(dingdan_obj.Amount) if dingdan_obj.Amount else 0.00, # 前端需要 jiage,对应 jine
|
'jiage': float(dingdan_obj.Amount) if dingdan_obj.Amount else 0.00, # 前端需要 jiage,对应 jine
|
||||||
'tupian_url': dingdan_obj.ImageURL or '', # 前端需要 tupian_url,对应 tupian
|
'tupian_url': dingdan_obj.ImageURL or '', # 前端需要 tupian_url,对应 tupian
|
||||||
'Remark': dingdan_obj.Remark or '',
|
'beizhu': dingdan_obj.Remark or '',
|
||||||
|
|
||||||
# 服务信息字段
|
# 服务信息字段
|
||||||
'jiedan_dashou_id': dingdan_obj.PlayerID or '',
|
'jiedan_dashou_id': dingdan_obj.PlayerID or '',
|
||||||
'PlayerCommission': float(dingdan_obj.PlayerCommission) if dingdan_obj.PlayerCommission else 0.00,
|
'dashou_fencheng': float(dingdan_obj.PlayerCommission) if dingdan_obj.PlayerCommission else 0.00,
|
||||||
'AssignedID': dingdan_obj.AssignedID or '',
|
'zhiding_id': dingdan_obj.AssignedID or '',
|
||||||
'PlayerRemark': dingdan_obj.PlayerRemark or '',
|
'dashou_liuyan': dingdan_obj.PlayerRemark or '',
|
||||||
|
|
||||||
# 时间字段
|
# 时间字段
|
||||||
'chuangjianshijian': dingdan_obj.CreateTime.strftime(
|
'chuangjianshijian': dingdan_obj.CreateTime.strftime(
|
||||||
@@ -4516,8 +4515,8 @@ class AdGetDingdanXiangQing(APIView):
|
|||||||
shangjia_kuozhan = dingdan_obj.shangjia_kuozhan
|
shangjia_kuozhan = dingdan_obj.shangjia_kuozhan
|
||||||
|
|
||||||
response_data.update({
|
response_data.update({
|
||||||
'MerchantID': shangjia_kuozhan.MerchantID or '',
|
'shangjia_id': shangjia_kuozhan.MerchantID or '',
|
||||||
'MerchantNickname': shangjia_kuozhan.MerchantNickname or '',
|
'shangjia_nicheng': shangjia_kuozhan.MerchantNickname or '',
|
||||||
'shangjia_pingjia': shangjia_kuozhan.MerchantReview or '',
|
'shangjia_pingjia': shangjia_kuozhan.MerchantReview or '',
|
||||||
'cfliyou': shangjia_kuozhan.PenaltyReason or '', # 商家处罚理由
|
'cfliyou': shangjia_kuozhan.PenaltyReason or '', # 商家处罚理由
|
||||||
'bhliyou': shangjia_kuozhan.RejectReason or '', # 驳回理由
|
'bhliyou': shangjia_kuozhan.RejectReason or '', # 驳回理由
|
||||||
@@ -4525,8 +4524,8 @@ class AdGetDingdanXiangQing(APIView):
|
|||||||
except MerchantOrderExt.DoesNotExist:
|
except MerchantOrderExt.DoesNotExist:
|
||||||
# 扩展表不存在,返回空值
|
# 扩展表不存在,返回空值
|
||||||
response_data.update({
|
response_data.update({
|
||||||
'MerchantID': '',
|
'shangjia_id': '',
|
||||||
'MerchantNickname': '',
|
'shangjia_nicheng': '',
|
||||||
'shangjia_pingjia': '',
|
'shangjia_pingjia': '',
|
||||||
'cfliyou': '',
|
'cfliyou': '',
|
||||||
'bhliyou': '',
|
'bhliyou': '',
|
||||||
|
|||||||
@@ -34,6 +34,12 @@ ROLE_CONFIG = {
|
|||||||
'sort_field': 'CompletedAmount',
|
'sort_field': 'CompletedAmount',
|
||||||
'fields': ('AcceptedOrderTotal', 'CompletedOrderTotal', 'AcceptedAmount', 'CompletedAmount'),
|
'fields': ('AcceptedOrderTotal', 'CompletedOrderTotal', 'AcceptedAmount', 'CompletedAmount'),
|
||||||
'int_fields': frozenset({'AcceptedOrderTotal', 'CompletedOrderTotal'}),
|
'int_fields': frozenset({'AcceptedOrderTotal', 'CompletedOrderTotal'}),
|
||||||
|
'response_field_map': {
|
||||||
|
'AcceptedOrderTotal': 'jiedan_zongliang',
|
||||||
|
'CompletedOrderTotal': 'chengjiao_zongliang',
|
||||||
|
'AcceptedAmount': 'jiedan_zonge',
|
||||||
|
'CompletedAmount': 'chengjiao_zonge',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
'guanshi': {
|
'guanshi': {
|
||||||
'model': ManagerDailyStats,
|
'model': ManagerDailyStats,
|
||||||
@@ -41,6 +47,11 @@ ROLE_CONFIG = {
|
|||||||
'sort_field': 'TotalIncome',
|
'sort_field': 'TotalIncome',
|
||||||
'fields': ('InvitedPlayerCount', 'RechargedPlayerCount', 'TotalIncome'),
|
'fields': ('InvitedPlayerCount', 'RechargedPlayerCount', 'TotalIncome'),
|
||||||
'int_fields': frozenset({'InvitedPlayerCount', 'RechargedPlayerCount'}),
|
'int_fields': frozenset({'InvitedPlayerCount', 'RechargedPlayerCount'}),
|
||||||
|
'response_field_map': {
|
||||||
|
'InvitedPlayerCount': 'yaoqing_dashou_shu',
|
||||||
|
'RechargedPlayerCount': 'chongzhi_dashou_shu',
|
||||||
|
'TotalIncome': 'shouru_zonge',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
'zuzhang': {
|
'zuzhang': {
|
||||||
'model': LeaderDailyStats,
|
'model': LeaderDailyStats,
|
||||||
@@ -48,6 +59,11 @@ ROLE_CONFIG = {
|
|||||||
'sort_field': 'TotalIncome',
|
'sort_field': 'TotalIncome',
|
||||||
'fields': ('InvitedManagerCount', 'CommissionAmount', 'TotalIncome'),
|
'fields': ('InvitedManagerCount', 'CommissionAmount', 'TotalIncome'),
|
||||||
'int_fields': frozenset({'InvitedManagerCount'}),
|
'int_fields': frozenset({'InvitedManagerCount'}),
|
||||||
|
'response_field_map': {
|
||||||
|
'InvitedManagerCount': 'yaoqing_guanshi_shu',
|
||||||
|
'CommissionAmount': 'fenyong_jine',
|
||||||
|
'TotalIncome': 'shouru_zonge',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
'shangjia': {
|
'shangjia': {
|
||||||
'model': MerchantDailyStats,
|
'model': MerchantDailyStats,
|
||||||
@@ -55,6 +71,12 @@ ROLE_CONFIG = {
|
|||||||
'sort_field': 'SettledAmount',
|
'sort_field': 'SettledAmount',
|
||||||
'fields': ('AssignedOrderCount', 'AssignedAmount', 'SettledOrderCount', 'SettledAmount'),
|
'fields': ('AssignedOrderCount', 'AssignedAmount', 'SettledOrderCount', 'SettledAmount'),
|
||||||
'int_fields': frozenset({'AssignedOrderCount', 'SettledOrderCount'}),
|
'int_fields': frozenset({'AssignedOrderCount', 'SettledOrderCount'}),
|
||||||
|
'response_field_map': {
|
||||||
|
'AssignedOrderCount': 'paifa_dingdan_shu',
|
||||||
|
'AssignedAmount': 'paifa_jine',
|
||||||
|
'SettledOrderCount': 'jiesuan_dingdan_shu',
|
||||||
|
'SettledAmount': 'jiesuan_jine',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,6 +208,7 @@ class PhbHqsjView(APIView):
|
|||||||
id_field = cfg['id_field']
|
id_field = cfg['id_field']
|
||||||
|
|
||||||
result_list = []
|
result_list = []
|
||||||
|
response_field_map = cfg.get('response_field_map', {})
|
||||||
for idx, row in enumerate(rows):
|
for idx, row in enumerate(rows):
|
||||||
yonghuid = row[id_field]
|
yonghuid = row[id_field]
|
||||||
item = {
|
item = {
|
||||||
@@ -195,7 +218,8 @@ class PhbHqsjView(APIView):
|
|||||||
'touxiang': avatar_map.get(yonghuid, '') or '',
|
'touxiang': avatar_map.get(yonghuid, '') or '',
|
||||||
}
|
}
|
||||||
for field in cfg['fields']:
|
for field in cfg['fields']:
|
||||||
item[field] = _fmt_value(row.get(field), field in int_fields)
|
response_key = response_field_map.get(field, field)
|
||||||
|
item[response_key] = _fmt_value(row.get(field), field in int_fields)
|
||||||
result_list.append(item)
|
result_list.append(item)
|
||||||
|
|
||||||
return Response({
|
return Response({
|
||||||
|
|||||||
Reference in New Issue
Block a user