TRX hace 1 año
padre
commit
c294019d60
Se han modificado 14 ficheros con 58 adiciones y 37 borrados
  1. 0 3
      PaymentClient/src/main/java/com/zhongshu/payment/client/model/param/WalletQueryParam.java
  2. 10 8
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/BasePayService.java
  3. 9 0
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/OrderPayFeignService.java
  4. 1 1
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/DirectPayService.java
  5. 1 1
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/FrictionlessPay.java
  6. 1 1
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/WalletPayService.java
  7. 1 1
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/impl/AliPayDirectPayService.java
  8. 1 1
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/impl/UnionFrictionlessPayService.java
  9. 1 1
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/impl/WeChatDirectPayService.java
  10. 1 1
      PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/impl/WeChatWalletPayService.java
  11. 0 3
      PaymentClient/src/main/java/com/zhongshu/payment/client/payModel/balance/BalanceQueryParam.java
  12. 18 9
      PaymentServer/src/main/java/com/zhongshu/payment/server/core/pay/OrderPayService.java
  13. 1 1
      PaymentServer/src/main/java/com/zhongshu/payment/server/core/pay/impl/unionFrictionlessPay/UnionFrictionlessPayMainService.java
  14. 13 6
      PaymentServer/src/main/java/com/zhongshu/payment/server/core/pay/impl/wallet/WalletMainService.java

+ 0 - 3
PaymentClient/src/main/java/com/zhongshu/payment/client/model/param/WalletQueryParam.java

@@ -18,9 +18,6 @@ import lombok.NoArgsConstructor;
 @Builder
 public class WalletQueryParam {
 
-    @Schema(description = "渠道类型")
-    private PaymentType paymentType;
-
     @Schema(description = "项目Oid")
     private String projectOid;
 

+ 10 - 8
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/BasePayService.java

@@ -15,13 +15,13 @@ import com.zhongshu.payment.client.payModel.commn.PayOrderParam;
 import com.zhongshu.payment.client.payModel.unionFrictionlessPay.model.OrderQueryParam;
 import jakarta.servlet.http.HttpServletRequest;
 
-public interface BasePayService<T extends BasePayParam> {
+public abstract class BasePayService {
 
     // 创建并支付订单
-    ResultContent createAndPayOrder(CreateOrderParam param);
+    public abstract ResultContent createAndPayOrder(CreateOrderParam param);
 
     // 查询付款账户信息
-    ResultContent<WalletModel> getWallet(WalletQueryParam param);
+    public abstract ResultContent<WalletModel> getWallet(WalletQueryParam param);
 
     /**
      * 查询渠道余额
@@ -29,18 +29,20 @@ public interface BasePayService<T extends BasePayParam> {
      * @param param
      * @return
      */
-    ResultContent<BalanceModel> queryBalance(BalanceQueryParam param);
+    public ResultContent<BalanceModel> queryBalance(BalanceQueryParam param) {
+        return ResultContent.buildFail("当前渠道不支持");
+    }
 
     // 根据本地 创建渠道支付订单
-    ResultContent createChannelOrder(OrderParam param);
+    public abstract ResultContent createChannelOrder(OrderParam param);
 
     // 支付订单
-    ResultContent payOrder(PayOrderParam param);
+    public abstract ResultContent payOrder(PayOrderParam param);
 
     // 支付回调
-    ResultContent payNotify(HttpServletRequest request, PayNotifyParam param);
+    public abstract ResultContent payNotify(HttpServletRequest request, PayNotifyParam param);
 
     // 关闭支付订单
-    ResultContent closePayOrder(ClosePayOrderParam param);
+    public abstract ResultContent closePayOrder(ClosePayOrderParam param);
 
 }

+ 9 - 0
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/OrderPayFeignService.java

@@ -1,6 +1,8 @@
 package com.zhongshu.payment.client.pay.service;
 
 import com.github.microservice.net.ResultContent;
+import com.zhongshu.payment.client.payModel.balance.BalanceModel;
+import com.zhongshu.payment.client.payModel.balance.BalanceQueryParam;
 import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
@@ -22,4 +24,11 @@ public interface OrderPayFeignService {
     @RequestMapping(value = "createAndPay", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
     ResultContent createAndPay(@RequestBody @Valid CreateOrderParam param);
 
+
+    /**
+     * 查询余额
+     */
+    @RequestMapping(value = "queryBalance", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
+    ResultContent<BalanceModel> queryBalance(@RequestBody @Valid BalanceQueryParam param);
+
 }

+ 1 - 1
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/DirectPayService.java

@@ -6,5 +6,5 @@ import com.zhongshu.payment.client.pay.service.BasePayService;
 /**
  * 通用自营支付
  */
-public interface DirectPayService extends BasePayService {
+public abstract class DirectPayService extends BasePayService {
 }

+ 1 - 1
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/FrictionlessPay.java

@@ -4,5 +4,5 @@ import com.github.microservice.pay.model.create.BaseCreateOrderModel;
 import com.github.microservice.pay.params.BasePayParam;
 import com.zhongshu.payment.client.pay.service.BasePayService;
 
-public interface FrictionlessPay<T extends BasePayParam> extends BasePayService<T> {
+public abstract class FrictionlessPay extends BasePayService {
 }

+ 1 - 1
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/WalletPayService.java

@@ -5,6 +5,6 @@ import com.zhongshu.payment.client.pay.service.BasePayService;
 /**
  * 钱包支付
  */
-public interface WalletPayService extends BasePayService {
+public abstract class WalletPayService extends BasePayService {
 
 }

+ 1 - 1
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/impl/AliPayDirectPayService.java

@@ -2,5 +2,5 @@ package com.zhongshu.payment.client.pay.service.impl.impl;
 
 import com.zhongshu.payment.client.pay.service.impl.DirectPayService;
 
-public interface AliPayDirectPayService extends DirectPayService {
+public abstract class AliPayDirectPayService extends DirectPayService {
 }

+ 1 - 1
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/impl/UnionFrictionlessPayService.java

@@ -3,6 +3,6 @@ package com.zhongshu.payment.client.pay.service.impl.impl;
 import com.github.microservice.pay.model.create.BaseCreateOrderModel;
 import com.zhongshu.payment.client.pay.service.impl.FrictionlessPay;
 
-public interface UnionFrictionlessPayService<T extends BaseCreateOrderModel> extends FrictionlessPay<T> {
+public abstract class UnionFrictionlessPayService extends FrictionlessPay {
 
 }

+ 1 - 1
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/impl/WeChatDirectPayService.java

@@ -5,5 +5,5 @@ import com.zhongshu.payment.client.pay.service.impl.DirectPayService;
 /**
  * 微信支付 自营支付
  */
-public interface WeChatDirectPayService extends DirectPayService {
+public abstract class WeChatDirectPayService extends DirectPayService {
 }

+ 1 - 1
PaymentClient/src/main/java/com/zhongshu/payment/client/pay/service/impl/impl/WeChatWalletPayService.java

@@ -5,6 +5,6 @@ import com.zhongshu.payment.client.pay.service.impl.WalletPayService;
 /**
  * 微信 - 钱包支付
  */
-public interface WeChatWalletPayService extends WalletPayService {
+public abstract class WeChatWalletPayService extends WalletPayService {
 
 }

+ 0 - 3
PaymentClient/src/main/java/com/zhongshu/payment/client/payModel/balance/BalanceQueryParam.java

@@ -19,9 +19,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 @NoArgsConstructor
 public class BalanceQueryParam extends BasePayParam {
 
-    @Schema(description = "项目oid")
-    private String oid;
-
     @Schema(description = "钱包类型")
     private WalletType walletType;
 

+ 18 - 9
PaymentServer/src/main/java/com/zhongshu/payment/server/core/pay/OrderPayService.java

@@ -4,7 +4,10 @@ import com.github.microservice.core.helper.ApplicationContextHolder;
 import com.github.microservice.models.type.PaymentType;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
+import com.github.microservice.pay.params.BasePayParam;
 import com.zhongshu.payment.client.pay.service.BasePayService;
+import com.zhongshu.payment.client.payModel.balance.BalanceModel;
+import com.zhongshu.payment.client.payModel.balance.BalanceQueryParam;
 import com.zhongshu.payment.client.payModel.commn.CreateOrderParam;
 import com.zhongshu.payment.client.pay.service.OrderPayFeignService;
 import com.zhongshu.payment.server.core.dao.ExecuteMethodInfoDao;
@@ -31,19 +34,25 @@ public class OrderPayService implements OrderPayFeignService {
 
     @Override
     public ResultContent createAndPay(CreateOrderParam param) {
-        PaymentType paymentType = param.getPaymentType();
-        if (paymentType == null) {
-            return ResultContent.buildFail("paymentType 不能为空");
+        ResultContent<BasePayService> content = getServiceBean(param);
+        if (content.isFailed()) {
+            return ResultContent.buildFail(content.getMsg());
         }
-        ExecuteMethodInfo executeMethodInfo = executeMethodInfoDao.findTopByPaymentType(paymentType);
-        if (ObjectUtils.isEmpty(executeMethodInfo)) {
-            return ResultContent.buildFail(String.format(ResultMessage.SERVICE_NAME_NOT_EXIT, paymentType.getRemark()));
+        return content.getContent().createAndPayOrder(param);
+    }
+
+    @Override
+    public ResultContent<BalanceModel> queryBalance(BalanceQueryParam param) {
+        ResultContent<BasePayService> content = getServiceBean(param);
+        if (content.isFailed()) {
+            return ResultContent.buildFail(content.getMsg());
         }
-        SuperPayService service = (SuperPayService) ApplicationContextHolder.getContext().getBean(executeMethodInfo.getBeanName());
-        return service.createAndPayOrder(param);
+        return content.getContent().queryBalance(param);
     }
 
-    private ResultContent<BasePayService> getServiceBean(PaymentType paymentType) {
+
+    private ResultContent<BasePayService> getServiceBean(BasePayParam param) {
+        PaymentType paymentType = param.getPaymentType();
         if (paymentType == null) {
             return ResultContent.buildFail("未指定支付方式");
         }

+ 1 - 1
PaymentServer/src/main/java/com/zhongshu/payment/server/core/pay/impl/unionFrictionlessPay/UnionFrictionlessPayMainService.java

@@ -93,7 +93,7 @@ import java.util.stream.Collectors;
 @Slf4j
 @Service
 @PayAnnotationService(paymentType = PaymentType.UnionFrictionlessPay, remark = "银联无感支付")
-public class UnionFrictionlessPayMainService implements UnionFrictionlessPayService {
+public class UnionFrictionlessPayMainService extends UnionFrictionlessPayService {
 
     @Autowired
     UnionRequestService unionRequestService;

+ 13 - 6
PaymentServer/src/main/java/com/zhongshu/payment/server/core/pay/impl/wallet/WalletMainService.java

@@ -60,7 +60,7 @@ import java.util.concurrent.CompletableFuture;
 @Slf4j
 @Service
 @PayAnnotationService(paymentType = PaymentType.UserWallet, remark = "个人钱包")
-public class WalletMainService implements WeChatWalletPayService {
+public class WalletMainService extends WeChatWalletPayService {
 
     @Autowired
     WalletDao walletDao;
@@ -230,6 +230,18 @@ public class WalletMainService implements WeChatWalletPayService {
         return ResultContent.buildSuccess();
     }
 
+    @Override
+    public ResultContent<BalanceModel> queryBalance(BalanceQueryParam param) {
+        WalletQueryParam queryParam = new WalletQueryParam();
+        BeanUtils.copyPropertiesWithoutNull(param, queryParam);
+        WalletModel walletModel = toModel(findWallet(queryParam));
+        BalanceModel model = new BalanceModel();
+        if (ObjectUtils.isNotEmpty(walletModel)) {
+            model.setTotalAmount(walletModel.getTotalAmount());
+            model.setAmount(walletModel.getAmount());
+        }
+        return ResultContent.buildSuccess(model);
+    }
 
     @Override
     public ResultContent payNotify(HttpServletRequest request, PayNotifyParam param) {
@@ -247,11 +259,6 @@ public class WalletMainService implements WeChatWalletPayService {
         return ResultContent.buildContent(toModel(findWallet(param)));
     }
 
-    @Override
-    public ResultContent<BalanceModel> queryBalance(BalanceQueryParam param) {
-        return null;
-    }
-
     @Override
     public ResultContent closePayOrder(ClosePayOrderParam param) {
         return ResultContent.buildFail("暂未实现");