wujiefeng пре 1 година
родитељ
комит
f946379abe

+ 23 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/pay/WithdrawParam.java

@@ -0,0 +1,23 @@
+package com.zhongshu.card.client.model.pay;
+
+import com.github.microservice.types.payment.PaymentType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class WithdrawParam {
+
+    @Schema(description = "项目oid")
+    private String projectOid;
+
+    @Schema(description = "机构oid")
+    private String oid;
+
+    @Schema(description = "支付渠道")
+    private PaymentType paymentType;
+
+    @Schema(description = "提现金额")
+    private BigDecimal amount;
+}

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/pay/BalanceRechargeOrder.java

@@ -18,6 +18,9 @@ public class BalanceRechargeOrder extends SuperEntity {
     @Schema(description = "项目oid")
     @Schema(description = "项目oid")
     private String projectOid;
     private String projectOid;
 
 
+    @Schema(description = "机构oid")
+    private String oid;
+
     @Schema(description = "用户id")
     @Schema(description = "用户id")
     private String userId;
     private String userId;
 
 

+ 2 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/BalancePayService.java

@@ -91,7 +91,7 @@ public class BalancePayService extends SuperService {
         param.setAppid(appId);
         param.setAppid(appId);
 
 
         //根据项目id和支付渠道获取支付账户名
         //根据项目id和支付渠道获取支付账户名
-        String accountName = orgPayAccountService.queryOgPayAccount(param.getProjectOid(), param.getPaymentType());
+        String accountName = orgPayAccountService.queryOgPayAccount(param.getOid(), param.getPaymentType());
         ;
         ;
         //生成订单id
         //生成订单id
         String orderNo = CommonUtil.UUID();
         String orderNo = CommonUtil.UUID();
@@ -117,6 +117,7 @@ public class BalancePayService extends SuperService {
         balanceRechargeOrder.setTotal(new BigDecimal(param.getTotal()));
         balanceRechargeOrder.setTotal(new BigDecimal(param.getTotal()));
         balanceRechargeOrder.setPrepay(prepay.getContent());
         balanceRechargeOrder.setPrepay(prepay.getContent());
         balanceRechargeOrder.setDescription(param.getDescription());
         balanceRechargeOrder.setDescription(param.getDescription());
+//        balanceRechargeOrder.setOid(param.getOid());
         rechargeOrderDao.save(balanceRechargeOrder);
         rechargeOrderDao.save(balanceRechargeOrder);
         return ResultContent.buildContent(toModel(balanceRechargeOrder));
         return ResultContent.buildContent(toModel(balanceRechargeOrder));
     }
     }

+ 3 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/ChinaumsSenselessPayService.java

@@ -249,7 +249,8 @@ public class ChinaumsSenselessPayService extends SuperService {
     public ResultContent senselessPay(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String remark) {
     public ResultContent senselessPay(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String remark) {
 
 
         //获取银联支付产品账户及需要签约的商户号
         //获取银联支付产品账户及需要签约的商户号
-        String accountName = orgPayAccountService.queryOgPayAccount(projectOid, PaymentType.UnionFrictionlessPay);
+        String accountName = orgPayAccountService.queryOgPayAccount(oid, PaymentType.UnionFrictionlessPay);
+
         com.github.microservice.pay.client.ret.ResultContent<AccountModel> accountModelResultContent = payProductAccountService.get(accountName);
         com.github.microservice.pay.client.ret.ResultContent<AccountModel> accountModelResultContent = payProductAccountService.get(accountName);
         if (!accountModelResultContent.getState().equals(ResultState.Success)){
         if (!accountModelResultContent.getState().equals(ResultState.Success)){
             return ResultContent.buildFail(accountModelResultContent.getMsg());
             return ResultContent.buildFail(accountModelResultContent.getMsg());
@@ -278,7 +279,7 @@ public class ChinaumsSenselessPayService extends SuperService {
 
 
     public Object refund(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String refundOrderNo, String remark) {
     public Object refund(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String refundOrderNo, String remark) {
 
 
-        String accountName = orgPayAccountService.queryOgPayAccount(projectOid, PaymentType.UnionFrictionlessPay);
+        String accountName = orgPayAccountService.queryOgPayAccount(oid, PaymentType.UnionFrictionlessPay);
         com.github.microservice.pay.client.ret.ResultContent<AccountModel> accountModelResultContent = payProductAccountService.get(accountName);
         com.github.microservice.pay.client.ret.ResultContent<AccountModel> accountModelResultContent = payProductAccountService.get(accountName);
         if (!accountModelResultContent.getState().equals(ResultState.Success)){
         if (!accountModelResultContent.getState().equals(ResultState.Success)){
             return accountModelResultContent;
             return accountModelResultContent;

+ 15 - 6
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/WithdrawService.java

@@ -8,6 +8,7 @@ import com.github.microservice.pay.client.ret.ResultState;
 import com.github.microservice.pay.client.service.ledger.GeneralLedgerService;
 import com.github.microservice.pay.client.service.ledger.GeneralLedgerService;
 import com.github.microservice.pay.client.service.ledger.TransactionLogService;
 import com.github.microservice.pay.client.service.ledger.TransactionLogService;
 import com.github.microservice.types.payment.PaymentChannelType;
 import com.github.microservice.types.payment.PaymentChannelType;
+import com.github.microservice.types.payment.PaymentType;
 import com.zhongshu.card.server.core.domain.pay.PayAccount;
 import com.zhongshu.card.server.core.domain.pay.PayAccount;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -52,27 +53,35 @@ public class WithdrawService extends SuperService {
     /**
     /**
      * 查询当前支付渠道可提现余额
      * 查询当前支付渠道可提现余额
      */
      */
-    public Object queryWithdrawAmountByPaymentType(String projectOid, String oid, String paymentType){
+    public com.github.microservice.net.ResultContent queryWithdrawAmount(String projectOid, String oid, PaymentType paymentType){
         //todo 统计当前支付渠道的收入与支出
         //todo 统计当前支付渠道的收入与支出
+        Long amount = queryWithdrawAmountByPaymentType(projectOid, oid, paymentType);
+        if (null == amount){
+            return  com.github.microservice.net.ResultContent.buildFail("查询余额失败");
+        }
+        //todo 收入-支出 等于当前可提现余额
+        return com.github.microservice.net.ResultContent.buildContent(amount);
+    }
+
+    private Long queryWithdrawAmountByPaymentType(String projectOid, String oid, PaymentType paymentType) {
         PayAccount settleAccount = payAccountService.getOrgChildren(projectOid, oid, PaymentChannelType.Settle);
         PayAccount settleAccount = payAccountService.getOrgChildren(projectOid, oid, PaymentChannelType.Settle);
         GeneralLedgerQueryTransactionLogModel queryTransactionLogModel = new GeneralLedgerQueryTransactionLogModel();
         GeneralLedgerQueryTransactionLogModel queryTransactionLogModel = new GeneralLedgerQueryTransactionLogModel();
         queryTransactionLogModel.setFilter(Map.of("meta.paymentType", paymentType));
         queryTransactionLogModel.setFilter(Map.of("meta.paymentType", paymentType));
         queryTransactionLogModel.setGeneralLedgerId(new String[]{settleAccount.getLedgerId()});
         queryTransactionLogModel.setGeneralLedgerId(new String[]{settleAccount.getLedgerId()});
         ResultContent<TransactionLogAggregateRetModel> aggregateRetModelResultContent = transactionLogService.aggregateAmount(queryTransactionLogModel);
         ResultContent<TransactionLogAggregateRetModel> aggregateRetModelResultContent = transactionLogService.aggregateAmount(queryTransactionLogModel);
         if (!aggregateRetModelResultContent.getState().equals(ResultState.Success)){
         if (!aggregateRetModelResultContent.getState().equals(ResultState.Success)){
-            return aggregateRetModelResultContent;
+            return null;
         }
         }
         long amount = aggregateRetModelResultContent.getContent().getStatistics().getCreditCount() - aggregateRetModelResultContent.getContent().getStatistics().getDebitCount();
         long amount = aggregateRetModelResultContent.getContent().getStatistics().getCreditCount() - aggregateRetModelResultContent.getContent().getStatistics().getDebitCount();
-        //todo 收入-支出 等于当前可提现余额
-        return ResultContent.buildContent(amount);
+        return amount;
     }
     }
 
 
     /**
     /**
      * 发起提现
      * 发起提现
      */
      */
-    public Object withdrawApply(String projectOid, String oid, String paymentType, BigDecimal amount){
+    public Object withdrawApply(String projectOid, String oid, PaymentType paymentType, BigDecimal amount){
         //TODO 校验提现金额是否大约可以提现金额
         //TODO 校验提现金额是否大约可以提现金额
-
+        Long waitAmount = queryWithdrawAmountByPaymentType(projectOid, oid, paymentType);
         //TODO 获取支付配置 为线上或者线下
         //TODO 获取支付配置 为线上或者线下
 
 
         //TODO 创建流程
         //TODO 创建流程