diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/handle/model/CoreDepositNotifyRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/handle/model/CoreDepositNotifyRequest.java new file mode 100644 index 0000000..8a873f0 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/handle/model/CoreDepositNotifyRequest.java @@ -0,0 +1,108 @@ +package com.czcb.scfs.api.service.handle.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; + +/** + * 230911-线下来账入账通知 + * + * @author H.T + * @since 2026-05-06 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@TransType("310407") +public class CoreDepositNotifyRequest 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; + /** + * 业务受理编号 + */ + @SerializedName("seq_no") + private String seqNo; + /** + * 账号,收款账号 + */ + @SerializedName("account_no") + private String accountNo; + /** + * 户名,收款户名 + */ + @SerializedName("account_name") + private String accountName; + /** + * 来账金额 + */ + @SerializedName("trans_amount") + private BigDecimal transAmount; + /** + * 汇划路径 00:同行 03:小额 06:超网 09:大额 + */ + @SerializedName("pay_path") + private String payPath; + /** + * 来账账号(对方账号) + */ + @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; + /** + * 交易结果:1:成功 2:失败 + */ + @SerializedName("trans_result") + private String transResult; + /** + * 失败原因 + */ + @SerializedName("failure_msg") + private String failureMsg; + /** + * 摘要 + */ + @SerializedName("remark") + private String remark; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/base/model/BaseRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/base/model/BaseRequest.java new file mode 100644 index 0000000..609b142 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/base/model/BaseRequest.java @@ -0,0 +1,42 @@ +package com.czcb.scfs.api.service.v2.base.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-05-28 + */ +@Data +@Accessors(chain = true) +public class BaseRequest 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; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/base/model/BaseResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/base/model/BaseResponse.java new file mode 100644 index 0000000..e6c5ad8 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/base/model/BaseResponse.java @@ -0,0 +1,42 @@ +package com.czcb.scfs.api.service.v2.base.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-05-28 + */ +@Data +@Accessors(chain = true) +public class BaseResponse 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; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/MchConsignContractService.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/MchConsignContractService.java new file mode 100644 index 0000000..842bbb5 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/MchConsignContractService.java @@ -0,0 +1,82 @@ +package com.czcb.scfs.api.service.v2.contract; + +import com.czcb.scfs.api.core.ApiClient; +import com.czcb.scfs.api.core.http.HttpHeaders; +import com.czcb.scfs.api.core.http.HttpResponse; +import com.czcb.scfs.api.service.v2.base.model.BaseResponse; +import com.czcb.scfs.api.service.v2.contract.model.*; + +import static com.czcb.scfs.api.core.Constants.API_VERSION; +import static com.czcb.scfs.api.core.Constants.V_2; + +/** + * 电商代销协议管理 + * + * @author H.T + * @date 2026年05月28日 + */ +public class MchConsignContractService { + + private final ApiClient apiClient; + + public MchConsignContractService(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * 310807-电商代销协议登记 + * + * @author H.T + * @since 2026/5/28 + */ + public BaseResponse add(MchConsignContractAddRequest request) { + String url = "/t-mch-consign-contract/add"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), BaseResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 310808-电商代销协议删除 + * + * @author H.T + * @since 2026/5/28 + */ + public BaseResponse del(MchConsignContractDelRequest request) { + String url = "/t-mch-consign-contract/del"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), BaseResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 310809-电商代销协议分页查询 + * + * @author H.T + * @since 2026/5/28 + */ + public MchConsignContractQueryPageResponse queryPage(MchConsignContractQueryPageRequest request) { + String url = "/t-mch-consign-contract/query-page"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), MchConsignContractQueryPageResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 310807-电商代销协议登记 + * + * @author H.T + * @since 2026/5/28 + */ + public MchConsignContractQueryDetailResponse queryDetail(MchConsignContractQueryDetailRequest request) { + String url = "/t-mch-consign-contract/query-detail"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), MchConsignContractQueryDetailResponse.class); + return httpResponse.getServiceResponse(); + } + +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractAddRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractAddRequest.java new file mode 100644 index 0000000..445189e --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractAddRequest.java @@ -0,0 +1,137 @@ +package com.czcb.scfs.api.service.v2.contract.model; + +import com.czcb.scfs.api.core.agrs.TransType; +import com.czcb.scfs.api.service.v2.base.model.BaseRequest; +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; + +/** + * 310807-电商代销协议登记请求参数 + * + * @author H.T + * @since 2026-05-28 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +@TransType("310807") +public class MchConsignContractAddRequest extends BaseRequest implements Serializable { + /** + * 电商编号 + */ + @SerializedName("mch_no") + private String mchNo; + + /** + * 代销协议编号 + */ + @SerializedName("contract_no") + private String contractNo; + + /** + * 文本协议编号 + */ + @SerializedName("text_contract_no") + private String textContractNo; + + /** + * 代销方账号(电商的结算账号) + */ + @SerializedName("consign_account_no") + private String consignAccountNo; + + /** + * 代销方户名(电商的结算户名) + */ + @SerializedName("consign_account_name") + private String consignAccountName; + + /** + * 委托方账号 + */ + @SerializedName("entrust_account_no") + private String entrustAccountNo; + + /** + * 委托方户名 + */ + @SerializedName("entrust_account_name") + private String entrustAccountName; + + /** + * 协议开始日期 yyyy-MM-dd + */ + @SerializedName("contract_date_start") + private String contractDateStart; + + /** + * 协议失效日期 yyyy-MM-dd + */ + @SerializedName("contract_date_end") + private String contractDateEnd; + + /** + * 代销年限额,默认为0 + */ + @SerializedName("consign_year_limit") + private BigDecimal consignYearLimit; + + /** + * 协议摘要 + */ + @SerializedName("remark") + private String remark; + + /** + * 代销协议明细列表 + */ + @SerializedName("detail_list") + private List detailList; + + @Data + public static class ContractDetail implements Serializable { + /** + * 协议类型:11-分账协议;12-税筹协议;13-还款协议 + */ + @SerializedName("contract_type") + private String contractType; + + /** + * 收款账号 + */ + @SerializedName("opp_account_no") + private String oppAccountNo; + + /** + * 收款户名 + */ + @SerializedName("opp_account_name") + private String oppAccountName; + + /** + * 服务费编号 + */ + @SerializedName("fee_no") + private String feeNo; + + /** + * 服务费名称 + */ + @SerializedName("fee_name") + private String feeName; + + /** + * 服务费说明 + */ + @SerializedName("fee_remark") + private String feeRemark; + } +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractDelRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractDelRequest.java new file mode 100644 index 0000000..2d54fcb --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractDelRequest.java @@ -0,0 +1,30 @@ +package com.czcb.scfs.api.service.v2.contract.model; + +import com.czcb.scfs.api.core.agrs.TransType; +import com.czcb.scfs.api.service.v2.base.model.BaseRequest; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 310808-电商代销协议删除请求参数 + * + * @author H.T + * @since 2026-05-28 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +@TransType("310808") +public class MchConsignContractDelRequest extends BaseRequest implements Serializable { + /** + * 代销协议编号 + */ + @SerializedName("contract_no") + private String contractNo; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryDetailRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryDetailRequest.java new file mode 100644 index 0000000..0eacca0 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryDetailRequest.java @@ -0,0 +1,30 @@ +package com.czcb.scfs.api.service.v2.contract.model; + +import com.czcb.scfs.api.core.agrs.TransType; +import com.czcb.scfs.api.service.v2.base.model.BaseRequest; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 310810-电商代销协议详情查询请求参数 + * + * @author H.T + * @since 2026-05-28 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +@TransType("310810") +public class MchConsignContractQueryDetailRequest extends BaseRequest implements Serializable { + /** + * 代销协议编号 + */ + @SerializedName("contract_no") + private String contractNo; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryDetailResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryDetailResponse.java new file mode 100644 index 0000000..03d8aef --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryDetailResponse.java @@ -0,0 +1,178 @@ +package com.czcb.scfs.api.service.v2.contract.model; + +import com.czcb.scfs.api.service.v2.base.model.BaseResponse; +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; + +/** + * 310810-电商代销协议详情查询响应参数 + * + * @author H.T + * @since 2026-05-28 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class MchConsignContractQueryDetailResponse extends BaseResponse implements Serializable { + + /** + * 请求流水号 + */ + @SerializedName("req_serial_no") + private String reqSerialNo; + + /** + * 系统流水号 + */ + @SerializedName("con_sys_serial_no") + private String conSysSerialNo; + + /** + * 电商编号 + */ + @SerializedName("mch_no") + private String mchNo; + + /** + * 代销协议编号 + */ + @SerializedName("contract_no") + private String contractNo; + + /** + * 协议状态:0-正常;1-作废 + */ + @SerializedName("contract_status") + private String contractStatus; + + /** + * 协议开始日期 yyyy-MM-dd + */ + @SerializedName("contract_date_start") + private String contractDateStart; + + /** + * 协议失效日期 yyyy-MM-dd + */ + @SerializedName("contract_date_end") + private String contractDateEnd; + + /** + * 文本协议编号 + */ + @SerializedName("text_contract_no") + private String textContractNo; + + /** + * 代销方账号(电商的结算账号) + */ + @SerializedName("consign_account_no") + private String consignAccountNo; + + /** + * 代销方户名(电商的结算户名) + */ + @SerializedName("consign_account_name") + private String consignAccountName; + + /** + * 委托方账号(委托方收款账号) + */ + @SerializedName("entrust_account_no") + private String entrustAccountNo; + + /** + * 委托方户名(委托方收款户名) + */ + @SerializedName("entrust_account_name") + private String entrustAccountName; + + /** + * 代销年限额,默认为0 + */ + @SerializedName("consign_year_limit") + private BigDecimal consignYearLimit; + + /** + * 摘要 + */ + @SerializedName("remark") + private String remark; + + /** + * 创建时间 yyyy-MM-dd hh:mm:ss + */ + @SerializedName("create_time") + private String createTime; + + /** + * 更新时间 yyyy-MM-dd hh:mm:ss + */ + @SerializedName("update_time") + private String updateTime; + + /** + * 代销协议明细列表 + */ + @SerializedName("data") + private List data; + + @Data + public static class ContractDetailData implements Serializable { + /** + * 协议类型:11-分账协议;12-税筹协议;13-还款协议 + */ + @SerializedName("contract_type") + private String contractType; + + /** + * 收款账号 + */ + @SerializedName("opp_account_no") + private String oppAccountNo; + + /** + * 收款户名 + */ + @SerializedName("opp_account_name") + private String oppAccountName; + + /** + * 服务费编号 + */ + @SerializedName("fee_no") + private String feeNo; + + /** + * 服务费名称 + */ + @SerializedName("fee_name") + private String feeName; + + /** + * 服务费说明 + */ + @SerializedName("fee_remark") + private String feeRemark; + + /** + * 创建时间 yyyy-MM-dd hh:mm:ss + */ + @SerializedName("create_time") + private String createTime; + + /** + * 更新时间 yyyy-MM-dd hh:mm:ss + */ + @SerializedName("update_time") + private String updateTime; + } +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryPageRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryPageRequest.java new file mode 100644 index 0000000..63ff9c4 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryPageRequest.java @@ -0,0 +1,77 @@ +package com.czcb.scfs.api.service.v2.contract.model; + +import com.czcb.scfs.api.core.PageApiRequest; +import com.czcb.scfs.api.core.agrs.TransType; +import com.czcb.scfs.api.service.v2.base.model.BaseRequest; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.experimental.Accessors; + +/** + * 310809-电商代销协议分页查询请求参数 + * + * @author H.T + * @since 2026-05-28 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +@TransType("310809") +public class MchConsignContractQueryPageRequest extends BaseRequest implements PageApiRequest { + /** + * 电商编号 + */ + @SerializedName("mch_no") + private String mchNo; + + /** + * 代销协议编号 + */ + @SerializedName("contract_no") + private String contractNo; + + /** + * 文本协议编号 + */ + @SerializedName("text_contract_no") + private String textContractNo; + + /** + * 代销方账号 + */ + @SerializedName("consign_account_no") + private String consignAccountNo; + + /** + * 代销方户名 + */ + @SerializedName("consign_account_name") + private String consignAccountName; + + /** + * 委托方账号 + */ + @SerializedName("entrust_account_no") + private String entrustAccountNo; + + /** + * 委托方户名 + */ + @SerializedName("entrust_account_name") + private String entrustAccountName; + + /** + * 当前页数,起始页默认0 + */ + @SerializedName("current_page") + private Long currentPage; + + /** + * 每页行数,默认50,最大50条 + */ + @SerializedName("current_rows") + private Long currentRows; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryPageResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryPageResponse.java new file mode 100644 index 0000000..234ea88 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/contract/model/MchConsignContractQueryPageResponse.java @@ -0,0 +1,148 @@ +package com.czcb.scfs.api.service.v2.contract.model; + +import com.czcb.scfs.api.core.PageApiResponse; +import com.czcb.scfs.api.service.v2.base.model.BaseResponse; +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; + +/** + * 310809-电商代销协议分页查询响应参数 + * + * @author H.T + * @since 2026-05-28 + */ +@Data +@Accessors(chain = true) +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class MchConsignContractQueryPageResponse extends BaseResponse implements PageApiResponse { + /** + * 当前页码 + */ + @SerializedName("current_page") + private Long currentPage; + + /** + * 总页数 + */ + @SerializedName("total_page") + private Long totalPage; + + /** + * 总条数 + */ + @SerializedName("total_rows") + private Long totalRows; + + /** + * 查询结果集 + */ + @SerializedName("data") + private List data; + + @Data + public static class ContractData implements Serializable { + /** + * 请求流水号 + */ + @SerializedName("req_serial_no") + private String reqSerialNo; + + /** + * 系统流水号 + */ + @SerializedName("data_sys_serial_no") + private String dataSysSerialNo; + + /** + * 电商编号 + */ + @SerializedName("mch_no") + private String mchNo; + + /** + * 代销协议编号 + */ + @SerializedName("contract_no") + private String contractNo; + + /** + * 协议状态:0-正常;1-作废 + */ + @SerializedName("contract_status") + private String contractStatus; + + /** + * 协议开始日期 yyyy-MM-dd + */ + @SerializedName("contract_date_start") + private String contractDateStart; + + /** + * 协议失效日期 yyyy-MM-dd + */ + @SerializedName("contract_date_end") + private String contractDateEnd; + + /** + * 文本协议编号 + */ + @SerializedName("text_contract_no") + private String textContractNo; + + /** + * 代销方账号(电商的结算账号) + */ + @SerializedName("consign_account_no") + private String consignAccountNo; + + /** + * 代销方户名(电商的结算户名) + */ + @SerializedName("consign_account_name") + private String consignAccountName; + + /** + * 委托方账号(委托方收款账号) + */ + @SerializedName("entrust_account_no") + private String entrustAccountNo; + + /** + * 委托方户名(委托方收款户名) + */ + @SerializedName("entrust_account_name") + private String entrustAccountName; + + /** + * 代销年限额,默认为0 + */ + @SerializedName("consign_year_limit") + private BigDecimal consignYearLimit; + + /** + * 摘要 + */ + @SerializedName("remark") + private String remark; + + /** + * 创建时间 yyyy-MM-dd hh:mm:ss + */ + @SerializedName("create_time") + private String createTime; + + /** + * 更新时间 yyyy-MM-dd hh:mm:ss + */ + @SerializedName("update_time") + private String updateTime; + } +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/SummaryOrderQueryPageRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/SummaryOrderQueryPageRequest.java index e6c922d..9df01eb 100644 --- a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/SummaryOrderQueryPageRequest.java +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/SummaryOrderQueryPageRequest.java @@ -79,4 +79,14 @@ public class SummaryOrderQueryPageRequest implements PageApiRequest { */ @SerializedName("order_date_end") private String orderDateEnd; + /** + * 当前页数 + */ + @SerializedName("current_page") + private Long currentPage; + /** + * 每页行数 + */ + @SerializedName("current_rows") + private Long currentRows; } diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/SummaryOrderQueryPageResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/SummaryOrderQueryPageResponse.java index d93f563..04d3c10 100644 --- a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/SummaryOrderQueryPageResponse.java +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v2/order/model/SummaryOrderQueryPageResponse.java @@ -27,6 +27,22 @@ public class SummaryOrderQueryPageResponse implements PageApiResponse { @SerializedName("data") private List data; + /** + * 当前页码 + */ + @SerializedName("current_page") + private Long currentPage; + /** + * 总页数 + */ + @SerializedName("total_page") + private Long totalPage; + /** + * 总条数 + */ + @SerializedName("total_rows") + private Long totalRows; + @Data public static class OrderLiveInfoData implements Serializable { /** diff --git a/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java b/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java index 4c43d4a..d9a9eb8 100644 --- a/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java +++ b/scfs-api-spring-boot-starter/src/main/java/com/czcb/scfs/spring/boot/starter/ScfsAutoConfiguration.java @@ -12,6 +12,7 @@ import com.czcb.scfs.api.service.v2.bmd.BmdService; import com.czcb.scfs.api.service.v2.cat.order.OrderService; import com.czcb.scfs.api.service.v2.cat.project.ProjectService; import com.czcb.scfs.api.service.v2.communal.CommunalDataService; +import com.czcb.scfs.api.service.v2.contract.MchConsignContractService; import com.czcb.scfs.api.service.v2.contract.SettleContractService; import com.czcb.scfs.api.service.v2.entpay.EntPayService; import com.czcb.scfs.api.service.v2.loan.CreditPayService; @@ -359,4 +360,14 @@ public class ScfsAutoConfiguration { public NotifyHandler notifyHandler(ApiClient apiClient) { return new NotifyHandler(apiClient); } + + /** + * 电商代销协议管理 + */ + @Bean + @ConditionalOnMissingBean + @ConditionalOnClass(MchConsignContractService.class) + public MchConsignContractService mhConsignContractService(ApiClient apiClient) { + return new MchConsignContractService(apiClient); + } } diff --git a/scfs-api-test/src/main/resources/application.properties b/scfs-api-test/src/main/resources/application.properties index 776b9ac..137e423 100644 --- a/scfs-api-test/src/main/resources/application.properties +++ b/scfs-api-test/src/main/resources/application.properties @@ -3,8 +3,10 @@ scfs.api-gateway.online=false #scfs.api-gateway.host=http://124.160.111.105:29080/api-gateway # \u5185\u7F51\u5730\u5740 #scfs.api-gateway.host=http://10.133.91.109:9080/api-gateway-kylin -scfs.api-gateway.host=http://127.0.0.1:8088/api-gateway -scfs.api-gateway.channel.channel-no=1021 +#scfs.api-gateway.host=http://10.133.91.109:9080/api-gateway-uat +scfs.api-gateway.host=http://117.72.32.166:8099/api-gateway-uat +#scfs.api-gateway.host=http://127.0.0.1:8088/api-gateway +scfs.api-gateway.channel.channel-no=1038 scfs.api-gateway.channel.app-no=42 scfs.api-gateway.cipher.store-type=resources #scfs.api-gateway.cipher.channel-private-key=invalid_rsa_private_key.pem diff --git a/scfs-api-test/src/test/java/com/czcb/scfs/api/test/service/MchConsignContractServiceTest.java b/scfs-api-test/src/test/java/com/czcb/scfs/api/test/service/MchConsignContractServiceTest.java new file mode 100644 index 0000000..e8f853d --- /dev/null +++ b/scfs-api-test/src/test/java/com/czcb/scfs/api/test/service/MchConsignContractServiceTest.java @@ -0,0 +1,105 @@ +package com.czcb.scfs.api.test.service; + +import com.czcb.scfs.api.service.v2.contract.MchConsignContractService; +import com.czcb.scfs.api.service.v2.contract.model.MchConsignContractAddRequest; +import com.czcb.scfs.api.service.v2.contract.model.MchConsignContractDelRequest; +import com.czcb.scfs.api.service.v2.contract.model.MchConsignContractQueryDetailRequest; +import com.czcb.scfs.api.service.v2.contract.model.MchConsignContractQueryPageRequest; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * 电商代销协议Test + * + * @author H.T + * @since 2026-03-24 + */ +@SpringBootTest +class MchConsignContractServiceTest { + + @Resource + private MchConsignContractService contractService; + + @Test + void add() { + MchConsignContractAddRequest request = new MchConsignContractAddRequest(); + request.setMchNo("TEST-004"); + request.setContractNo("th202605140429"); // 协议编号 + request.setConsignAccountNo("1038250711000013"); + request.setConsignAccountName("日林建设集团有限公司"); + request.setEntrustAccountNo("1038250714010020"); + request.setEntrustAccountName("中铁电气工业有限公司"); + request.setContractDateStart("2026-05-15"); + request.setContractDateEnd("2026-05-15"); + List detailList = new ArrayList<>(); + MchConsignContractAddRequest.ContractDetail detailItem = new MchConsignContractAddRequest.ContractDetail(); + detailItem.setContractType("11"); + detailItem.setFeeNo("0023"); + detailItem.setFeeName("直播电商测试还款80%"); + detailItem.setOppAccountNo("1038250711000017"); + detailItem.setOppAccountName("王晓芹"); + detailList.add(detailItem); + request.setDetailList(detailList); + + 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"); + + System.out.println(contractService.add(request)); + } + + @Test + void del() { + MchConsignContractDelRequest request = new MchConsignContractDelRequest(); + + request.setChannelNo("1038"); + request.setAppNo("12"); + request.setSerialNo("1111112323"); + request.setTransDate("2024-07-24"); + request.setTransTradeTime("2024-07-24 13:55:29"); + + request.setContractNo("th202605140428"); // 注意:如果要用图3的报文,这里改为 "th202605140427" + System.out.println(contractService.del(request)); + } + + @Test + void queryDetail() { + + MchConsignContractQueryDetailRequest request = new MchConsignContractQueryDetailRequest(); + + request.setChannelNo("1038"); + request.setAppNo("12"); + request.setSerialNo("1111112323"); + request.setTransDate("2024-07-24"); + request.setTransTradeTime("2024-07-24 13:55:29"); + + request.setContractNo("th202605140428"); + System.out.println(contractService.queryDetail(request)); + } + + @Test + void queryPage() { + MchConsignContractQueryPageRequest request = new MchConsignContractQueryPageRequest(); + + request.setChannelNo("1038"); + request.setAppNo("12"); + request.setSerialNo("1111112323"); + request.setTransDate("2024-07-24"); + request.setTransTradeTime("2024-07-24 13:55:29"); + + request.setMchNo("TEST-004"); + request.setContractNo("th202605140428"); + request.setConsignAccountNo("1038250711000013"); + + request.setCurrentPage(0L); // 默认从0开始 + request.setCurrentRows(50L); // 默认每页50条 + System.out.println(contractService.queryPage(request)); + } +}