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-domain/.gitignore vendored Normal file
View File

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

View File

@@ -0,0 +1,41 @@
<?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-domain</artifactId>
<version>1.1-SNAPSHOT</version>
<description>交易(支付)微服务 - 实体</description>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<sl-express-common.version>1.2-SNAPSHOT</sl-express-common.version>
</properties>
<dependencies>
<dependency>
<groupId>com.sl-express.common</groupId>
<artifactId>sl-express-common</artifactId>
<version>${sl-express-common.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,56 @@
package com.sl.ms.trade.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import java.util.List;
/**
* @ClassName PayChannelVo.java
* @Description 支付通道
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("支付通道对象")
public class PayChannelDTO {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "通道名称")
private String channelName;
@ApiModelProperty(value = "通道唯一标记")
private String channelLabel;
@ApiModelProperty(value = "域名")
private String domain;
@ApiModelProperty(value = "商户appid")
private String appId;
@ApiModelProperty(value = "公钥")
private String publicKey;
@ApiModelProperty(value = "商户私钥")
private String merchantPrivateKey;
@ApiModelProperty(value = "其他配置")
private String otherConfig;
@ApiModelProperty(value = "AES混淆密钥")
private String encryptKey;
@ApiModelProperty(value = "说明")
private String remark;
@ApiModelProperty(value = "选中节点")
private String[] checkedIds;
@ApiModelProperty(value = "回调地址")
private String notifyUrl;
@ApiModelProperty(value = "是否有效")
protected String enableFlag;
@ApiModelProperty(value = "商户号")
private Long enterpriseId;
@ApiModelProperty(value = "创建时间")
protected LocalDateTime createdTime;
@ApiModelProperty(value = "更新时间")
protected LocalDateTime updatedTime;
}

View File

@@ -0,0 +1,51 @@
package com.sl.ms.trade.domain;
import com.sl.ms.trade.enums.RefundStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @Description
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("退款对象")
public class RefundRecordDTO {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "交易系统订单号【对于三方来说:商户订单】")
private Long tradingOrderNo;
@ApiModelProperty(value = "业务系统订单号")
private Long productOrderNo;
@ApiModelProperty(value = "本次退款订单号")
private String refundNo;
@ApiModelProperty(value = "商户号")
private Long enterpriseId;
@ApiModelProperty(value = "退款渠道【支付宝、微信、现金】")
private String tradingChannel;
@ApiModelProperty(value = "退款状态")
private RefundStatusEnum refundStatus;
@ApiModelProperty(value = "返回编码")
private String refundCode;
@ApiModelProperty(value = "返回信息")
private String refundMsg;
@ApiModelProperty(value = "备注【订单门店,桌台信息】")
private String memo;
@ApiModelProperty(value = "原订单金额")
private BigDecimal total;
@ApiModelProperty(value = "创建时间")
protected LocalDateTime created;
@ApiModelProperty(value = "更新时间")
protected LocalDateTime updated;
}

View File

@@ -0,0 +1,77 @@
package com.sl.ms.trade.domain;
import com.sl.ms.trade.enums.TradingStateEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("交易数据对象")
public class TradingDTO {
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "openId标识")
private String openId;
@ApiModelProperty(value = "业务系统订单号")
private Long productOrderNo;
@ApiModelProperty(value = "交易系统订单号【对于三方来说:商户订单】")
private Long tradingOrderNo;
@ApiModelProperty(value = "支付渠道【支付宝、微信、现金、免单挂账】")
private String tradingChannel;
@ApiModelProperty(value = "交易类型【付款、退款、免单、挂账】")
private String tradingType;
@ApiModelProperty(value = "交易单状态【DFK待付款,FKZ付款中,QXDD取消订单,YJS已结算,MD免单,GZ挂账】")
private TradingStateEnum tradingState;
@ApiModelProperty(value = "收款人姓名")
private String payeeName;
@ApiModelProperty(value = "收款人账户ID")
private Long payeeId;
@ApiModelProperty(value = "付款人姓名")
private String payerName;
@ApiModelProperty(value = "付款人Id")
private Long payerId;
@ApiModelProperty(value = "交易金额,单位:元")
private BigDecimal tradingAmount;
@ApiModelProperty(value = "退款金额【付款后】,单位:元")
private BigDecimal refund;
@ApiModelProperty(value = "是否有退款YESNO")
private String isRefund;
@ApiModelProperty(value = "第三方交易返回编码【最终确认交易结果】")
private String resultCode;
@ApiModelProperty(value = "第三方交易返回提示消息【最终确认交易信息】")
private String resultMsg;
@ApiModelProperty(value = "第三方交易返回信息json【分析交易最终信息】")
private String resultJson;
@ApiModelProperty(value = "统一下单返回编码")
private String placeOrderCode;
@ApiModelProperty(value = "统一下单返回信息")
private String placeOrderMsg;
@ApiModelProperty(value = "统一下单返回信息json【用于生产二维码、Android ios唤醒支付等】")
private String placeOrderJson;
@ApiModelProperty(value = "商户号")
private Long enterpriseId;
@ApiModelProperty(value = "备注,如:运费")
private String memo;
@ApiModelProperty(value = "二维码base64数据")
private String qrCode;
@ApiModelProperty(value = "是否有效")
protected String enableFlag;
@ApiModelProperty(value = "退款请求号")
private String outRequestNo;
@ApiModelProperty(value = "操作退款金额")
private BigDecimal operTionRefund;
@ApiModelProperty(value = "创建时间")
protected LocalDateTime created;
@ApiModelProperty(value = "更新时间")
protected LocalDateTime updated;
}

View File

@@ -0,0 +1,30 @@
package com.sl.ms.trade.domain.request;
import com.sl.ms.trade.enums.PayChannelEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* jsapi提交支付请求对象
*
* @author zzj
* @version 1.0
*/
@Data
public class JsapiPayDTO {
@ApiModelProperty(value = "openId标识", required = true)
private String openId;
@ApiModelProperty(value = "商户号", required = true)
private Long enterpriseId;
@ApiModelProperty(value = "业务系统订单号", required = true)
private Long productOrderNo;
@ApiModelProperty(value = "支付渠道", required = true)
private PayChannelEnum tradingChannel;
@ApiModelProperty(value = "交易金额,单位:元", required = true)
private BigDecimal tradingAmount;
@ApiModelProperty(value = "备注,如:运费", required = true)
private String memo;
}

View File

@@ -0,0 +1,34 @@
package com.sl.ms.trade.domain.request;
import com.sl.ms.trade.enums.PayChannelEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Data
public class NativePayDTO {
@ApiModelProperty(value = "商户号", required = true)
@NotNull(message = "商户号不能为空")
private Long enterpriseId;
@ApiModelProperty(value = "业务系统订单号", required = true)
@NotNull(message = "业务系统订单号不能为空")
private Long productOrderNo;
@ApiModelProperty(value = "支付渠道", required = true)
@NotNull(message = "支付渠道不能为空")
private PayChannelEnum tradingChannel;
@ApiModelProperty(value = "交易金额,单位:元", required = true)
@NotNull(message = "交易金额不能为空")
private BigDecimal tradingAmount;
@ApiModelProperty(value = "备注,如:运费", required = true)
@NotNull(message = "备注不能为空")
private String memo;
}

View File

@@ -0,0 +1,28 @@
package com.sl.ms.trade.domain.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 扫码支付响应数据
*
* @author zzj
* @version 1.0
*/
@Data
public class JsapiPayResponseDTO {
@ApiModelProperty(value = "业务系统订单号")
private Long productOrderNo;
@ApiModelProperty(value = "交易系统订单号【对于三方来说:商户订单】")
private Long tradingOrderNo;
@ApiModelProperty(value = "支付渠道【支付宝、微信、现金、免单挂账】")
private String tradingChannel;
@ApiModelProperty(value = "统一下单返回信息,预支付编号")
private String placeOrderMsg;
@ApiModelProperty(value = "统一下单返回信息json【用于生产二维码、Android ios唤醒支付等】")
private String placeOrderJson;
}

View File

@@ -0,0 +1,26 @@
package com.sl.ms.trade.domain.response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 扫码支付响应数据
*
* @author zzj
* @version 1.0
*/
@Data
public class NativePayResponseDTO {
@ApiModelProperty(value = "二维码base64数据")
private String qrCode;
@ApiModelProperty(value = "业务系统订单号")
private Long productOrderNo;
@ApiModelProperty(value = "交易系统订单号【对于三方来说:商户订单】")
private Long tradingOrderNo;
@ApiModelProperty(value = "支付渠道【支付宝、微信、现金、免单挂账】")
private String tradingChannel;
}

View File

@@ -0,0 +1,38 @@
package com.sl.ms.trade.enums;
import cn.hutool.core.util.EnumUtil;
import com.sl.transport.common.enums.BaseEnum;
/**
* 支付渠道枚举
*
* @author zzj
* @version 1.0
*/
public enum PayChannelEnum implements BaseEnum {
ALI_PAY(1, "支付宝"),
WECHAT_PAY(2, "微信支付");
private Integer code;
private String value;
PayChannelEnum(Integer code, String value) {
this.code = code;
this.value = value;
}
@Override
public Integer getCode() {
return this.code;
}
@Override
public String getValue() {
return this.value;
}
public static PayChannelEnum codeOf(Integer code) {
return EnumUtil.getBy(PayChannelEnum::getCode, code);
}
}

View File

@@ -0,0 +1,38 @@
package com.sl.ms.trade.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import com.sl.transport.common.enums.BaseEnum;
/**
* 退款状态枚举
*
* @author zzj
* @version 1.0
*/
public enum RefundStatusEnum implements BaseEnum {
SENDING(1, "退款中"),
SUCCESS(2, "成功"),
FAIL(3, "失败");
@EnumValue
@JsonValue
private Integer code;
private String value;
RefundStatusEnum(Integer code, String value) {
this.code = code;
this.value = value;
}
@Override
public Integer getCode() {
return this.code;
}
@Override
public String getValue() {
return this.value;
}
}

View File

@@ -0,0 +1,42 @@
package com.sl.ms.trade.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import com.sl.transport.common.enums.BaseEnum;
/**
* 交易单状态枚举
*
* @author zzj
* @version 1.0
*/
public enum TradingStateEnum implements BaseEnum {
DFK(1, "待付款"),
FKZ(2, "付款中"),
FKSB(3, "付款失败"),
YJS(4, "已结算(已付款)"),
QXDD(5, "取消订单"),
MD(6, "免单"),
GZ(7, "挂账");
@EnumValue
@JsonValue
private Integer code;
private String value;
TradingStateEnum(Integer code, String value) {
this.code = code;
this.value = value;
}
@Override
public Integer getCode() {
return this.code;
}
@Override
public String getValue() {
return this.value;
}
}