fix: 微信支付入账补记 + 财务按俱乐部分组
This commit is contained in:
@@ -608,7 +608,15 @@ class YajinHuitiao(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. 验证金额(微信返回的是分,需要转换)
|
||||
@@ -1117,6 +1125,15 @@ class JifenHuitiao(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. 验证金额(固定5元)
|
||||
@@ -1663,6 +1680,16 @@ class HuiyuanHuitiao(View):
|
||||
if order.zhuangtai == 3:
|
||||
from jituan.services.member_recharge import repair_member_entitlement_if_paid
|
||||
repair_member_entitlement_if_paid(out_trade_no)
|
||||
try:
|
||||
from decimal import Decimal
|
||||
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')
|
||||
|
||||
wechat_amount_yuan = total_fee / 100
|
||||
@@ -2232,7 +2259,15 @@ class ShangjiaHuitiao(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:{order.dingdan_id}',
|
||||
)
|
||||
except Exception as exc:
|
||||
logger.error('商家回调补记收支失败 %s: %s', out_trade_no, exc, exc_info=True)
|
||||
return self.wechat_response('SUCCESS', 'OK')
|
||||
|
||||
# 6. 验证金额(微信返回的是分,需要转换)
|
||||
@@ -2248,8 +2283,8 @@ class ShangjiaHuitiao(View):
|
||||
# 更新收支记录表
|
||||
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}',
|
||||
|
||||
Reference in New Issue
Block a user