Jelajahi Sumber

分销:调整 app 的 price 到 brokeragePrice

YunaiV 1 tahun lalu
induk
melakukan
cd51d57f12

+ 2 - 1
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletTransactionConvert.java

@@ -14,5 +14,6 @@ public interface PayWalletTransactionConvert {
 
     PageResult<AppPayWalletTransactionRespVO> convertPage(PageResult<PayWalletTransactionDO> page);
 
-    PayWalletTransactionDO convert(CreateWalletTransactionBO bo);
+    PayWalletTransactionDO convert(CreateWalletTransactionBO bean);
+
 }

+ 4 - 2
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletMapper.java

@@ -22,7 +22,8 @@ public interface PayWalletMapper extends BaseMapperX<PayWalletDO> {
      */
     default int updateWhenConsumptionRefund(Integer price, Long id){
         LambdaUpdateWrapper<PayWalletDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<PayWalletDO>()
-                .setSql(" balance = balance + " + price + ", total_expense = total_expense - " + price)
+                .setSql(" balance = balance + " + price
+                        + ", total_expense = total_expense - " + price)
                 .eq(PayWalletDO::getId, id);
         return update(null, lambdaUpdateWrapper);
     }
@@ -35,7 +36,8 @@ public interface PayWalletMapper extends BaseMapperX<PayWalletDO> {
      */
     default int updateWhenConsumption(Integer price, Long id){
         LambdaUpdateWrapper<PayWalletDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<PayWalletDO>()
-                .setSql(" balance = balance - " + price + ", total_expense = total_expense + " + price)
+                .setSql(" balance = balance - " + price
+                        + ", total_expense = total_expense + " + price)
                 .eq(PayWalletDO::getId, id)
                 .ge(PayWalletDO::getBalance, price); // cas 逻辑
         return update(null, lambdaUpdateWrapper);

+ 9 - 7
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java

@@ -112,13 +112,14 @@ public class PayWalletServiceImpl implements  PayWalletService {
     @Override
     public PayWalletTransactionDO reduceWalletBalance(Long userId, Integer userType,
                                                       Long bizId, PayWalletBizTypeEnum bizType, Integer price) {
-        // 1.1 获取钱包
+        // 1. 获取钱包
         PayWalletDO payWallet = getOrCreateWallet(userId, userType);
+
         // 2.1 扣除余额
-        int number = 0 ;
+        int updateCounts = 0 ;
         switch (bizType) {
             case PAYMENT: {
-                number = walletMapper.updateWhenConsumption(price, payWallet.getId());
+                updateCounts = walletMapper.updateWhenConsumption(price, payWallet.getId());
                 break;
             }
             case RECHARGE_REFUND: {
@@ -126,11 +127,11 @@ public class PayWalletServiceImpl implements  PayWalletService {
                 break;
             }
         }
-        if (number == 0) {
+        if (updateCounts == 0) {
             throw exception(WALLET_BALANCE_NOT_ENOUGH);
         }
-        int afterBalance = payWallet.getBalance() - price;
         // 2.2 生成钱包流水
+        Integer afterBalance = payWallet.getBalance() - price;
         CreateWalletTransactionBO bo = new CreateWalletTransactionBO().setWalletId(payWallet.getId())
                 .setPrice(-price).setBalance(afterBalance).setBizId(String.valueOf(bizId))
                 .setBizType(bizType.getType()).setTitle(bizType.getDescription());
@@ -140,7 +141,7 @@ public class PayWalletServiceImpl implements  PayWalletService {
     @Override
     public PayWalletTransactionDO addWalletBalance(Long userId, Integer userType,
                                                    Long bizId, PayWalletBizTypeEnum bizType, Integer price) {
-        // 获取钱包
+        // 1. 获取钱包
         PayWalletDO payWallet = getOrCreateWallet(userId, userType);
         switch (bizType) {
             case PAYMENT_REFUND: {
@@ -153,7 +154,8 @@ public class PayWalletServiceImpl implements  PayWalletService {
                 break;
             }
         }
-        // 2.2 生成钱包流水
+
+        // 2. 生成钱包流水
         CreateWalletTransactionBO bo = new CreateWalletTransactionBO().setWalletId(payWallet.getId())
                 .setPrice(price).setBalance(payWallet.getBalance()+price).setBizId(String.valueOf(bizId))
                 .setBizType(bizType.getType()).setTitle(bizType.getDescription());

+ 4 - 1
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletTransactionService.java

@@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO;
 import cn.iocoder.yudao.module.pay.enums.member.PayWalletBizTypeEnum;
 import cn.iocoder.yudao.module.pay.service.wallet.bo.CreateWalletTransactionBO;
 
+import javax.validation.Valid;
+
 /**
  * 钱包余额流水 Service 接口
  *
@@ -29,7 +31,7 @@ public interface PayWalletTransactionService {
      * @param bo 创建钱包流水 bo
      * @return 新建的钱包 do
      */
-    PayWalletTransactionDO createWalletTransaction(CreateWalletTransactionBO bo);
+    PayWalletTransactionDO createWalletTransaction(@Valid CreateWalletTransactionBO bo);
 
     /**
      * 根据 no,获取钱包余流水
@@ -46,4 +48,5 @@ public interface PayWalletTransactionService {
      * @return 钱包流水
      */
     PayWalletTransactionDO getWalletTransaction(String bizId, PayWalletBizTypeEnum type);
+    
 }

+ 7 - 4
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletTransactionServiceImpl.java

@@ -22,10 +22,12 @@ import javax.annotation.Resource;
 @Service
 @Slf4j
 public class PayWalletTransactionServiceImpl implements PayWalletTransactionService {
+
     /**
      * 钱包流水的 no 前缀
      */
     private static final String WALLET_NO_PREFIX = "W";
+
     @Resource
     private PayWalletService payWalletService;
     @Resource
@@ -42,10 +44,10 @@ public class PayWalletTransactionServiceImpl implements PayWalletTransactionServ
 
     @Override
     public PayWalletTransactionDO createWalletTransaction(CreateWalletTransactionBO bo) {
-        PayWalletTransactionDO transactionDO = PayWalletTransactionConvert.INSTANCE.convert(bo);
-        transactionDO.setNo(noRedisDAO.generate(WALLET_NO_PREFIX));
-        payWalletTransactionMapper.insert(transactionDO);
-        return transactionDO;
+        PayWalletTransactionDO transaction = PayWalletTransactionConvert.INSTANCE.convert(bo)
+                .setNo(noRedisDAO.generate(WALLET_NO_PREFIX));
+        payWalletTransactionMapper.insert(transaction);
+        return transaction;
     }
 
     @Override
@@ -57,4 +59,5 @@ public class PayWalletTransactionServiceImpl implements PayWalletTransactionServ
     public PayWalletTransactionDO getWalletTransaction(String bizId, PayWalletBizTypeEnum type) {
         return payWalletTransactionMapper.selectByBiz(bizId, type.getType());
     }
+
 }

+ 2 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/bo/CreateWalletTransactionBO.java

@@ -11,6 +11,8 @@ import lombok.Data;
 @Data
 public class CreateWalletTransactionBO {
 
+    // TODO @jason:bo 的话,最好加个参数校验哈;
+
     /**
      * 钱包编号
      *