diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/TransType.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/TransType.java index fc44d4a..4126466 100644 --- a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/TransType.java +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/TransType.java @@ -3,7 +3,7 @@ package com.czcb.scfs.api.service; /** * * @author wangwei - * @date 2024/3/13 + * @since 2.0.0 */ public @interface TransType { String value(); diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/AccountService.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/AccountService.java new file mode 100644 index 0000000..f7fb96f --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/AccountService.java @@ -0,0 +1,52 @@ +package com.czcb.scfs.api.service.v1.account; + +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.v1.account.model.ModAccCompanyRequest; +import com.czcb.scfs.api.service.v1.account.model.ModAccCompanyResponse; +import com.czcb.scfs.api.service.v1.account.model.ModAccPersonRequest; +import com.czcb.scfs.api.service.v1.account.model.ModAccPersonResponse; + +import static com.czcb.scfs.api.core.Constants.API_VERSION; +import static com.czcb.scfs.api.core.Constants.V_1; + +/** + * @author wangwei + * @since 2.0.0 + */ +public class AccountService { + private final ApiClient apiClient; + + public AccountService(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * 电子登记簿账户修改-个人 + * + * @param request ModAccRequest + * @return ModAccResponse + */ + public ModAccPersonResponse modAccPerson(ModAccPersonRequest request) { + String url = "/accInfo/modAcc"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_1); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), ModAccPersonResponse.class); + return httpResponse.getServiceResponse(); + } + + /** + * 电子登记簿账户修改-企业 + * + * @param request ModAccCompanyRequest + * @return ModAccCompanyResponse + */ + public ModAccCompanyResponse modAccCompany(ModAccCompanyRequest request) { + String url = "/accInfo/modAcc"; + HttpHeaders headers = new HttpHeaders(); + headers.addHeader(API_VERSION, V_1); + HttpResponse httpResponse = apiClient.post(url, headers, request.toJsonRequest(), ModAccCompanyResponse.class); + return httpResponse.getServiceResponse(); + } +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccCompanyRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccCompanyRequest.java new file mode 100644 index 0000000..02e67e5 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccCompanyRequest.java @@ -0,0 +1,343 @@ +package com.czcb.scfs.api.service.v1.account.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.service.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author wangwei + * @since 2.0.0 + */ +@Data +@Accessors(chain = true) +@TransType("100003") +public class ModAccCompanyRequest implements ApiRequest { + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 交易码=功能号(trans_type) + */ + @SerializedName("trade_no") + private String tradeNo; + + /** + * 验证码 + */ + @SerializedName("verify_code") + private String verifyCode; + + /** + * 账号性质;2:企业 + */ + @SerializedName("account_property") + private String accountProperty = "2"; + + /** + * 证件类型 + */ + @SerializedName("id_type") + private String idType; + + /** + * 证件号码 + */ + @SerializedName("id_no") + private String idNo; + + /** + * 证件有效起始日期 + */ + @SerializedName("id_startdate") + private String idStartDate; + + /** + * 证件有效结束日期 + */ + @SerializedName("id_enddate") + private String idEndDate; + + /** + * 签发机关 + */ + @SerializedName("sign_name") + private String signName; + + /** + * 签发机关编号(行政区划编号) + */ + @SerializedName("sign_no") + private String signNo; + + /** + * 手机号 + */ + @SerializedName("mobile") + private String mobile; + + /** + * 主账号 + */ + @SerializedName("primary_account") + private String primaryAccount; + + /** + * 开户行号,个人选填 + * 填写后可以进行单笔100万-1000万的提现,不填则系统识别卡bin获取总行行号 + */ + @SerializedName("bank_no") + private String bankNo; + + /** + * 开户行名称,个人选填 + */ + @SerializedName("bank_name") + private String bankName; + + /** + * 开户行所在省编码 + */ + @SerializedName("bank_address") + private String bankAddress; + + /** + * 开户行城市编码 + */ + @SerializedName("bank_cityno") + private String bankCityno; + + /** + * 行业类别 + */ + @SerializedName("industry") + private String industry; + + /** + * 法人证件类型 + */ + @SerializedName("company_id_type") + private String companyIdType; + + /** + * 法人证件号码 + */ + @SerializedName("company_id_no") + private String companyIdNo; + + /** + * 法人代表名称 + */ + @SerializedName("company_id_name") + private String companyIdName; + + /** + * 法定代表人有效期止 yyyy-MM-dd + */ + @SerializedName("company_opto") + private String companyOpto; + + /** + * 实际控制人证件类型 不填默认填法定代表人 + */ + @SerializedName("controller_id_type") + private String controllerIdType; + + /** + * 实际控制人证件号码 不填默认填法定代表人 + */ + @SerializedName("controller_id_no") + private String controllerIdNo; + + /** + * 实际控制人名称 不填默认填法定代表人 + */ + @SerializedName("controller_id_name") + private String controllerIdName; + + /** + * 实际控制人有效期止 不填默认填法定代表人 yyyy-MM-dd + */ + @SerializedName("controller_opto") + private String controllerOpto; + + /** + * 负责人证件类型 + */ + @SerializedName("leader_id_type") + private String leaderIdType; + + /** + * 负责人证件号码 + */ + @SerializedName("leader_id_no") + private String leaderIdNo; + + /** + * 负责人名称 + */ + @SerializedName("leader_id_name") + private String leaderIdName; + + /** + * 负责人手机号 + */ + @SerializedName("leader_mobile") + private String leaderMobile; + + /** + * 负责人有效期止 yyyy-MM-dd + */ + @SerializedName("leader_opto") + private String leaderOpto; + + /** + * 经办人证件类型 + */ + @SerializedName("operator_id_type") + private String operatorIdType; + + /** + * 经办人证件号码 + */ + @SerializedName("operator_id_no") + private String operatorIdNo; + + /** + * 经办人名称 + */ + @SerializedName("operator_id_name") + private String operatorIdName; + + /** + * 经办人手机号 + */ + @SerializedName("operator_mobile") + private String operatorMobile; + + /** + * 经办人有效期止 yyyy-MM-dd + */ + @SerializedName("operator_opto") + private String operatorOpto; + + /** + * 受益人姓名 + */ + @SerializedName("bene_name") + private String beneName; + + /** + * 受益人性别0:男 1:女 + */ + @SerializedName("bene_sex") + private String beneSex; + + /** + * 受益人国籍 + */ + @SerializedName("bene_nationality") + private String beneNationality; + + /** + * 受益人是否股东 1:是 2:否 + */ + @SerializedName("bene_is_shareholider") + private String beneIsShareholider; + + /** + * 受益人持股比例(百分比) + */ + @SerializedName("bene_ratio") + private String beneRatio; + + /** + * 受益人地址 + */ + @SerializedName("bene_addr") + private String beneAddr; + + /** + * 受益人证件类型 + */ + @SerializedName("bene_id_type") + private String beneIdType; + + /** + * 受益人证件号码 + */ + @SerializedName("bene_id_no") + private String beneIdNo; + + /** + * 受益人证件有效期 yyyy-MM-dd + */ + @SerializedName("bene_opto") + private String beneOpto; + + /** + * 受益所有人 + */ + @SerializedName("bene_owner") + private String beneOwner; + + @SerializedName("file_list") + private List fileList; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + /** + * 操作柜员 + */ + @SerializedName("trans_teller") + private String transTeller; + + @Data + public static class FileList { + /** + * 文件编号 + */ + @SerializedName("file_no") + private String fileNo; + + /** + * 文件类型 + */ + @SerializedName("file_type") + private String fileType; + + /** + * 文件页码 + */ + @SerializedName("file_page") + private String filePage; + } +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccCompanyResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccCompanyResponse.java new file mode 100644 index 0000000..9612558 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccCompanyResponse.java @@ -0,0 +1,48 @@ +package com.czcb.scfs.api.service.v1.account.model; + +import com.czcb.scfs.api.core.ApiResponse; +import com.google.gson.annotations.SerializedName; +import lombok.Data; + +/** + * @author wangwei + * @since 2.0.0 + */ +@Data +public class ModAccCompanyResponse implements ApiResponse { + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_Info") + private String recodeInfo; + + /** + * 账号 + */ + @SerializedName("account_no") + private String accountNo; + + /** + * 客户号 + */ + @SerializedName("customer_no") + private String customerNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("recode_Info") + private String sysTime; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccPersonRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccPersonRequest.java new file mode 100644 index 0000000..5377d71 --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccPersonRequest.java @@ -0,0 +1,157 @@ +package com.czcb.scfs.api.service.v1.account.model; + +import com.czcb.scfs.api.core.ApiRequest; +import com.czcb.scfs.api.service.TransType; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author wangwei + * @since 2.0.0 + */ +@Data +@Accessors(chain = true) +@TransType("100003") +public class ModAccPersonRequest implements ApiRequest { + /** + * 渠道编号 + */ + @SerializedName("channel_no") + private String channelNo; + + /** + * 应用编号 + */ + @SerializedName("app_no") + private String appNo; + + /** + * 流水号 + */ + @SerializedName("serial_no") + private String serialNo; + + /** + * 交易码=功能号(trans_type) + */ + @SerializedName("trade_no") + private String tradeNo; + + /** + * 验证码 + */ + @SerializedName("verify_code") + private String verifyCode; + + /** + * 账号性质;1:个人 + */ + @SerializedName("account_property") + private String accountProperty = "1"; + + /** + * 证件类型 + */ + @SerializedName("id_type") + private String idType; + + /** + * 证件号码 + */ + @SerializedName("id_no") + private String idNo; + + /** + * 证件有效起始日期 + */ + @SerializedName("id_startdate") + private String idStartDate; + + /** + * 证件有效结束日期 + */ + @SerializedName("id_enddate") + private String idEndDate; + + /** + * 签发机关 + */ + @SerializedName("sign_name") + private String signName; + + /** + * 签发机关编号(行政区划编号) + */ + @SerializedName("sign_no") + private String signNo; + + /** + * 手机号 + */ + @SerializedName("mobile") + private String mobile; + + /** + * 主账号 + */ + @SerializedName("primary_account") + private String primaryAccount; + + /** + * 开户行号,个人选填 + * 填写后可以进行单笔100万-1000万的提现,不填则系统识别卡bin获取总行行号 + */ + @SerializedName("bank_no") + private String bankNo; + + /** + * 开户行名称,个人选填 + */ + @SerializedName("bank_name") + private String bankName; + + @SerializedName("file_list") + private List fileList; + + /** + * 操作日期 + */ + @SerializedName("trans_date") + private String transDate; + + /** + * 操作时间 + */ + @SerializedName("trans_tradetime") + private String transTradeTime; + + /** + * 操作柜员 + */ + @SerializedName("trans_teller") + private String transTeller; + + @Data + public static class FileList { + /** + * 文件编号 + */ + @SerializedName("file_no") + private String fileNo; + + /** + * 文件类型 + */ + @SerializedName("file_type") + private String fileType; + + /** + * 文件页码 + */ + @SerializedName("file_page") + private String filePage; + } +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccPersonResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccPersonResponse.java new file mode 100644 index 0000000..a42633f --- /dev/null +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/ModAccPersonResponse.java @@ -0,0 +1,48 @@ +package com.czcb.scfs.api.service.v1.account.model; + +import com.czcb.scfs.api.core.ApiResponse; +import com.google.gson.annotations.SerializedName; +import lombok.Data; + +/** + * @author wangwei + * @since 2.0.0 + */ +@Data +public class ModAccPersonResponse implements ApiResponse { + /** + * 000000:表示成功 + */ + @SerializedName("recode") + private String recode; + + /** + * 结果信息 + */ + @SerializedName("recode_Info") + private String recodeInfo; + + /** + * 账号 + */ + @SerializedName("account_no") + private String accountNo; + + /** + * 客户号 + */ + @SerializedName("customer_no") + private String customerNo; + + /** + * 系统日期(YYYY-MM-DD) + */ + @SerializedName("sys_date") + private String sysDate; + + /** + * 系统时间(YYYY-MM-DD hh:mm:ss) + */ + @SerializedName("recode_Info") + private String sysTime; +} diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/OpenAccRequest.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/OpenAccRequest.java similarity index 72% rename from scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/OpenAccRequest.java rename to scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/OpenAccRequest.java index 0ef69f9..09b5d15 100644 --- a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/OpenAccRequest.java +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/account/model/OpenAccRequest.java @@ -1,4 +1,4 @@ -package com.czcb.scfs.api.service.v1.account; +package com.czcb.scfs.api.service.v1.account.model; import java.io.Serializable; diff --git a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/sms/model/SendVerifySignResponse.java b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/sms/model/SendVerifySignResponse.java index f6f99e6..15fc392 100644 --- a/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/sms/model/SendVerifySignResponse.java +++ b/scfs-api-service/src/main/java/com/czcb/scfs/api/service/v1/sms/model/SendVerifySignResponse.java @@ -34,5 +34,8 @@ public class SendVerifySignResponse implements ApiResponse { @SerializedName("recode_Info") private String sysTime; + /** + * 短信编号 + */ private String smsNo; } 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 f3be78f..3053c3a 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 @@ -4,6 +4,7 @@ import com.czcb.scfs.api.core.ApiClient; import com.czcb.scfs.api.core.Profile; import com.czcb.scfs.api.core.http.ApiClientBuilder; import com.czcb.scfs.api.service.health.EchoService; +import com.czcb.scfs.api.service.v1.account.AccountService; import com.czcb.scfs.api.service.v1.sms.SmsService; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -36,6 +37,11 @@ public class ScfsAutoConfiguration { return new SmsService(apiClient); } + @Bean + public AccountService accountService(ApiClient apiClient) { + return new AccountService(apiClient); + } + @Bean public EchoService echoService(ApiClient apiClient) { return new EchoService(apiClient);