This commit is contained in:
zengtao01
2024-10-09 15:51:58 +08:00
parent a1ac698daf
commit 7abaa2d05e
8 changed files with 94 additions and 8 deletions

View File

@ -10,18 +10,16 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
import cn.iocoder.yudao.framework.pay.core.enums.divide.PayDivideRefundStatusRespEnum;
import cn.iocoder.yudao.framework.pay.core.enums.refund.PayRefundStatusRespEnum;
import cn.iocoder.yudao.module.member.api.card.CardApi;
import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskDetailRespVO;
import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskPageReqVO;
import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskRespVO;
import cn.iocoder.yudao.module.pay.convert.notify.PayNotifyTaskConvert;
import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
import cn.iocoder.yudao.module.pay.dal.dataobject.divide.DivideDO;
import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyLogDO;
import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyTaskDO;
import cn.iocoder.yudao.module.pay.dal.dataobject.refundrecord.RefundRecordDO;
import cn.iocoder.yudao.module.pay.dal.dataobject.wxorder.WxOrderDO;
import cn.iocoder.yudao.module.pay.dal.dataobject.wxrefund.WxRefundDO;
import cn.iocoder.yudao.module.pay.dal.mysql.refundrecord.RefundRecordMapper;
import cn.iocoder.yudao.module.pay.dal.mysql.wxorder.WxOrderMapper;
import cn.iocoder.yudao.module.pay.dal.mysql.wxrefund.WxRefundMapper;
import cn.iocoder.yudao.module.pay.service.app.PayAppService;
@ -51,7 +49,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.annotation.security.PermitAll;
import javax.validation.Valid;
import java.util.ArrayList;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@ -87,6 +85,8 @@ public class PayNotifyController {
private WxOrderMapper wxOrderMapper;
@Resource
private StringRedisTemplate notifyRedisTemplate;
@Resource
private CardApi cardApi;
@PostMapping(value = "/order/{channelId}")
@Operation(summary = "支付渠道的统一【支付】回调")
@ -106,6 +106,11 @@ public class PayNotifyController {
// 2. 解析通知数据
PayOrderRespDTO notify = payClient.parseOrderNotify(params, body);
orderService.notifyOrder(channelId, notify);
String re = notifyRedisTemplate.opsForValue().get("ADD" + notify.getOutTradeNo());
if(StringUtils.isNotBlank(re)){
cardApi.recharge(new BigDecimal(re));
notifyRedisTemplate.delete("ADD" + notify.getOutTradeNo());
}
return "success";
}

View File

@ -10,11 +10,9 @@ import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
import cn.iocoder.yudao.framework.pay.core.client.PayClient;
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
import cn.iocoder.yudao.framework.pay.core.enums.divide.PayDivideStatusRespEnum;
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum;
import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
import cn.iocoder.yudao.module.pay.controller.admin.divide.vo.DivideSaveReqVO;
import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderExportReqVO;
import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderPageReqVO;
import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderSubmitReqVO;
@ -38,6 +36,7 @@ import cn.iocoder.yudao.module.pay.service.notify.PayNotifyService;
import cn.iocoder.yudao.module.pay.service.wxorder.WxOrderService;
import com.google.common.annotations.VisibleForTesting;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@ -86,6 +85,9 @@ public class PayOrderServiceImpl implements PayOrderService {
@Resource
private WxOrderService wxOrderService;
@Resource
private StringRedisTemplate payRedis;
@Override
public PayOrderDO getOrder(Long id) {
@ -315,6 +317,8 @@ public class PayOrderServiceImpl implements PayOrderService {
// .setChannelUserId(payOrderDO.getChannelUserId());
// divideService.createDivide(divideSaveReqVO);
payRedis.opsForValue().set("ADD"+payOrderDO.getNo(),payOrderDO.getPrice().toString());
WxOrderSaveReqVO wxOrderSaveReqVO = new WxOrderSaveReqVO();
wxOrderSaveReqVO.setChannelId(channel.getId())
.setChannelCode(channel.getCode())