This commit is contained in:
shuhongfan
2023-09-04 16:40:17 +08:00
commit cf5ac25c14
8267 changed files with 1305066 additions and 0 deletions

3
sl-express-ms-trade-api/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
.idea
target/
*.iml

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.sl-express</groupId>
<artifactId>sl-express-parent</artifactId>
<version>1.4</version>
</parent>
<groupId>com.sl-express.ms.trade</groupId>
<artifactId>sl-express-ms-trade-api</artifactId>
<version>1.1-SNAPSHOT</version>
<description>交易(支付)微服务 - Feign接口</description>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<sl-express-trade-domain.version>1.1-SNAPSHOT</sl-express-trade-domain.version>
</properties>
<dependencies>
<dependency>
<groupId>com.sl-express.ms.trade</groupId>
<artifactId>sl-express-ms-trade-domain</artifactId>
<version>${sl-express-trade-domain.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,24 @@
package com.sl.ms.trade.api;
import com.sl.ms.trade.api.fallback.JsapiPayFeignFallbackFactory;
import com.sl.ms.trade.domain.request.JsapiPayDTO;
import com.sl.ms.trade.domain.response.JsapiPayResponseDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = "sl-express-ms-trade", contextId = "JsapiPay", path = "jsapi", fallbackFactory = JsapiPayFeignFallbackFactory.class)
public interface JsapiPayFeign {
/***
* 统一jsapi交易预创建
* 商户系统先调用该接口在微信支付服务后台生成预支付交易单返回正确的预支付交易会话标识后再按Native、
* JSAPI、APP等不同场景生成交易串调起支付。
* @param jsapiPayDTO jsapi提交支付请求对象
*
* @return 交易单,支付串码
*/
@PostMapping
JsapiPayResponseDTO createJsapiTrading(@RequestBody JsapiPayDTO jsapiPayDTO);
}

View File

@@ -0,0 +1,32 @@
package com.sl.ms.trade.api;
import com.sl.ms.trade.api.fallback.NativePayFeignFallbackFactory;
import com.sl.ms.trade.domain.request.NativePayDTO;
import com.sl.ms.trade.domain.response.NativePayResponseDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = "sl-express-ms-trade", contextId = "NativePay", path = "native", fallbackFactory = NativePayFeignFallbackFactory.class)
public interface NativePayFeign {
/***
* 扫码支付,收银员通过收银台或商户后台调用此接口,生成二维码后,展示给用户,由用户扫描二维码完成订单支付。
*
* @param nativePayDTO 扫码支付提交参数
* @return 扫码支付响应数据,其中包含二维码路径
*/
@PostMapping
NativePayResponseDTO createDownLineTrading(@RequestBody NativePayDTO nativePayDTO);
/**
* 查看二维码
*
* @param tradingOrderNo 交易单号
* @return 二维码图片 base64格式
*/
@GetMapping("qrcode/{tradingOrderNo}")
String queryQrCode(@PathVariable("tradingOrderNo") Long tradingOrderNo);
}

View File

@@ -0,0 +1,25 @@
package com.sl.ms.trade.api;
import com.sl.ms.trade.api.fallback.TradingFeignFallbackFactory;
import com.sl.ms.trade.domain.RefundRecordDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(value = "sl-express-ms-trade", contextId = "RefundRecord", path = "refund/records", fallbackFactory = TradingFeignFallbackFactory.class)
public interface RefundRecordFeign {
/**
* 根据业务系统订单号 或 交易单号查询退款单 (二个至少传递一个,优先按照交易单号查询)
*
* @param productOrderNo 业务订单号
* @param tradingOrderNo 交易单号
* @return 退款单列表
*/
@GetMapping
List<RefundRecordDTO> findList(@RequestParam(value = "productOrderNo", required = false) Long productOrderNo,
@RequestParam(value = "tradingOrderNo", required = false) Long tradingOrderNo);
}

View File

@@ -0,0 +1,23 @@
package com.sl.ms.trade.api;
import com.sl.ms.trade.api.fallback.TradingFeignFallbackFactory;
import com.sl.ms.trade.domain.TradingDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(value = "sl-express-ms-trade", contextId = "Trading", path = "tradings", fallbackFactory = TradingFeignFallbackFactory.class)
public interface TradingFeign {
/**
* 根据业务系统订单号 或 交易单号查询交易单 (二个至少传递一个,优先按照交易单号查询)
*
* @param productOrderNo 业务订单号
* @param tradingOrderNo 交易单号
* @return 交易单数据
*/
@GetMapping
TradingDTO queryTrading(@RequestParam(value = "productOrderNo", required = false) Long productOrderNo,
@RequestParam(value = "tradingOrderNo", required = false) Long tradingOrderNo);
}

View File

@@ -0,0 +1,22 @@
package com.sl.ms.trade.api.fallback;
import com.sl.ms.trade.api.JsapiPayFeign;
import com.sl.ms.trade.domain.request.JsapiPayDTO;
import com.sl.ms.trade.domain.response.JsapiPayResponseDTO;
import org.springframework.cloud.openfeign.FallbackFactory;
/**
* @author zzj
* @version 1.0
*/
public class JsapiPayFeignFallbackFactory implements FallbackFactory<JsapiPayFeign> {
@Override
public JsapiPayFeign create(Throwable cause) {
return new JsapiPayFeign() {
@Override
public JsapiPayResponseDTO createJsapiTrading(JsapiPayDTO jsapiPayDTO) {
return null;
}
};
}
}

View File

@@ -0,0 +1,27 @@
package com.sl.ms.trade.api.fallback;
import com.sl.ms.trade.api.NativePayFeign;
import com.sl.ms.trade.domain.request.NativePayDTO;
import com.sl.ms.trade.domain.response.NativePayResponseDTO;
import org.springframework.cloud.openfeign.FallbackFactory;
/**
* @author zzj
* @version 1.0
*/
public class NativePayFeignFallbackFactory implements FallbackFactory<NativePayFeign> {
@Override
public NativePayFeign create(Throwable cause) {
return new NativePayFeign() {
@Override
public NativePayResponseDTO createDownLineTrading(NativePayDTO nativePayDTO) {
return null;
}
@Override
public String queryQrCode(Long tradingOrderNo) {
return null;
}
};
}
}

View File

@@ -0,0 +1,23 @@
package com.sl.ms.trade.api.fallback;
import com.sl.ms.trade.api.RefundRecordFeign;
import com.sl.ms.trade.domain.RefundRecordDTO;
import org.springframework.cloud.openfeign.FallbackFactory;
import java.util.List;
/**
* @author zzj
* @version 1.0
*/
public class RefundRecordFeignFallbackFactory implements FallbackFactory<RefundRecordFeign> {
@Override
public RefundRecordFeign create(Throwable cause) {
return new RefundRecordFeign() {
@Override
public List<RefundRecordDTO> findList(Long productOrderNo, Long tradingOrderNo) {
return null;
}
};
}
}

View File

@@ -0,0 +1,21 @@
package com.sl.ms.trade.api.fallback;
import com.sl.ms.trade.api.TradingFeign;
import com.sl.ms.trade.domain.TradingDTO;
import org.springframework.cloud.openfeign.FallbackFactory;
/**
* @author zzj
* @version 1.0
*/
public class TradingFeignFallbackFactory implements FallbackFactory<TradingFeign> {
@Override
public TradingFeign create(Throwable cause) {
return new TradingFeign() {
@Override
public TradingDTO queryTrading(Long productOrderNo, Long tradingOrderNo) {
return null;
}
};
}
}