第二轮:客服额度资金闭环与收回额度
- 划额度扣商家余额,客服派单/链接只扣个人额度 - 新增 wallet/revoke 收回未使用额度,权限 wallet_revoke - 客服额度单撤销/退款只释放额度,不再误退商家余额 - 链接待填单(13)可撤销;总管/财务可划收额度
This commit is contained in:
@@ -2585,8 +2585,8 @@ class ShangjiaChexiaoView(APIView):
|
||||
'data': None
|
||||
}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
# 6. 验证订单状态
|
||||
if dingdan.Status not in [1, 7]:
|
||||
# 6. 验证订单状态(13=链接待填单,可撤销释放额度)
|
||||
if dingdan.Status not in [1, 7, 13]:
|
||||
return Response({
|
||||
'code': 6,
|
||||
'msg': '当前订单状态不可撤销',
|
||||
@@ -2620,16 +2620,19 @@ class ShangjiaChexiaoView(APIView):
|
||||
|
||||
)
|
||||
|
||||
# 9. 更新商家扩展表数据(使用F表达式原子操作)
|
||||
UserShangjia.query.filter(id=shangjia.id).update(
|
||||
yue=F('yue') + dingdan.Amount,
|
||||
tuikuan=F('tuikuan') + 1,
|
||||
jinridingdan=F('jinridingdan') - 1,
|
||||
jinyuedingdan=F('jinyuedingdan') - 1,
|
||||
jinriliushui=F('jinriliushui') - dingdan.Amount,
|
||||
jinyueliushui=F('jinyueliushui') - dingdan.Amount,
|
||||
|
||||
)
|
||||
# 9. 更新商家扩展表(客服额度单不退商家余额,只释放额度)
|
||||
from merchant_ops.services.wallet import is_staff_quota_order
|
||||
staff_quota_order = is_staff_quota_order(dingdan_id)
|
||||
shangjia_updates = {
|
||||
'tuikuan': F('tuikuan') + 1,
|
||||
'jinridingdan': F('jinridingdan') - 1,
|
||||
'jinyuedingdan': F('jinyuedingdan') - 1,
|
||||
'jinriliushui': F('jinriliushui') - dingdan.Amount,
|
||||
'jinyueliushui': F('jinyueliushui') - dingdan.Amount,
|
||||
}
|
||||
if not staff_quota_order:
|
||||
shangjia_updates['yue'] = F('yue') + dingdan.Amount
|
||||
UserShangjia.query.filter(id=shangjia.id).update(**shangjia_updates)
|
||||
|
||||
# 10. 更新订单状态为5(已退款)
|
||||
dingdan.Status = 5
|
||||
@@ -5351,8 +5354,9 @@ class AdTongYiTuiKuanShangJia(APIView):
|
||||
# ✅ 确认字段:tuikuan 退款订单总量
|
||||
shangjia_profile.tuikuan += 1
|
||||
|
||||
# ✅ 确认字段:yue 商家余额(加上订单金额)
|
||||
shangjia_profile.yue += jine
|
||||
from merchant_ops.services.wallet import is_staff_quota_order
|
||||
if not is_staff_quota_order(dingdan_id):
|
||||
shangjia_profile.yue += jine
|
||||
|
||||
shangjia_profile.save()
|
||||
logger.info(f"同意退款成功,商家{shangjia_id}退款订单+1,余额增加:{jine}")
|
||||
|
||||
Reference in New Issue
Block a user