Browse Source

Merge branch 'dev' into 'mp-server-test'

提现计费

See merge request quanshu/mp-server!1048
Evan 2 năm trước cách đây
mục cha
commit
5ea85bb0e2

+ 4 - 2
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelWithdrawController.java

@@ -220,8 +220,10 @@ public class ChannelWithdrawController extends BaseApiController {
     if (param.getMoney() > channel.getMoney() ) {
       return AjaxResult.error("提现金额超出了余额");
     }
+    // 固定1元手续费
+    int fixedFee = 100;
     int feeAmt = new BigDecimal(param.getMoney()).multiply(feeRate)
-        .divide(new BigDecimal(100), 0, RoundingMode.HALF_UP).intValue();
+        .divide(new BigDecimal(100), 0, RoundingMode.HALF_UP).intValue() + fixedFee;
     ChannelWithdraw channelWithdraw = new ChannelWithdraw();
     if (param.getMoney() + feeAmt > channel.getMoney()) {
       channelWithdraw.setMoney(new BigDecimal(channel.getMoney()).divide(new BigDecimal(1).add(feeRate.divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)), 0, RoundingMode.HALF_UP).intValue());
@@ -233,7 +235,7 @@ public class ChannelWithdrawController extends BaseApiController {
     channelWithdraw.setUserName(param.getUserName());
     channelWithdraw.setCardNo(param.getCardNo());
     channelWithdraw.setBankName(param.getBankName());
-    channelWithdraw.setBranchName(param.getBranchName());
+//    channelWithdraw.setBranchName(param.getBranchName());
 
     // 缓存订单结算对象
     redisCache.setCacheObject(CHANNEL_WITHDRAW_CACHE_KEY + channelId, channelWithdraw, 1, TimeUnit.MINUTES);

+ 1 - 1
mp-service/src/main/java/com/qs/mp/channel/domain/param/ChannelWithdrawParam.java

@@ -34,7 +34,7 @@ public class ChannelWithdrawParam {
   @ApiModelProperty(value = "银行名",required=false)
   private String bankName;
 
-  @NotNull(message = "开户行不能为空")
+//  @NotNull(message = "开户行不能为空")
   @ApiModelProperty(value = "开户行",required=true)
   private String branchName;
 }

+ 18 - 15
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelWithdrawServiceImpl.java

@@ -48,28 +48,31 @@ public class ChannelWithdrawServiceImpl extends ServiceImpl<ChannelWithdrawMappe
   private IChannelMoneyLogService channelMoneyLogService;
 
   @Override
-  @Transactional
+  @Transactional(rollbackFor = Exception.class)
   public boolean apply(Channel channel, ChannelWithdraw channelWithdraw) {
 
     // 更新用户的银行卡信息
     ChannelBankCard bankCard = channelBankCardService.getOne(new LambdaQueryWrapper<ChannelBankCard>()
         .eq(ChannelBankCard::getChannelId, channel.getChannelId()));
     if (null == bankCard) {
-      bankCard = new ChannelBankCard();
-      bankCard.setChannelId(channel.getChannelId());
-      bankCard.setCardNo(channelWithdraw.getCardNo());
-      bankCard.setBankName(channelWithdraw.getBankName());
-      bankCard.setBranchName(channelWithdraw.getBranchName());
-      bankCard.setUserName(channelWithdraw.getUserName());
-      channelBankCardService.save(bankCard);
-    } else {
-      bankCard.setCardNo(channelWithdraw.getCardNo());
-      bankCard.setBankName(channelWithdraw.getBankName());
-      bankCard.setBranchName(channelWithdraw.getBranchName());
-      bankCard.setUserName(channelWithdraw.getUserName());
-      channelBankCardService.updateById(bankCard);
+      throw new RuntimeException("请先绑定银行卡");
     }
-    boolean rst = save(channelWithdraw);
+//      bankCard = new ChannelBankCard();
+//      bankCard.setChannelId(channel.getChannelId());
+//      bankCard.setCardNo(channelWithdraw.getCardNo());
+//      bankCard.setBankName(channelWithdraw.getBankName());
+//      bankCard.setBranchName(channelWithdraw.getBranchName());
+//      bankCard.setUserName(channelWithdraw.getUserName());
+//      channelBankCardService.save(bankCard);
+//    } else {
+//      bankCard.setCardNo(channelWithdraw.getCardNo());
+//      bankCard.setBankName(channelWithdraw.getBankName());
+//      bankCard.setBranchName(channelWithdraw.getBranchName());
+//      bankCard.setUserName(channelWithdraw.getUserName());
+//      channelBankCardService.updateById(bankCard);
+//    }
+//    boolean rst = save(channelWithdraw);
+    boolean rst = true;
 
     ChannelMoneyLog moneyLog = new ChannelMoneyLog();
     moneyLog.setChannelId(channel.getChannelId());