Commit bc5558f9 by ex_fuhzh2

对接签章证书相关接口

parent dd0995e6
...@@ -78,4 +78,16 @@ public class RetrofitDevConfiguration { ...@@ -78,4 +78,16 @@ public class RetrofitDevConfiguration {
.addConverterFactory(GsonConverterFactory.create(gson)) .addConverterFactory(GsonConverterFactory.create(gson))
.build(); .build();
} }
/**
* 评标服务
* @param gson
* @return
*/
@Bean("retrofitPingBiao")
@Primary
public Retrofit retrofitPingBiao(Gson gson) {
return createRetrofit("https://purb.t-bid.cnooc.com.cn/", gson);
}
} }
...@@ -78,4 +78,16 @@ public class RetrofitPreConfiguration { ...@@ -78,4 +78,16 @@ public class RetrofitPreConfiguration {
.addConverterFactory(GsonConverterFactory.create(gson)) .addConverterFactory(GsonConverterFactory.create(gson))
.build(); .build();
} }
/**
* 评标服务
* @param gson
* @return
*/
@Bean("retrofitPingBiao")
@Primary
public Retrofit retrofitPingBiao(Gson gson) {
return createRetrofit("https://purb.t-bid.cnooc.com.cn/", gson);
}
} }
...@@ -79,4 +79,16 @@ public class RetrofitProdConfiguration { ...@@ -79,4 +79,16 @@ public class RetrofitProdConfiguration {
.build(); .build();
} }
/**
* 评标服务
* @param gson
* @return
*/
@Bean("retrofitPingBiao")
@Primary
public Retrofit retrofitPingBiao(Gson gson) {
return createRetrofit("https://purb.t-bid.cnooc.com.cn/", gson);
}
} }
...@@ -79,4 +79,16 @@ public class RetrofitTestConfiguration { ...@@ -79,4 +79,16 @@ public class RetrofitTestConfiguration {
.build(); .build();
} }
/**
* 评标服务
* @param gson
* @return
*/
@Bean("retrofitPingBiao")
@Primary
public Retrofit retrofitPingBiao(Gson gson) {
return createRetrofit("https://purb.t-bid.cnooc.com.cn/", gson);
}
} }
package com.cnooc.expert.controller.pingbiao;
import com.cnooc.expert.common.response.ApiResult;
import com.cnooc.expert.controller.common.AbstractBaseController;
import com.cnooc.expert.external.pingbiao.model.request.SignOptimizeReq;
import com.cnooc.expert.external.pingbiao.model.response.FaceDynResp;
import com.cnooc.expert.external.pingbiao.model.response.IdentifyFaceDynResp;
import com.cnooc.expert.external.pingbiao.model.response.SignValidityPeriodResp;
import com.cnooc.expert.external.pingbiao.model.response.WhitelistStatusResp;
import com.cnooc.expert.service.PingBiaoService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@AllArgsConstructor
@RestController
@RequestMapping("/pingbiao")
public class PingBiaoController extends AbstractBaseController {
private final PingBiaoService pingBiaoService;
//查询证书预授权有效期
@PostMapping("/getSignValidityPeriod")
public ApiResult<SignValidityPeriodResp> getSignValidityPeriod(@RequestBody SignOptimizeReq signOptimizeDto){
return ApiResult.successWithResult(pingBiaoService.getSignValidityPeriod(signOptimizeDto));
}
//查询内部用户白名单状态
@PostMapping("/queryInsideSignUser")
public ApiResult<WhitelistStatusResp> queryInsideSignUser(@RequestBody SignOptimizeReq signOptimizeDto) {
return ApiResult.successWithResult(pingBiaoService.queryInsideSignUser(signOptimizeDto));
}
//查询外部用户白名单状态
@PostMapping("/queryOutsidePerson")
public ApiResult<WhitelistStatusResp> queryOutsidePerson(@RequestBody SignOptimizeReq signOptimizeDto) {
return ApiResult.successWithResult(pingBiaoService.queryOutsidePerson(signOptimizeDto));
}
//创建外部用户白名单状态
@PostMapping("/createOutsidePerson")
public ApiResult<WhitelistStatusResp> createOutsidePerson(@RequestBody SignOptimizeReq signOptimizeDto) {
return ApiResult.successWithResult(pingBiaoService.createOutsidePerson(signOptimizeDto));
}
//人脸识别-动态
@PostMapping("/getFaceDyn")
public ApiResult<FaceDynResp> getFaceDyn(@RequestBody SignOptimizeReq signOptimizeDto){
return ApiResult.successWithResult(pingBiaoService.getFaceDyn(signOptimizeDto));
}
//获取动态人脸识别核验结果
@PostMapping("/identifyFaceDyn")
public ApiResult<IdentifyFaceDynResp> identifyFaceDyn(@RequestBody SignOptimizeReq signOptimizeDto){
return ApiResult.successWithResult(pingBiaoService.identifyFaceDyn(signOptimizeDto));
}
//场景证书授权人发送授权码
@PostMapping("/sendSceneCode")
public ApiResult<WhitelistStatusResp> sendSceneCode(@RequestBody SignOptimizeReq signOptimizeDto){
return ApiResult.successWithResult(pingBiaoService.sendSceneCode(signOptimizeDto));
}
//验证场景证书授权码
@PostMapping("/validSceneCode")
public ApiResult<WhitelistStatusResp> validSceneCode(@RequestBody SignOptimizeReq signOptimizeDto){
return ApiResult.successWithResult(pingBiaoService.validSceneCode(signOptimizeDto));
}
}
package com.cnooc.expert.external.pingbiao.api;
import com.cnooc.expert.external.common.model.response.ApiBaseResult;
import com.cnooc.expert.external.pingbiao.model.request.SignOptimizeReq;
import com.cnooc.expert.external.pingbiao.model.response.FaceDynResp;
import com.cnooc.expert.external.pingbiao.model.response.IdentifyFaceDynResp;
import com.cnooc.expert.external.pingbiao.model.response.SignValidityPeriodResp;
import com.cnooc.expert.external.pingbiao.model.response.WhitelistStatusResp;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.HeaderMap;
import retrofit2.http.POST;
import java.util.Map;
public interface PingBiaoServiceApi {
//查询证书预授权有效期
@POST("/api/saas-pingbiao/sign/optimize/getSignValidityPeriod")
Call<ApiBaseResult<SignValidityPeriodResp>> getSignValidityPeriod(@HeaderMap Map<String, Object> headers, @Body SignOptimizeReq req);
//查询内部用户白名单
@POST("/api/saas-pingbiao/sign/optimize/queryInsideSignUser")
Call<ApiBaseResult<WhitelistStatusResp>> queryInsideSignUser(@HeaderMap Map<String, Object> headers, @Body SignOptimizeReq req);
//查询外部用户白名单状态
@POST("/api/saas-pingbiao/sign/optimize/queryOutsidePerson")
Call<ApiBaseResult<WhitelistStatusResp>> queryOutsidePerson(@HeaderMap Map<String, Object> headers, @Body SignOptimizeReq req);
//创建外部用户白名单状态
@POST("/api/saas-pingbiao/sign/optimize/createOutsidePerson")
Call<ApiBaseResult<WhitelistStatusResp>> createOutsidePerson(@HeaderMap Map<String, Object> headers, @Body SignOptimizeReq req);
//人脸识别-动态
@POST("/api/saas-pingbiao/sign/optimize/getFaceDyn")
Call<ApiBaseResult<FaceDynResp>> getFaceDyn(@HeaderMap Map<String, Object> headers, @Body SignOptimizeReq req);
//获取动态人脸识别核验结果
@POST("/api/saas-pingbiao/sign/optimize/identifyFaceDyn")
Call<ApiBaseResult<IdentifyFaceDynResp>> identifyFaceDyn(@HeaderMap Map<String, Object> headers, @Body SignOptimizeReq req);
//场景证书授权人发送授权码
@POST("/api/saas-pingbiao/sign/optimize/sendSceneCode")
Call<ApiBaseResult<WhitelistStatusResp>> sendSceneCode(@HeaderMap Map<String, Object> headers, @Body SignOptimizeReq req);
//验证场景证书授权码
@POST("/api/saas-pingbiao/sign/optimize/validSceneCode")
Call<ApiBaseResult<WhitelistStatusResp>> validSceneCode(@HeaderMap Map<String, Object> headers, @Body SignOptimizeReq req);
}
package com.cnooc.expert.external.pingbiao.model.request;
import lombok.Data;
/**
* 签章优化-场景证书
* @author ex_fuhzh2
* @date 2025-11-15
*/
@Data
public class SignOptimizeReq {
private String esealType;//印章类型
private String esealCode;//电子印章编码
private String userAccount;//内部用户账号
private String idNo;//个人证件号码
private String name;//用户姓名
private String identifyNo;//动态人脸识别核验操作流水号
private String remark;//说明
private String sceneCode;//授权码
}
package com.cnooc.expert.external.pingbiao.model.response;
import lombok.Data;
/**
* 签章优化-场景证书-动态人脸识别
* @author ex_fuhzh2
* @date 2025-11-15
*/
@Data
public class FaceDynResp {
private String identifyNo;//人脸识别操作流水号
private String identifyBarcode;//人脸识别操作url 地址对应的手机微信扫描二维码,格式为以BASE64 编码的图片文件
private String identifyUrl; //人脸识别操作url 地址
}
package com.cnooc.expert.external.pingbiao.model.response;
import lombok.Data;
/**
* 签章优化-场景证书-动态人脸识别核验结果
* @author ex_fuhzh2
* @date 2025-11-15
*/
@Data
public class IdentifyFaceDynResp {
private String identifyNo; //核验操作流水号
private boolean identifyResult; //验证结果,true:验证成功,false:验证失败
private String identifyPhoto;//人脸识别采样图片
}
package com.cnooc.expert.external.pingbiao.model.response;
import lombok.Data;
/**
* 查询证书预授权有效期
* @author ex_fuhzh2
* @date 2025-11-18
*/
@Data
public class SignValidityPeriodResp {
private String validTime;//有效时间
private boolean validPeriod;//是否有效
private String identifyNo; //核验操作流水号
private String sceneCode;//场景证书授权码
}
package com.cnooc.expert.external.pingbiao.model.response;
import lombok.Data;
/**
* 签章白名单返回状态
* @author ex_fuhzh2
* @date 2025-11-18
*/
@Data
public class WhitelistStatusResp {
private int status;
private String remark;
}
package com.cnooc.expert.external.pingbiao.service;
import com.cnooc.expert.external.common.AbstractRetrofitManager;
import com.cnooc.expert.external.common.model.response.ApiBaseResult;
import com.cnooc.expert.external.pingbiao.api.PingBiaoServiceApi;
import com.cnooc.expert.external.pingbiao.model.request.SignOptimizeReq;
import com.cnooc.expert.external.pingbiao.model.response.FaceDynResp;
import com.cnooc.expert.external.pingbiao.model.response.IdentifyFaceDynResp;
import com.cnooc.expert.external.pingbiao.model.response.SignValidityPeriodResp;
import com.cnooc.expert.external.pingbiao.model.response.WhitelistStatusResp;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import retrofit2.Call;
import retrofit2.Retrofit;
import java.util.Map;
@Service
public class PingBiaoServiceClient extends AbstractRetrofitManager {
private final PingBiaoServiceApi pingBiaoServiceApi;
public PingBiaoServiceClient(@Qualifier("retrofitPingBiao") Retrofit retrofit) {
this.pingBiaoServiceApi = retrofit.create(PingBiaoServiceApi.class);
}
public ApiBaseResult<SignValidityPeriodResp> getSignValidityPeriod(SignOptimizeReq request) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<SignValidityPeriodResp>> call = pingBiaoServiceApi.getSignValidityPeriod(headers,request);
return this.getResponseBody(call, "getSignValidityPeriod");
}
public ApiBaseResult<WhitelistStatusResp> queryInsideSignUser(SignOptimizeReq request) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<WhitelistStatusResp>> call = pingBiaoServiceApi.queryInsideSignUser(headers,request);
return this.getResponseBody(call, "queryInsideSignUser");
}
public ApiBaseResult<WhitelistStatusResp> queryOutsidePerson(SignOptimizeReq request) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<WhitelistStatusResp>> call = pingBiaoServiceApi.queryOutsidePerson(headers,request);
return this.getResponseBody(call, "queryOutsidePerson");
}
public ApiBaseResult<WhitelistStatusResp> createOutsidePerson(SignOptimizeReq request) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<WhitelistStatusResp>> call = pingBiaoServiceApi.createOutsidePerson(headers,request);
return this.getResponseBody(call, "createOutsidePerson");
}
public ApiBaseResult<FaceDynResp> getFaceDyn(SignOptimizeReq request) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<FaceDynResp>> call = pingBiaoServiceApi.getFaceDyn(headers,request);
return this.getResponseBody(call, "getFaceDyn");
}
public ApiBaseResult<IdentifyFaceDynResp> identifyFaceDyn(SignOptimizeReq request) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<IdentifyFaceDynResp>> call = pingBiaoServiceApi.identifyFaceDyn(headers,request);
return this.getResponseBody(call, "identifyFaceDyn");
}
public ApiBaseResult<WhitelistStatusResp> sendSceneCode(SignOptimizeReq request) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<WhitelistStatusResp>> call = pingBiaoServiceApi.sendSceneCode(headers,request);
return this.getResponseBody(call, "sendSceneCode");
}
public ApiBaseResult<WhitelistStatusResp> validSceneCode(SignOptimizeReq request) {
Map<String, Object> headers = super.getHeaders();
Call<ApiBaseResult<WhitelistStatusResp>> call = pingBiaoServiceApi.validSceneCode(headers,request);
return this.getResponseBody(call, "validSceneCode");
}
}
package com.cnooc.expert.service;
import com.cnooc.expert.external.common.model.response.ApiBaseResult;
import com.cnooc.expert.external.pingbiao.model.request.SignOptimizeReq;
import com.cnooc.expert.external.pingbiao.model.response.FaceDynResp;
import com.cnooc.expert.external.pingbiao.model.response.IdentifyFaceDynResp;
import com.cnooc.expert.external.pingbiao.model.response.SignValidityPeriodResp;
import com.cnooc.expert.external.pingbiao.model.response.WhitelistStatusResp;
import com.cnooc.expert.external.pingbiao.service.PingBiaoServiceClient;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@AllArgsConstructor
@Service
public class PingBiaoService {
private final PingBiaoServiceClient pingBiaoServiceClient;
public SignValidityPeriodResp getSignValidityPeriod(SignOptimizeReq request) {
ApiBaseResult<SignValidityPeriodResp> apiResp = pingBiaoServiceClient.getSignValidityPeriod(request);
return apiResp.getData();
}
public WhitelistStatusResp queryInsideSignUser(SignOptimizeReq request) {
ApiBaseResult<WhitelistStatusResp> apiResp = pingBiaoServiceClient.queryInsideSignUser(request);
return apiResp.getData();
}
public WhitelistStatusResp queryOutsidePerson(SignOptimizeReq request) {
ApiBaseResult<WhitelistStatusResp> apiResp = pingBiaoServiceClient.queryOutsidePerson(request);
return apiResp.getData();
}
public WhitelistStatusResp createOutsidePerson(SignOptimizeReq request) {
ApiBaseResult<WhitelistStatusResp> apiResp = pingBiaoServiceClient.createOutsidePerson(request);
return apiResp.getData();
}
public FaceDynResp getFaceDyn(SignOptimizeReq request) {
ApiBaseResult<FaceDynResp> apiResp = pingBiaoServiceClient.getFaceDyn(request);
return apiResp.getData();
}
public IdentifyFaceDynResp identifyFaceDyn(SignOptimizeReq request) {
ApiBaseResult<IdentifyFaceDynResp> apiResp = pingBiaoServiceClient.identifyFaceDyn(request);
return apiResp.getData();
}
public WhitelistStatusResp sendSceneCode(SignOptimizeReq request) {
ApiBaseResult<WhitelistStatusResp> apiResp = pingBiaoServiceClient.sendSceneCode(request);
return apiResp.getData();
}
public WhitelistStatusResp validSceneCode(SignOptimizeReq request) {
ApiBaseResult<WhitelistStatusResp> apiResp = pingBiaoServiceClient.validSceneCode(request);
return apiResp.getData();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment