更新代码管事分红问题

This commit is contained in:
XingQue
2026-06-16 01:56:14 +08:00
parent 790f397893
commit 58b2bdf215
4 changed files with 110 additions and 32 deletions

View File

@@ -8722,6 +8722,7 @@ class KefuGetOrderDetailView(APIView):
'shangjia_kuozhan'
).only(
'dingdan_id', 'zhuangtai', 'fadan_pingtai', 'jine', 'dashou_fencheng',
'guanshi_fencheng', 'guanshi_shangjia_fencheng',
'jiedan_dashou_id', 'dashou_liuyan', 'zhiding_id', 'shangpin_id',
'leixing_id', 'tupian', 'jieshao', 'beizhu', 'tkly', 'nicheng',
'clkf', 'create_time', 'update_time'
@@ -8741,6 +8742,8 @@ class KefuGetOrderDetailView(APIView):
'fadanpingtai': dingdan_obj.fadan_pingtai or 0,
'jiage': float(dingdan_obj.jine) if dingdan_obj.jine else 0.00,
'dashou_fencheng': float(dingdan_obj.dashou_fencheng) if dingdan_obj.dashou_fencheng else 0.00,
'guanshi_fencheng': float(dingdan_obj.guanshi_fencheng) if dingdan_obj.guanshi_fencheng else 0.00,
'guanshi_shangjia_fencheng': float(dingdan_obj.guanshi_shangjia_fencheng) if dingdan_obj.guanshi_shangjia_fencheng else 0.00,
'jiedan_dashou_id': dingdan_obj.jiedan_dashou_id or '',
'dashou_liuyan': dingdan_obj.dashou_liuyan or '',
'zhiding_id': dingdan_obj.zhiding_id or '',
@@ -10236,6 +10239,7 @@ class KefuForceCompleteView(APIView):
return Response({'code': 401, 'msg': '客服状态异常'})
# 2. 订单处理(事务内)
guanshi_settle_ctx = None
try:
with transaction.atomic():
order = Dingdan.objects.select_for_update().get(dingdan_id=dingdan_id)
@@ -10351,10 +10355,8 @@ class KefuForceCompleteView(APIView):
logger.error(f"打手每日统计更新失败: {e}")
# 不影响主流程
# 商家订单管事分红
if order.fadan_pingtai == 2:
from dingdan.utils import settle_shangjia_order_guanshi_fenhong
settle_shangjia_order_guanshi_fenhong(order, dashou_id)
guanshi_settle_ctx = (dingdan_id, dashou_id)
# 8. 更新客服统计
kefu.jinrichuli = F('jinrichuli') + 1
@@ -10362,6 +10364,11 @@ class KefuForceCompleteView(APIView):
kefu.zongchuli = F('zongchuli') + 1
kefu.save(update_fields=['jinrichuli', 'jinyuechuli', 'zongchuli'])
if guanshi_settle_ctx:
from dingdan.utils import settle_shangjia_order_guanshi_fenhong
settle_order = Dingdan.objects.get(dingdan_id=guanshi_settle_ctx[0])
settle_shangjia_order_guanshi_fenhong(settle_order, guanshi_settle_ctx[1])
return Response({'code': 0, 'msg': '强制结单成功'})
except Dingdan.DoesNotExist: