feat:bug修改

This commit is contained in:
dzc committed 2025-12-26 11:07:59 +08:00
1 parent bb942b08bc
commit d6f80025e4
20 files changed
+187 -17

No files matched your search

@@ -23,6 +23,11 @@
<artifactId>yudao-module-pay-api</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-module-trade-api</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
@@ -32,8 +32,7 @@ public class PayWalletRechargeController {
@Operation(summary = "更新钱包充值为已充值") // 由 pay-module 支付服务,进行回调,可见 PayNotifyJob
@PermitAll // 无需登录, 内部校验实现
public CommonResult<Boolean> updateWalletRechargerPaid(@Valid @RequestBody PayOrderNotifyReqDTO notifyReqDTO) {
walletRechargeService.updateWalletRechargerPaid(Long.valueOf(notifyReqDTO.getMerchantOrderId()),
notifyReqDTO.getPayOrderId());
walletRechargeService.updateWalletRechargerPaid(Long.valueOf(notifyReqDTO.getMerchantOrderId()), notifyReqDTO.getPayOrderId());
return success(true);
}
@@ -32,6 +32,9 @@ import cn.iocoder.yudao.module.product.api.gift.ProductGiftApi;
import cn.iocoder.yudao.module.product.api.gift.dto.ProductGiftRespDTO;
import cn.iocoder.yudao.module.system.api.social.SocialClientApi;
import cn.iocoder.yudao.module.system.api.social.dto.SocialWxaSubscribeMessageSendReqDTO;
import cn.iocoder.yudao.module.trade.api.brokerage.TradeBrokerageRecordApi;
import cn.iocoder.yudao.module.trade.api.brokerage.dto.BrokerageAddDTO;
import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -40,6 +43,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import static cn.hutool.core.util.ObjectUtil.notEqual;
@@ -83,6 +88,8 @@ public class PayWalletRechargeServiceImpl implements PayWalletRechargeService {
private ProductGiftApi productGiftApi;
@Resource
private MemberUserApi memberUserApi;
@Resource
private TradeBrokerageRecordApi tradeBrokerageRecordApi;
@Resource
private PayProperties payProperties;
@@ -187,6 +194,9 @@ public class PayWalletRechargeServiceImpl implements PayWalletRechargeService {
log.error("[updateWalletRechargerPaid][recharge({}) payOrder({}) 不存在充值订单,请进行处理!]", id, payOrderId);
throw exception(WALLET_RECHARGE_NOT_FOUND);
}
PayWalletDO wallet = payWalletService.getWallet(recharge.getWalletId());
// 查询用户
MemberUserRespDTO user = memberUserApi.getUser(wallet.getUserId());
// 1.2 校验钱包充值是否可以支付
if (recharge.getPayStatus()) {
// 特殊:如果订单已支付,且支付单号相同,直接返回,说明重复回调
@@ -216,6 +226,19 @@ public class PayWalletRechargeServiceImpl implements PayWalletRechargeService {
payWalletService.addWalletBalance(recharge.getWalletId(), String.valueOf(id),
PayWalletBizTypeEnum.RECHARGE, recharge.getTotalPrice());
// 添加分销记录
List<BrokerageAddDTO> brokerageList = new ArrayList<BrokerageAddDTO>() {{
add(new BrokerageAddDTO()
.setBizId(String.valueOf(id))
.setBasePrice(payOrderDO.getPrice())
.setFirstFixedPrice(0)
.setSecondFixedPrice(0)
.setSourceUserId(wallet.getUserId())
.setTitle(String.format("用户[%s]充值[%s]元", user.getNickname(), fenToYuanStr(payOrderDO.getPrice())))
);
}};
tradeBrokerageRecordApi.addBrokerage(recharge.getId(), BrokerageRecordBizTypeEnum.ORDER, brokerageList);
// 5. 发送订阅消息
getSelf().sendWalletRechargerPaidMessage(payOrderId, recharge);
}