feat:清分功能
parent
0315387bc7
commit
8791ce454b
|
|
@ -64,4 +64,31 @@ public class OrderSettleService {
|
|||
return httpResponse.getServiceResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* 301510-订单清算受理
|
||||
*
|
||||
* @author H.T
|
||||
* @since 2026/1/15
|
||||
*/
|
||||
public OrderBaseResponse settleAccept(OrderSettleAcceptRequest request) {
|
||||
String url = "/order/settle/accept";
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.addHeader(API_VERSION, V_2);
|
||||
HttpResponse<OrderBaseResponse> httpResponse = apiClient.post(url, headers, request.toJsonRequest(), OrderBaseResponse.class);
|
||||
return httpResponse.getServiceResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* 301511-订单清算结果查询
|
||||
*
|
||||
* @author H.T
|
||||
* @since 2026/1/15
|
||||
*/
|
||||
public OrderSettleQueryBySerialResponse settleQueryBySerial(OrderSettleQueryBySerialRequest request) {
|
||||
String url = "/order/settle/query/by-serial";
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.addHeader(API_VERSION, V_2);
|
||||
HttpResponse<OrderSettleQueryBySerialResponse> httpResponse = apiClient.post(url, headers, request.toJsonRequest(), OrderSettleQueryBySerialResponse.class);
|
||||
return httpResponse.getServiceResponse();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
package com.czcb.scfs.api.service.v2.order.model;
|
||||
|
||||
import com.czcb.scfs.api.core.ApiRequest;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 订单 基础请求参数
|
||||
*
|
||||
* @author H.T
|
||||
* @since 2026-01-15
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrderBaseRequest implements ApiRequest {
|
||||
/**
|
||||
* 渠道编号
|
||||
*/
|
||||
@SerializedName("channel_no")
|
||||
private String channelNo;
|
||||
/**
|
||||
* 应用编号
|
||||
*/
|
||||
@SerializedName("app_no")
|
||||
private String appNo;
|
||||
/**
|
||||
* 流水号
|
||||
*/
|
||||
@SerializedName("serial_no")
|
||||
private String serialNo;
|
||||
/**
|
||||
* 操作日期
|
||||
*/
|
||||
@SerializedName("trans_date")
|
||||
private String transDate;
|
||||
/**
|
||||
* 操作时间
|
||||
*/
|
||||
@SerializedName("trans_tradetime")
|
||||
private String transTradeTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package com.czcb.scfs.api.service.v2.order.model;
|
||||
|
||||
import com.czcb.scfs.api.core.ApiResponse;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 订单 基础应答参数
|
||||
*
|
||||
* @author H.T
|
||||
* @since 2026-01-15
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrderBaseResponse implements ApiResponse {
|
||||
/**
|
||||
* 000000:表示成功
|
||||
*/
|
||||
@SerializedName("recode")
|
||||
private String recode;
|
||||
/**
|
||||
* 结果信息
|
||||
*/
|
||||
@SerializedName("recode_info")
|
||||
private String recodeInfo;
|
||||
/**
|
||||
* 系统流水号
|
||||
*/
|
||||
@SerializedName("sys_serial_no")
|
||||
private String sysSerialNo;
|
||||
/**
|
||||
* 系统日期(YYYY-MM-DD)
|
||||
*/
|
||||
@SerializedName("sys_date")
|
||||
private String sysDate;
|
||||
/**
|
||||
* 系统时间(YYYY-MM-DD hh:mm:ss)
|
||||
*/
|
||||
@SerializedName("sys_time")
|
||||
private String sysTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
package com.czcb.scfs.api.service.v2.order.model;
|
||||
|
||||
import com.czcb.scfs.api.core.agrs.TransType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 301510-订单清算受理请求参数
|
||||
*
|
||||
* @author H.T
|
||||
* @since 2026-01-06
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TransType("301510")
|
||||
public class OrderSettleAcceptRequest extends OrderBaseRequest implements Serializable {
|
||||
/**
|
||||
* 凡荣商户号
|
||||
*/
|
||||
@SerializedName("merchantid")
|
||||
private String merchantid;
|
||||
/**
|
||||
* 支付渠道商户号
|
||||
*/
|
||||
@SerializedName("pay_channel_merchantid")
|
||||
private String payChannelMerchantid;
|
||||
/**
|
||||
* 清算类型:3-景区模式结算;4-订单级清算;5-订单级清算(不含手续费);6-商品级清算;7-商品级清算(不含手续费);
|
||||
*/
|
||||
@SerializedName("settle_type")
|
||||
private String settleType;
|
||||
/**
|
||||
* 清算总额
|
||||
*/
|
||||
@SerializedName("settle_amount_total")
|
||||
private BigDecimal settleAmountTotal;
|
||||
/**
|
||||
* 手续费总额
|
||||
*/
|
||||
@SerializedName("fee_total")
|
||||
private BigDecimal feeTotal;
|
||||
/**
|
||||
* 订单总额
|
||||
*/
|
||||
@SerializedName("order_amount_total")
|
||||
private BigDecimal orderAmountTotal;
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
@SerializedName("remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 清算明细List
|
||||
*/
|
||||
@SerializedName("settle_detail_list")
|
||||
private List<SettleDetail> settleDetailList;
|
||||
|
||||
@Data
|
||||
public static class SettleDetail implements Serializable {
|
||||
/**
|
||||
* 清算序号
|
||||
*/
|
||||
@SerializedName("settle_index")
|
||||
private Integer settleIndex;
|
||||
/**
|
||||
* 清算类型:1-商户自主提现(清算到电子账户);2-结算到银行卡
|
||||
*/
|
||||
@SerializedName("settle_type")
|
||||
private String settleType;
|
||||
/**
|
||||
* 收款账号:分账账号
|
||||
*/
|
||||
@SerializedName("opp_account_no")
|
||||
private String oppAccountNo;
|
||||
/**
|
||||
* 收款户名:分账户名
|
||||
*/
|
||||
@SerializedName("opp_account_name")
|
||||
private String oppAccountName;
|
||||
/**
|
||||
* 收款行号
|
||||
*/
|
||||
@SerializedName("opp_bank_no")
|
||||
private String oppBankNo;
|
||||
/**
|
||||
* 收款行名
|
||||
*/
|
||||
@SerializedName("opp_bank_name")
|
||||
private String oppBankName;
|
||||
/**
|
||||
* 收款金额 大于等于0
|
||||
*/
|
||||
@SerializedName("opp_amount")
|
||||
private BigDecimal oppAmount;
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
@SerializedName("remark")
|
||||
private String remark;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.czcb.scfs.api.service.v2.order.model;
|
||||
|
||||
import com.czcb.scfs.api.core.agrs.TransType;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 301511-订单清算结果查询请求参数
|
||||
*
|
||||
* @author H.T
|
||||
* @since 2026-01-08
|
||||
*/
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TransType("301511")
|
||||
public class OrderSettleQueryBySerialRequest extends OrderBaseRequest implements Serializable {
|
||||
/**
|
||||
* 原请求流水号
|
||||
*/
|
||||
@SerializedName("original_req_no")
|
||||
private String originalReqNo;
|
||||
}
|
||||
|
|
@ -0,0 +1,199 @@
|
|||
package com.czcb.scfs.api.service.v2.order.model;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 301511-订单清算结果查询响应参数
|
||||
*
|
||||
* @author H.T
|
||||
* @since 2026-01-08
|
||||
*/
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class OrderSettleQueryBySerialResponse extends OrderBaseResponse implements Serializable {
|
||||
/**
|
||||
* 请求流水号
|
||||
*/
|
||||
@SerializedName("req_serial_no")
|
||||
private String reqSerialNo;
|
||||
/**
|
||||
* 系统流水号
|
||||
*/
|
||||
@SerializedName("data_sys_serial_no")
|
||||
private String dataSysSerialNo;
|
||||
/**
|
||||
* 清算流水号
|
||||
*/
|
||||
@SerializedName("settle_serial_no")
|
||||
private String settleSerialNo;
|
||||
/**
|
||||
* 商户编号(凡荣e链的商户号)
|
||||
*/
|
||||
@SerializedName("merchantid")
|
||||
private String merchantid;
|
||||
/**
|
||||
* 支付渠道商户号
|
||||
*/
|
||||
@SerializedName("pay_channel_merchantid")
|
||||
private String payChannelMerchantid;
|
||||
/**
|
||||
* 清算类型
|
||||
*/
|
||||
@SerializedName("settle_type")
|
||||
private String settleType;
|
||||
/**
|
||||
* 清算日期
|
||||
*/
|
||||
@SerializedName("settle_date")
|
||||
private String settleDate;
|
||||
/**
|
||||
* 清算时间
|
||||
*/
|
||||
@SerializedName("settle_time")
|
||||
private String settleTime;
|
||||
/**
|
||||
* 清算状态, 1:清算成功 2:清算失败
|
||||
*/
|
||||
@SerializedName("settle_status")
|
||||
private String settleStatus;
|
||||
/**
|
||||
* 清算结果
|
||||
*/
|
||||
@SerializedName("settle_result")
|
||||
private String settleResult;
|
||||
/**
|
||||
* 清算总额
|
||||
*/
|
||||
@SerializedName("settle_total_amount")
|
||||
private BigDecimal settleTotalAmount;
|
||||
/**
|
||||
* 手续费总额
|
||||
*/
|
||||
@SerializedName("total_fee")
|
||||
private BigDecimal totalFee;
|
||||
/**
|
||||
* 订单总额
|
||||
*/
|
||||
@SerializedName("order_total_amount")
|
||||
private BigDecimal orderTotalAmount;
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
@SerializedName("remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 清算明细List
|
||||
*/
|
||||
@SerializedName("settle_detail_list")
|
||||
private List<SettleDetailData> settleDetailList;
|
||||
|
||||
@Data
|
||||
public static class SettleDetailData implements Serializable {
|
||||
/**
|
||||
* 请求流水号
|
||||
*/
|
||||
@SerializedName("req_serial_no")
|
||||
private String reqSerialNo;
|
||||
/**
|
||||
* 系统流水号
|
||||
*/
|
||||
@SerializedName("data_sys_serial_no")
|
||||
private String dataSysSerialNo;
|
||||
/**
|
||||
* 清算流水号
|
||||
*/
|
||||
@SerializedName("settle_serial_no")
|
||||
private String settleSerialNo;
|
||||
/**
|
||||
* 商户编号(凡荣e链的商户号)
|
||||
*/
|
||||
@SerializedName("merchantid")
|
||||
private String merchantid;
|
||||
/**
|
||||
* 支付渠道商户号
|
||||
*/
|
||||
@SerializedName("pay_channel_merchantid")
|
||||
private String payChannelMerchantid;
|
||||
/**
|
||||
* 清算序号
|
||||
*/
|
||||
@SerializedName("settle_index")
|
||||
private Integer settleIndex;
|
||||
/**
|
||||
* 清算类型
|
||||
*/
|
||||
@SerializedName("settle_type")
|
||||
private String settleType;
|
||||
/**
|
||||
* 清算时间
|
||||
*/
|
||||
@SerializedName("settle_time")
|
||||
private String settleTime;
|
||||
/**
|
||||
* 清算状态, 1:清算成功 2:清算失败
|
||||
*/
|
||||
@SerializedName("settle_status")
|
||||
private String settleStatus;
|
||||
/**
|
||||
* 清算结果
|
||||
*/
|
||||
@SerializedName("settle_result")
|
||||
private String settleResult;
|
||||
/**
|
||||
* 付款账号
|
||||
*/
|
||||
@SerializedName("account_no")
|
||||
private String accountNo;
|
||||
/**
|
||||
* 付款户名
|
||||
*/
|
||||
@SerializedName("account_name")
|
||||
private String accountName;
|
||||
/**
|
||||
* 付款金额
|
||||
*/
|
||||
@SerializedName("pay_amount")
|
||||
private BigDecimal payAmount;
|
||||
/**
|
||||
* 收款账号
|
||||
*/
|
||||
@SerializedName("opp_account_no")
|
||||
private String oppAccountNo;
|
||||
/**
|
||||
* 收款户名
|
||||
*/
|
||||
@SerializedName("opp_account_name")
|
||||
private String oppAccountName;
|
||||
/**
|
||||
* 收款行号
|
||||
*/
|
||||
@SerializedName("opp_bank_no")
|
||||
private String oppBankNo;
|
||||
/**
|
||||
* 收款行名
|
||||
*/
|
||||
@SerializedName("opp_bank_name")
|
||||
private String oppBankName;
|
||||
/**
|
||||
* 收款金额
|
||||
*/
|
||||
@SerializedName("opp_amount")
|
||||
private BigDecimal oppAmount;
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
@SerializedName("remark")
|
||||
private String remark;
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,6 @@ import lombok.experimental.Accessors;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -112,13 +111,13 @@ public class OrderSettleResultQueryPageResponse implements PageApiResponse {
|
|||
* 清算日期
|
||||
*/
|
||||
@SerializedName("settle_date")
|
||||
private Date settleDate;
|
||||
private String settleDate;
|
||||
|
||||
/**
|
||||
* 清算时间
|
||||
*/
|
||||
@SerializedName("settle_time")
|
||||
private Date settleTime;
|
||||
private String settleTime;
|
||||
|
||||
/**
|
||||
* 清算状态, 1:清算成功 2:清算失败
|
||||
|
|
@ -155,113 +154,5 @@ public class OrderSettleResultQueryPageResponse implements PageApiResponse {
|
|||
*/
|
||||
@SerializedName("remark")
|
||||
private String remark;
|
||||
|
||||
@SerializedName("detail_data")
|
||||
private List<OrderSettleDetailData> detailData;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class OrderSettleDetailData implements Serializable {
|
||||
/**
|
||||
* 请求流水号
|
||||
*/
|
||||
@SerializedName("req_serial_no")
|
||||
private String reqSerialNo;
|
||||
|
||||
/**
|
||||
* 系统流水号
|
||||
*/
|
||||
@SerializedName("data_sys_serial_no")
|
||||
private String dataSysSerialNo;
|
||||
|
||||
/**
|
||||
* 清算流水号
|
||||
*/
|
||||
@SerializedName("settle_serial_no")
|
||||
private String settleSerialNo;
|
||||
|
||||
/**
|
||||
* 商户编号(凡荣e链的商户号)
|
||||
*/
|
||||
@SerializedName("merchantid")
|
||||
private String merchantid;
|
||||
|
||||
/**
|
||||
* 支付渠道商户号
|
||||
*/
|
||||
@SerializedName("pay_channel_merchantid")
|
||||
private String payChannelMerchantid;
|
||||
|
||||
/**
|
||||
* 清算序号
|
||||
*/
|
||||
@SerializedName("settle_index")
|
||||
private Integer settleIndex;
|
||||
|
||||
/**
|
||||
* 清算类型
|
||||
*/
|
||||
@SerializedName("settle_type")
|
||||
private String settleType;
|
||||
|
||||
/**
|
||||
* 清算时间
|
||||
*/
|
||||
@SerializedName("settle_time")
|
||||
private Date settleTime;
|
||||
|
||||
/**
|
||||
* 清算状态, 1:清算成功 2:清算失败
|
||||
*/
|
||||
@SerializedName("settle_status")
|
||||
private String settleStatus;
|
||||
|
||||
/**
|
||||
* 清算结果
|
||||
*/
|
||||
@SerializedName("settle_result")
|
||||
private String settleResult;
|
||||
|
||||
/**
|
||||
* 付款账号
|
||||
*/
|
||||
@SerializedName("account_no")
|
||||
private String accountNo;
|
||||
|
||||
/**
|
||||
* 付款户名
|
||||
*/
|
||||
@SerializedName("account_name")
|
||||
private String accountName;
|
||||
|
||||
/**
|
||||
* 付款金额
|
||||
*/
|
||||
@SerializedName("pay_amount")
|
||||
private BigDecimal payAmount;
|
||||
|
||||
/**
|
||||
* 收款账号
|
||||
*/
|
||||
@SerializedName("opp_account_no")
|
||||
private String oppAccountNo;
|
||||
|
||||
/**
|
||||
* 收款户名
|
||||
*/
|
||||
@SerializedName("opp_account_name")
|
||||
private String oppAccountName;
|
||||
|
||||
/**
|
||||
* 收款金额
|
||||
*/
|
||||
@SerializedName("opp_amount")
|
||||
private BigDecimal oppAmount;
|
||||
|
||||
/**
|
||||
* 摘要
|
||||
*/
|
||||
@SerializedName("remark")
|
||||
private String remark;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,6 @@ class OrderSettleServiceTest {
|
|||
}
|
||||
void extractedOrderSettleResultQueryPageResponseOrderSettleInfoDataNestParams(OrderSettleResultQueryPageResponse.OrderSettleInfoData nest) {
|
||||
nest.setReqSerialNo("setReqSerialNo");
|
||||
nest.setDetailData(Lists.list());
|
||||
nest.setRemark("setRemark");
|
||||
nest.setSettleResult("setSettleResult");
|
||||
nest.setTotalFee(BigDecimal.valueOf(100.00));
|
||||
|
|
@ -120,7 +119,6 @@ class OrderSettleServiceTest {
|
|||
}
|
||||
void extractedOrderSettleResultQueryPageResponseOrderSettleInfoDataNestAssertions(OrderSettleResultQueryPageResponse.OrderSettleInfoData nest) {
|
||||
Assertions.assertEquals("setReqSerialNo", nest.getReqSerialNo());
|
||||
Assertions.assertNotNull(nest.getDetailData());
|
||||
Assertions.assertEquals("setRemark", nest.getRemark());
|
||||
Assertions.assertEquals("setSettleResult", nest.getSettleResult());
|
||||
Assertions.assertEquals(BigDecimal.valueOf(100.00), nest.getTotalFee());
|
||||
|
|
|
|||
|
|
@ -0,0 +1,66 @@
|
|||
package com.czcb.scfs.api.test.service;
|
||||
|
||||
import com.czcb.scfs.api.service.v2.order.OrderSettleService;
|
||||
import com.czcb.scfs.api.service.v2.order.model.*;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* 配送订单测试
|
||||
*
|
||||
* @author H.T
|
||||
* @since 2025-12-08
|
||||
*/
|
||||
@SpringBootTest
|
||||
class OrderServiceTest {
|
||||
|
||||
@Resource
|
||||
private OrderSettleService orderSettleService;
|
||||
|
||||
@Test
|
||||
void orderSettleResultQueryPage() {
|
||||
OrderSettleResultQueryPageRequest request = new OrderSettleResultQueryPageRequest();
|
||||
request.setChannelNo("1038");
|
||||
request.setAppNo("10");
|
||||
request.setSerialNo(UUID.randomUUID().toString().replace("-", ""));
|
||||
request.setTransDate("2024-03-20");
|
||||
request.setTransTradeTime("2024-01-02 09:11:53");
|
||||
|
||||
OrderSettleResultQueryPageResponse response = orderSettleService.orderSettleResultQueryPage(request);
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
@Test
|
||||
void settleAccept() {
|
||||
|
||||
OrderSettleAcceptRequest request = new OrderSettleAcceptRequest();
|
||||
request.setChannelNo("1038");
|
||||
request.setAppNo("10");
|
||||
request.setSerialNo(UUID.randomUUID().toString().replace("-", ""));
|
||||
request.setTransDate("2024-03-20");
|
||||
request.setTransTradeTime("2024-01-02 09:11:53");
|
||||
|
||||
|
||||
OrderBaseResponse response = orderSettleService.settleAccept(request);
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
@Test
|
||||
void settleQueryBySerial() {
|
||||
OrderSettleQueryBySerialRequest request = new OrderSettleQueryBySerialRequest();
|
||||
request.setChannelNo("1038");
|
||||
request.setAppNo("10");
|
||||
request.setSerialNo(UUID.randomUUID().toString().replace("-", ""));
|
||||
request.setTransDate("2024-03-20");
|
||||
request.setTransTradeTime("2024-01-02 09:11:53");
|
||||
request.setOriginalReqNo("202601091547370990409158");
|
||||
|
||||
OrderSettleQueryBySerialResponse response = orderSettleService.settleQueryBySerial(request);
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue