!1045 完善一些 MALL TODO

Merge pull request !1045 from puhui999/develop
This commit is contained in:
芋道源码
2024-08-19 11:46:47 +00:00
committed by Gitee
10 changed files with 131 additions and 6 deletions

View File

@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.pay.api.wallet;
import cn.iocoder.yudao.module.pay.api.wallet.dto.PayWalletUpdateBalanceReqDTO;
/**
* 会员钱包 API 接口
*
* @author HUIHUI
*/
public interface PayWalletApi {
/**
* 更新钱包余额
*
* @param reqDTO 请求
*/
void updateBalance(PayWalletUpdateBalanceReqDTO reqDTO);
}

View File

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.pay.api.wallet.dto;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
* 钱包余额更新 Request DTO
*
* @author HUIHUI
*/
@Data
public class PayWalletUpdateBalanceReqDTO {
@NotNull(message = "用户编号不能为空")
private Long userId;
/**
* 变动余额,正数为增加,负数为减少
*/
@NotNull(message = "变动余额不能为空")
private Integer balance;
}

View File

@ -18,7 +18,8 @@ public enum PayWalletBizTypeEnum implements IntArrayValuable {
RECHARGE(1, "充值"),
RECHARGE_REFUND(2, "充值退款"),
PAYMENT(3, "支付"),
PAYMENT_REFUND(4, "支付退款");
PAYMENT_REFUND(4, "支付退款"),
UPDATE_BALANCE(5, "更新余额");
// TODO 后续增加

View File

@ -0,0 +1,43 @@
package cn.iocoder.yudao.module.pay.api.wallet;
import cn.iocoder.yudao.module.pay.api.wallet.dto.PayWalletUpdateBalanceReqDTO;
import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import static cn.iocoder.yudao.framework.common.enums.UserTypeEnum.MEMBER;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.WALLET_NOT_FOUND;
/**
* 会员钱包 API 实现类
*
* @author HUIHUI
*/
@Service
@Validated
@Slf4j
public class PayWalletApiImpl implements PayWalletApi {
@Resource
private PayWalletService payWalletService;
@Override
public void updateBalance(PayWalletUpdateBalanceReqDTO reqDTO) {
// 获得用户钱包
PayWalletDO wallet = payWalletService.getOrCreateWallet(reqDTO.getUserId(), MEMBER.getValue());
if (wallet == null) {
log.error("[updateBalance]reqDTO({}) 用户钱包不存在.", reqDTO);
throw exception(WALLET_NOT_FOUND);
}
// 更新钱包余额
payWalletService.addWalletBalance(wallet.getId(), String.valueOf(reqDTO.getUserId()),
PayWalletBizTypeEnum.UPDATE_BALANCE, reqDTO.getBalance());
}
}

View File

@ -12,12 +12,12 @@ import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
import cn.iocoder.yudao.module.pay.service.wallet.bo.WalletTransactionCreateReqBO;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import jakarta.annotation.Resource;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -176,6 +176,9 @@ public class PayWalletServiceImpl implements PayWalletService {
walletMapper.updateWhenRecharge(payWallet.getId(), price);
break;
}
case UPDATE_BALANCE: // 更新余额
walletMapper.updateWhenRecharge(payWallet.getId(), price);
break;
default: {
// TODO 其它类型待实现
throw new UnsupportedOperationException("待实现");