linxk il y a 3 semaines
Parent
commit
78dd7b3763

+ 5 - 0
cif-api/src/main/java/com/txz/cif/param/WithdrawParam.java

@@ -47,6 +47,11 @@ public class WithdrawParam implements Serializable {
      */
     private BigDecimal amount;
 
+    /**
+     * 提现手续费
+     */
+    private BigDecimal fee;
+
     /**
      * 类型 1001充值 2001提现  3001开团支付 3002参团支付  4001未成团退款 4002成团退款 5001开团红包收益 5002参团红包收益 5003签到红包收益 5004下级红包佣金 5005下下级红包佣金 6001充值返点 7001提现手续费 8001冻结 9001解冻
      */

+ 31 - 1
cif-service/src/main/java/com/txz/cif/service/impl/FlowServiceImpl.java

@@ -371,7 +371,7 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
         
         Date today = DateUtil.date();
         Flow flow = Flow.builder()
-                .amount(param.getAmount())
+                .amount(param.getAmount().subtract(param.getFee()))
                 .bizType(param.getBizType())
                 .userId(param.getUserId())
                 .bizNo(param.getBizNo())
@@ -397,6 +397,36 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                 .bizNo(flow.getBizNo()).balance(innerCapitalAccount.getBalance().subtract(flow.getAmount()))
                 .freezeAmount(innerCapitalAccount.getFreezeAmount()).userId(flow.getUserId())
                 .flowType(3).type(1).bizType(param.getBizType()).flowId(flow.getId()).build());
+        Account innerIncomeAccount = accountService.findById(MyConstants.INNER_INCOME);
+        if (innerIncomeAccount == null) {
+            return Result.genFailResult(LocalUtil.get("account.not.found"));
+        }
+        // 提现手续费收入
+        Flow flow2 = Flow.builder().amount(param.getFee()).bizType(BizTypeEnum.WITHDRAWAL_FEE.getKey())
+                .userId(param.getUserId())
+                .bizNo(param.getBizNo())
+                .createTime(today)
+                .updateTime(today)
+                .transTime(param.getTransTime())
+                .debitAccount(account.getId())
+                .creditAccount(MyConstants.INNER_INCOME)
+                .createUser(param.getUserId() + "")
+                .bizId(param.getBizId()).type(6)
+                .build();
+        saveUseGeneratedKeys(flow2);
+        // 借:个人账户钱包(贷)     -500元
+        accountService.deal(AccountFlow.builder().accountId(account.getId()).amount(flow2.getAmount())
+                .bizId(flow2.getBizId()).aliases(account.getAliases()).transTime(param.getTransTime())
+                .bizNo(flow2.getBizNo()).balance(account.getBalance().subtract(flow2.getAmount()))
+                .freezeAmount(account.getFreezeAmount()).userId(flow2.getUserId())
+                .flowType(6).type(1).bizType(param.getBizType()).flowId(flow2.getId()).build());
+        // 贷:平台主营收入(贷)   +500元
+        accountService.deal(AccountFlow.builder().accountId(MyConstants.INNER_INCOME).amount(flow2.getAmount())
+                .bizId(flow2.getBizId()).aliases(innerIncomeAccount.getAliases()).transTime(param.getTransTime())
+                .bizNo(flow2.getBizNo()).balance(innerIncomeAccount.getBalance().add(flow2.getAmount()))
+                .freezeAmount(innerIncomeAccount.getFreezeAmount()).userId(flow2.getUserId())
+                .flowType(6).type(2).bizType(param.getBizType()).flowId(flow2.getId()).build());
+
         return Result.genSuccessResult();
     }
     

+ 2 - 1
cif-service/src/main/java/com/txz/cif/service/impl/WithdrawRecordServiceImpl.java

@@ -115,7 +115,7 @@ public class WithdrawRecordServiceImpl extends AbstractService<WithdrawRecord> i
                                         // .payChannelcode("502")
                                         .payChannelcode(payMentChannelMap.get(w.getChannel().toLowerCase() + "WithdrawCode").toString())
                                         .payNotifyurl(paymentChannel.getWithdrawNotifyUrl())
-                                        .payAmount(w.getAmount().toString())
+                                        .payAmount(w.getAmount().subtract(w.getFee()).toString())
                                         .payProductname("提现")
                                         .payUsername(w.getUserName())
                                         .payBanknumber(user.getBankAccount())
@@ -176,6 +176,7 @@ public class WithdrawRecordServiceImpl extends AbstractService<WithdrawRecord> i
                 .bizType(BizTypeEnum.WITHDRAW.getKey())
                 .userId(record.getUserId())
                 .amount(record.getAmount())
+                .fee(record.getFee())
                 .bizId(record.getId() + "")
                 .bizNo(record.getOrderNo())
                 .transTime(record.getTransTime())

+ 1 - 1
cif-service/src/main/java/com/txz/cif/web/WithdrawRecordApiController.java

@@ -141,7 +141,7 @@ public class WithdrawRecordApiController {
                 return ResultGenerator.genFailResult(ResultCode.AMOUNT_OUT_MAX);
             }
             
-            com.txz.operating.result.Result<ConfigDTO> openRedEnvelopeRate = operatingConfigDubboServiceClient.getConfigByCode("join_red_envelope_rate");
+            com.txz.operating.result.Result<ConfigDTO> openRedEnvelopeRate = operatingConfigDubboServiceClient.getConfigByCode("withdraw_rate");
             String rate = openRedEnvelopeRate.getData().getValueInfo();
             BigDecimal fee = param.getAmount().multiply(new BigDecimal(rate)).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);