fix: 微信支付入账补记 + 财务按俱乐部分组

This commit is contained in:
XingQue
2026-06-24 21:10:55 +08:00
parent 0827da594c
commit a6068f7e2b
7 changed files with 240 additions and 35 deletions

View File

@@ -11928,7 +11928,15 @@ class FaKuanHuitiaoView(View):
# 5. 检查订单状态是否为未支付9
if order.zhuangtai != 9:
logger.warning(f"订单状态不是未支付: {order.dingdan_id}, 当前状态: {order.zhuangtai}")
# 已处理过的订单直接返回成功,避免微信重复回调
try:
from jituan.services.szjilu_accounting import repair_wechat_income_if_missing
repair_wechat_income_if_missing(
Decimal(str(order.jine)),
getattr(order, 'club_id', None),
biz_ref=f'cz:{out_trade_no}',
)
except Exception as exc:
logger.error('罚款回调补记收支失败 %s: %s', out_trade_no, exc, exc_info=True)
return self.wechat_response('SUCCESS', 'OK')
# 6. 验证金额(微信返回的是分,需要转换)
@@ -11970,8 +11978,8 @@ class FaKuanHuitiaoView(View):
# 9. 更新收支记录表
try:
jine_decimal = Decimal(str(order.jine)) if not isinstance(order.jine, Decimal) else order.jine
from jituan.services.szjilu_accounting import record_wechat_income_once
record_wechat_income_once(
from jituan.services.szjilu_accounting import repair_wechat_income_if_missing
repair_wechat_income_if_missing(
jine_decimal,
getattr(order, 'club_id', None),
biz_ref=f'cz:{order.dingdan_id}',
@@ -12475,9 +12483,17 @@ class KaohePayCallbackView(View):
if order.zhuangtai != 9:
logger.warning(f"订单状态非未支付: {order.zhuangtai}, 订单号: {out_trade_no}")
# 已支付的订单直接返回成功,避免微信重复回调
if order.zhuangtai == 3:
logger.info(f"订单已支付,直接返回成功: {out_trade_no}")
logger.info(f"订单已支付,补试收支记账: {out_trade_no}")
try:
from jituan.services.szjilu_accounting import repair_wechat_income_if_missing
repair_wechat_income_if_missing(
Decimal(str(order.jine)),
getattr(order, 'club_id', None),
biz_ref=f'cz:{out_trade_no}',
)
except Exception as exc:
logger.error('考核回调补记收支失败 %s: %s', out_trade_no, exc, exc_info=True)
return self.wechat_response('SUCCESS', 'OK')
return self.wechat_response('FAIL', '订单状态异常')
@@ -12532,8 +12548,8 @@ class KaohePayCallbackView(View):
# 更新收支记录
try:
jine_decimal = Decimal(str(order.jine))
from jituan.services.szjilu_accounting import record_wechat_income_once
record_wechat_income_once(
from jituan.services.szjilu_accounting import repair_wechat_income_if_missing
repair_wechat_income_if_missing(
jine_decimal,
getattr(order, 'club_id', None),
biz_ref=f'cz:{order.dingdan_id}',