mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	| @@ -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); | ||||
|  | ||||
| } | ||||
| @@ -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; | ||||
|  | ||||
| } | ||||
| @@ -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 后续增加 | ||||
|  | ||||
|   | ||||
| @@ -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()); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -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("待实现"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 芋道源码
					芋道源码