修复了罚单履约与回退机制
This commit is contained in:
@@ -205,17 +205,33 @@ def fulfill_fakuan(dingdan_id, paid_amount_yuan=None):
|
||||
fadan = None
|
||||
m = re.search(r'#fadan:(\d+)', order.shuoming or '')
|
||||
if m:
|
||||
fadan_id_str = m.group(1)
|
||||
fadan = Penalty.query.filter(
|
||||
id=int(m.group(1)),
|
||||
id=int(fadan_id_str),
|
||||
PenalizedUserID=order.yonghuid,
|
||||
Status__in=[1, 3],
|
||||
).first()
|
||||
if not fadan:
|
||||
logger.warning(
|
||||
'罚款订单 %s shuoming 标记罚单 %s 未找到(被处罚者=%s, 状态需为1/3)',
|
||||
dingdan_id, fadan_id_str, order.yonghuid,
|
||||
)
|
||||
else:
|
||||
logger.warning(
|
||||
'罚款订单 %s shuoming 无 #fadan:xxx 标记,回退金额匹配: %s',
|
||||
dingdan_id, order.shuoming,
|
||||
)
|
||||
if not fadan:
|
||||
fadan = Penalty.query.filter(
|
||||
PenalizedUserID=order.yonghuid,
|
||||
FineAmount=order.jine,
|
||||
Status__in=[1, 3],
|
||||
).order_by('-CreateTime').first()
|
||||
if fadan:
|
||||
logger.warning(
|
||||
'罚款订单 %s 回退金额匹配到罚单 %s(金额=%s)',
|
||||
dingdan_id, fadan.id, order.jine,
|
||||
)
|
||||
if fadan:
|
||||
fadan.Status = 2
|
||||
fadan.save(update_fields=['Status'])
|
||||
@@ -224,6 +240,11 @@ def fulfill_fakuan(dingdan_id, paid_amount_yuan=None):
|
||||
logger.error('罚单 %s 分红处理失败: %s', fadan.id, msg)
|
||||
else:
|
||||
logger.info('罚单 %s 分红处理完成: %s', fadan.id, msg)
|
||||
else:
|
||||
logger.error(
|
||||
'罚款订单 %s 未找到对应罚单,罚单状态未更新(被处罚者=%s, 金额=%s)',
|
||||
dingdan_id, order.yonghuid, order.jine,
|
||||
)
|
||||
except Exception as exc:
|
||||
logger.error('罚款罚单状态更新失败 dingdan=%s: %s', dingdan_id, exc, exc_info=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user