From 54374dbcb0077eae8034a2d38bd60c719e8bbc2b Mon Sep 17 00:00:00 2001 From: wb2476 Date: Tue, 23 Jul 2024 09:42:24 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E7=BA=BF=E4=B8=8B=E5=85=85?= =?UTF-8?q?=E5=80=BC=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ApiServiceAccountantAutoConfiguration.java | 7 + .../recharge/OfflineRechargeService.java | 50 ++++++ .../OfflineRechargeDetailQueryRequest.java | 72 +++++++++ .../OfflineRechargeDetailQueryResponse.java | 131 ++++++++++++++++ ...neRechargeDetailUnmatchedQueryRequest.java | 72 +++++++++ ...eRechargeDetailUnmatchedQueryResponse.java | 143 ++++++++++++++++++ 6 files changed, 475 insertions(+) create mode 100644 scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/OfflineRechargeService.java create mode 100644 scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailQueryRequest.java create mode 100644 scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailQueryResponse.java create mode 100644 scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailUnmatchedQueryRequest.java create mode 100644 scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailUnmatchedQueryResponse.java diff --git a/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/configuration/ScfsApiServiceAccountantAutoConfiguration.java b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/configuration/ScfsApiServiceAccountantAutoConfiguration.java index 50bdeb4..0169056 100644 --- a/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/configuration/ScfsApiServiceAccountantAutoConfiguration.java +++ b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/configuration/ScfsApiServiceAccountantAutoConfiguration.java @@ -2,6 +2,7 @@ package com.czcb.scfs.service.accountant.configuration; import com.czcb.scfs.api.core.ApiClient; import com.czcb.scfs.service.accountant.invoice.InvoiceService; +import com.czcb.scfs.service.accountant.recharge.OfflineRechargeService; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; @@ -23,4 +24,10 @@ public class ScfsApiServiceAccountantAutoConfiguration { public InvoiceService invoiceService(ApiClient apiClient) { return new InvoiceService(apiClient); } + + @Bean + @ConditionalOnMissingBean + public OfflineRechargeService offlineRechargeService(ApiClient apiClient) { + return new OfflineRechargeService(apiClient); + } } diff --git a/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/OfflineRechargeService.java b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/OfflineRechargeService.java new file mode 100644 index 0000000..d885551 --- /dev/null +++ b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/OfflineRechargeService.java @@ -0,0 +1,50 @@ +package com.czcb.scfs.service.accountant.recharge; + +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.service.accountant.recharge.model.OfflineRechargeDetailQueryRequest; +import com.czcb.scfs.service.accountant.recharge.model.OfflineRechargeDetailQueryResponse; +import com.czcb.scfs.service.accountant.recharge.model.OfflineRechargeDetailUnmatchedQueryRequest; +import com.czcb.scfs.service.accountant.recharge.model.OfflineRechargeDetailUnmatchedQueryResponse; + +import static com.czcb.scfs.api.core.Constants.API_VERSION; +import static com.czcb.scfs.api.core.Constants.V_2; + +/** + * 线下来账充值 + * + * @author H.T + * @since 2024-07-23 + */ +public class OfflineRechargeService { + + private final ApiClient apiClient; + + public OfflineRechargeService(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * 230907-线下充值明细查询 + */ + public OfflineRechargeDetailQueryResponse detailQuery(OfflineRechargeDetailQueryRequest request) { + String url = "/offline-recharge/details/query"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), OfflineRechargeDetailQueryResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 230908-未匹配来账明细查询 + */ + public OfflineRechargeDetailUnmatchedQueryResponse detailUnmatchedQuery(OfflineRechargeDetailUnmatchedQueryRequest request) { + String url = "/offline-recharge/details/unmatched/query"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_2); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), OfflineRechargeDetailUnmatchedQueryResponse.class); + return httpResponse.getServiceResponse(); + } + +} diff --git a/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailQueryRequest.java b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailQueryRequest.java new file mode 100644 index 0000000..3edab1e --- /dev/null +++ b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailQueryRequest.java @@ -0,0 +1,72 @@ +package com.czcb.scfs.service.accountant.recharge.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.experimental.Accessors; + +/** + * 230907-线下充值明细查询 + * + * @author H.T + * @since 2024-07-22 + */ +@Data +@Accessors(chain = true) +@TransType("230907") +public class OfflineRechargeDetailQueryRequest 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("account_no") + private String accountNo; + + /** + * 付款账号 + */ + @SerializedName("opp_account_no") + private String oppAccountNo; + + /** + * 交易日期起 yyyy-MM-dd + */ + @SerializedName("trade_date_start") + private String tradeDateStart; + + /** + * 交易日期止 yyyy-MM-dd + */ + @SerializedName("trade_date_end") + private String tradeDateEnd; +} diff --git a/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailQueryResponse.java b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailQueryResponse.java new file mode 100644 index 0000000..5253039 --- /dev/null +++ b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailQueryResponse.java @@ -0,0 +1,131 @@ +package com.czcb.scfs.service.accountant.recharge.model; + +import com.czcb.scfs.api.core.ApiResponse; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 230907-线下充值明细查询 + * + * @author H.T + * @since 2024-07-22 + */ +@Data +@Accessors(chain = true) +public class OfflineRechargeDetailQueryResponse 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; + + /** + * 线下充值明细结果集 + */ + @SerializedName("data") + private List data; + + @Data + public static class OfflineRechargeDetailDTO implements Serializable { + /** + * 账号分类 0:活期 1:定期 2:保证金 3:基金 4:理财 5:证券 6:冻结 7:融资 8:积分 A:逾期 B:呆滞 C:呆账 D:利息 E:应收利息 F:催收利息 + */ + @SerializedName("account_class") + private String accountClass; + /** + * 业务受理编号 + */ + @SerializedName("seq_no") + private String seqNo; + /** + * 收款账号 + */ + @SerializedName("account_no") + private String accountNo; + /** + * 收款账号名称 + */ + @SerializedName("account_name") + private String accountName; + /** + * 暂入账账号 + */ + @SerializedName("core_account_no") + private String coreAccountNo; + /** + * 交易金额 + */ + @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("trade_time") + private Date tradeTime; + /** + * 处理状态0:未处理 1:成功 2:失败 + */ + @SerializedName("status") + private String status; + /** + * 失败原因 + */ + @SerializedName("failure_msg") + private String failureMsg; + /** + * 失败重做标识 0:否 1:是 + */ + @SerializedName("failure_flag") + private String failureFlag; + /** + * 重做结果 0:否 1:是 + */ + @SerializedName("redo_flag") + private String redoFlag; + } +} diff --git a/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailUnmatchedQueryRequest.java b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailUnmatchedQueryRequest.java new file mode 100644 index 0000000..1e5b704 --- /dev/null +++ b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailUnmatchedQueryRequest.java @@ -0,0 +1,72 @@ +package com.czcb.scfs.service.accountant.recharge.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.experimental.Accessors; + +/** + * 230908-未匹配来账明细查询 + * + * @author H.T + * @since 2024-07-22 + */ +@Data +@Accessors(chain = true) +@TransType("230908") +public class OfflineRechargeDetailUnmatchedQueryRequest 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("account_no") + private String accountNo; + + /** + * 付款账号 + */ + @SerializedName("opp_account_no") + private String oppAccountNo; + + /** + * 交易日期起 yyyy-MM-dd + */ + @SerializedName("trade_date_start") + private String tradeDateStart; + + /** + * 交易日期止 yyyy-MM-dd + */ + @SerializedName("trade_date_end") + private String tradeDateEnd; +} diff --git a/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailUnmatchedQueryResponse.java b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailUnmatchedQueryResponse.java new file mode 100644 index 0000000..e6f8c5d --- /dev/null +++ b/scfs-api-service-accountant/src/main/java/com/czcb/scfs/service/accountant/recharge/model/OfflineRechargeDetailUnmatchedQueryResponse.java @@ -0,0 +1,143 @@ +package com.czcb.scfs.service.accountant.recharge.model; + +import com.czcb.scfs.api.core.ApiResponse; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 230908-未匹配来账明细查询 + * + * @author H.T + * @since 2024-07-22 + */ +@Data +@Accessors(chain = true) +public class OfflineRechargeDetailUnmatchedQueryResponse 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; + + /** + * 未匹配来账明细结果集 + */ + @SerializedName("data") + private List data; + + @Data + public static class OfflineRechargeDetailUnmatchedDTO implements Serializable { + /** + * 匹配状态 0、未匹配 1、匹配成功 2、部分匹配; + */ + @SerializedName("match_status") + private String matchStatus; + + /** + * 累计匹配金额 + */ + @SerializedName("total_match_amount") + private BigDecimal totalMatchAmount; + /** + * 账号分类 0:活期 1:定期 2:保证金 3:基金 4:理财 5:证券 6:冻结 7:融资 8:积分 A:逾期 B:呆滞 C:呆账 D:利息 E:应收利息 F:催收利息 + */ + @SerializedName("account_class") + private String accountClass; + /** + * 业务受理编号 + */ + @SerializedName("seq_no") + private String seqNo; + /** + * 收款账号 + */ + @SerializedName("account_no") + private String accountNo; + /** + * 收款账号名称 + */ + @SerializedName("account_name") + private String accountName; + /** + * 暂入账账号 + */ + @SerializedName("core_account_no") + private String coreAccountNo; + /** + * 交易金额 + */ + @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("trade_time") + private Date tradeTime; + /** + * 处理状态0:未处理 1:成功 2:失败 + */ + @SerializedName("status") + private String status; + /** + * 失败原因 + */ + @SerializedName("failure_msg") + private String failureMsg; + /** + * 失败重做标识 0:否 1:是 + */ + @SerializedName("failure_flag") + private String failureFlag; + /** + * 重做结果 0:否 1:是 + */ + @SerializedName("redo_flag") + private String redoFlag; + } + +}