回调调整

This commit is contained in:
邱贞招 2024-12-24 08:44:27 +08:00
parent 3edcc599e8
commit 150b2b7c9a
2 changed files with 19 additions and 2 deletions

View File

@ -12,7 +12,8 @@ import lombok.Getter;
public enum RedisLockKey { public enum RedisLockKey {
DEDUCTION("deduction", "押金抵扣"), DEDUCTION("deduction", "押金抵扣"),
EDITPRICE("editPrice", "改价"); EDITPRICE("editPrice", "改价"),
PAYCALLBACK("payCallback", "支付回调");
private final String key; private final String key;
private final String name; private final String name;

View File

@ -13,6 +13,8 @@ import com.ruoyi.common.core.domain.entity.AsUser;
import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.core.redis.RedisLock;
import com.ruoyi.common.core.redis.enums.RedisLockKey;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.pay.wx.domain.NotifyEventType; import com.ruoyi.common.pay.wx.domain.NotifyEventType;
import com.ruoyi.common.utils.*; import com.ruoyi.common.utils.*;
@ -141,10 +143,12 @@ public class CallbackServiceImpl implements CallbackService {
@Value("${aliyun.templateCode2}") @Value("${aliyun.templateCode2}")
private String templateCode2; private String templateCode2;
@Resource @Resource
private EtMsgLogMapper etMsgLogMapper; private EtMsgLogMapper etMsgLogMapper;
@Autowired
private RedisLock redisLock;
/** /**
* 微信支付回调 * 微信支付回调
@ -183,9 +187,21 @@ public class CallbackServiceImpl implements CallbackService {
public void businessHandle(String outTradeNo,AttachVo attachVo,String payType) { public void businessHandle(String outTradeNo,AttachVo attachVo,String payType) {
// 充值成功后的业务处理 // 充值成功后的业务处理
EtOrder order = orderService.selectEtOrderByOutTradeNo(outTradeNo); EtOrder order = orderService.selectEtOrderByOutTradeNo(outTradeNo);
String orderNo = order.getOrderNo();
if(order.getPaid().equals(ServiceConstants.ORDER_PAY_STATUS_PAID)){ if(order.getPaid().equals(ServiceConstants.ORDER_PAY_STATUS_PAID)){
return; return;
} }
// 加锁
ServiceUtil.assertion(!redisLock.lock(RedisLockKey.PAYCALLBACK, orderNo), "当前订单正在支付,请稍后再试!");
try {
busHandle(order, attachVo, payType);
} finally {
// 解锁
redisLock.unlock(RedisLockKey.PAYCALLBACK, orderNo);
}
}
private void busHandle(EtOrder order, AttachVo attachVo, String payType) {
EtOrder order1 = new EtOrder(); EtOrder order1 = new EtOrder();
order1.setOrderId(order.getOrderId()); order1.setOrderId(order.getOrderId());
logger.info("【支付回调】订单信息 : {}", JSON.toJSONString(order)); logger.info("【支付回调】订单信息 : {}", JSON.toJSONString(order));