feat:线下充值相关接口

main
wb2476 2024-07-23 09:42:24 +08:00
parent 0f0d630289
commit 54374dbcb0
6 changed files with 475 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package com.czcb.scfs.service.accountant.configuration;
import com.czcb.scfs.api.core.ApiClient; import com.czcb.scfs.api.core.ApiClient;
import com.czcb.scfs.service.accountant.invoice.InvoiceService; 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.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
@ -23,4 +24,10 @@ public class ScfsApiServiceAccountantAutoConfiguration {
public InvoiceService invoiceService(ApiClient apiClient) { public InvoiceService invoiceService(ApiClient apiClient) {
return new InvoiceService(apiClient); return new InvoiceService(apiClient);
} }
@Bean
@ConditionalOnMissingBean
public OfflineRechargeService offlineRechargeService(ApiClient apiClient) {
return new OfflineRechargeService(apiClient);
}
} }

View File

@ -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<OfflineRechargeDetailQueryResponse> 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<OfflineRechargeDetailUnmatchedQueryResponse> httpResponse = apiClient.post(url, headers, request.toJsonRequest(), OfflineRechargeDetailUnmatchedQueryResponse.class);
return httpResponse.getServiceResponse();
}
}

View File

@ -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;
}

View File

@ -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<OfflineRechargeDetailDTO> 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;
}
}

View File

@ -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;
}

View File

@ -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<OfflineRechargeDetailUnmatchedDTO> 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;
}
}