|
|
@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ydtech.config.properties.ZmApiConfigurationProperties;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
import com.ydtech.modules.order.entity.api.zm.BaseRequest;
|
|
|
-import com.ydtech.modules.order.entity.api.zm.BaseRequestHead;
|
|
|
import com.ydtech.modules.order.entity.api.zm.BaseResponse;
|
|
|
import com.ydtech.modules.order.entity.api.zm.request.*;
|
|
|
import com.ydtech.modules.order.entity.api.zm.response.*;
|
|
|
@@ -19,6 +18,7 @@ import java.util.List;
|
|
|
|
|
|
|
|
|
/**
|
|
|
+ *
|
|
|
* @author wenks
|
|
|
* @version 0.0.2
|
|
|
* @description 中煤 APi 请求
|
|
|
@@ -28,19 +28,6 @@ import java.util.List;
|
|
|
@Component
|
|
|
public class ZhongmeiRequestApiComponents {
|
|
|
|
|
|
- /**
|
|
|
- * 车型查询 https://www.echinacoal.com/ singlePlatform /ModelsQuery.do
|
|
|
- * 续保查询(暂不做) https:// www.echinacoal.com/ singlePlatform /RenewalQuery.do
|
|
|
- * 报价 https:// www.echinacoal.com/singlePlatform/QuotedPrice.do
|
|
|
- * 提交核保 https:// www.echinacoal.com/ singlePlatform /Submit.do
|
|
|
- * 缴费查询 https:// www.echinacoal.com / singlePlatform /OrderStatus.do
|
|
|
- * 核保状态查询 https:// www.echinacoal.com / singlePlatform /SubmitStatus.do
|
|
|
- * 电子保单下载 https:// www.echinacoal.com / singlePlatform /InsurancePolicyPrint.do
|
|
|
- * 影像上传(接口) https://www.echinacoal.com/singlePlatform/others/UploadImage.do
|
|
|
- * 校验发短信接口 https://www.echinacoal.com/singlePlatform/prpall/CheckSMScode.do
|
|
|
- * 验证校验码正确 https://www.echinacoal.com/singlePlatform/prpall/ValidSMScode.do
|
|
|
- */
|
|
|
-
|
|
|
|
|
|
private final ZmApiConfigurationProperties properties;
|
|
|
|
|
|
@@ -51,7 +38,7 @@ public class ZhongmeiRequestApiComponents {
|
|
|
this.restTemplate = restTemplate;
|
|
|
}
|
|
|
|
|
|
- public <K extends BaseRequest, T extends BaseResponse> T post(K k, String url, Class<T> tClass) {
|
|
|
+ private <K extends BaseRequest, T extends BaseResponse> T post(K k, String url, Class<T> tClass) {
|
|
|
HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
|
HttpEntity<K> yaQuoteInfoVoHttpEntity = new HttpEntity<>(k, httpHeaders);
|
|
|
@@ -71,76 +58,112 @@ public class ZhongmeiRequestApiComponents {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 车型查询
|
|
|
- *
|
|
|
- * @param request 请求内容
|
|
|
- * @param tClass 响应类型
|
|
|
+ * @param <Request> 请求体
|
|
|
+ * @param <Response> 响应体
|
|
|
+ * @param request 请求内容
|
|
|
+ * @param tClass 响应类型
|
|
|
+ * @param verify 结果是否需要验证
|
|
|
* @return 响应内容
|
|
|
*/
|
|
|
+ public <Request extends BaseRequest, Response extends BaseResponse> Response request(Request request, Class<Response> tClass, boolean verify, String domain) {
|
|
|
+ String url = domain + request.getHead().getTransCode() + ".do";
|
|
|
+ request.setHead(properties.getHead());
|
|
|
+ Response response = post(request, url, tClass);
|
|
|
+ if (verify) {
|
|
|
+ validationResults(response);
|
|
|
+ }
|
|
|
+ return post(request, url, tClass);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 常规
|
|
|
+ */
|
|
|
+ public <Request extends BaseRequest, Response extends BaseResponse> Response routineRequest(Request request, Class<Response> tClass, boolean verify) {
|
|
|
+ return request(request, tClass, verify, properties.getUrl());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 影像
|
|
|
+ */
|
|
|
+ public <Request extends BaseRequest, Response extends BaseResponse> void imageRequest(Request request, Class<Response> tClass, boolean verify) {
|
|
|
+ request(request, tClass, verify, properties.getImageUrl());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 短信
|
|
|
+ */
|
|
|
+ public <Request extends BaseRequest, Response extends BaseResponse> Response smsRequest(Request request, Class<Response> tClass, boolean verify) {
|
|
|
+ return request(request, tClass, verify, properties.getSmsUrl());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 车型查询 传入必要车辆信息,返回车型列表给用户选择
|
|
|
+ */
|
|
|
public List<ModelsQueryResponse.SimpleStadarCarDTO> modelQuery(ModelsQueryRequest request, Class<ModelsQueryResponse> tClass) {
|
|
|
- String transCode = "ModelsQuery";
|
|
|
- String url = properties.getUrl() + transCode + ".do";
|
|
|
- BaseRequestHead head = properties.getHead(transCode);
|
|
|
- request.setHead(head);
|
|
|
- ModelsQueryResponse post = post(request, url, tClass);
|
|
|
- return post.getSimpleStadarCar();
|
|
|
+ return routineRequest(request, tClass, true).getSimpleStadarCar();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 报价
|
|
|
- *
|
|
|
- * @param request 请求内容
|
|
|
- * @return 响应内容
|
|
|
+ * 报价 传入必要投保方案信息,返回投保单保费及车船税
|
|
|
*/
|
|
|
public QuotedPriceResponse quotedPrice(QuotedPriceRequest request, Class<QuotedPriceResponse> tClass) {
|
|
|
- String transCode = "QuotedPrice";
|
|
|
- String url = properties.getUrl() + transCode + ".do";
|
|
|
- BaseRequestHead head = properties.getHead(transCode);
|
|
|
- request.setHead(head);
|
|
|
- return post(request, url, tClass);
|
|
|
+ return routineRequest(request, tClass, true);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 提交核保
|
|
|
- * @param request 请求内容
|
|
|
- * @param tClass 响应类型
|
|
|
- * @return 响应内容
|
|
|
+ * 提交核保 传入投保单必要信息,对投保单进行审核
|
|
|
*/
|
|
|
public SubmitResponse submit(SubmitRequest request, Class<SubmitResponse> tClass) {
|
|
|
- String transCode = "Submit";
|
|
|
- String url = properties.getUrl() + transCode + ".do";
|
|
|
- BaseRequestHead head = properties.getHead(transCode);
|
|
|
- request.setHead(head);
|
|
|
request.setCallbackUrl(properties.getCallbackDomain() + properties.getCallbackUrl());
|
|
|
request.setPageUrl(properties.getPageUrl());
|
|
|
request.setPassMsgUrl(properties.getCallbackDomain() + properties.getPassMsgUrl());
|
|
|
- return post(request, url, tClass);
|
|
|
+ return routineRequest(request, tClass, false);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 上传影像
|
|
|
- * @param request 请求内容
|
|
|
- * @param tClass 响应类型
|
|
|
+ * 上传影像 传入订单信息,查询是否生成保单成功
|
|
|
*/
|
|
|
public void uploadImage(UploadImageRequest request, Class<UploadImageResponse> tClass) {
|
|
|
- String transCode = "UploadImage";
|
|
|
- String url = properties.getImageUrl() + transCode + ".do";
|
|
|
- BaseRequestHead head = properties.getHead(transCode);
|
|
|
- request.setHead(head);
|
|
|
- UploadImageResponse response = post(request, url, tClass);
|
|
|
- validationResults(response);
|
|
|
- }
|
|
|
-
|
|
|
- public InsurancePolicyPrintResponse insurancePolicyPrint(InsurancePolicyPrintRequest request, Class<InsurancePolicyPrintResponse> tClass){
|
|
|
- String transCode = "InsurancePolicyPrint";
|
|
|
- String url = properties.getUrl() + transCode + ".do";
|
|
|
- BaseRequestHead head = properties.getHead(transCode);
|
|
|
- request.setHead(head);
|
|
|
- InsurancePolicyPrintResponse response = post(request, url, tClass);
|
|
|
- validationResults(response);
|
|
|
- return response;
|
|
|
+ imageRequest(request, tClass, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 缴费查询
|
|
|
+ */
|
|
|
+ public OrderStatusResponse orderStatus(OrderStatusRequest request, Class<OrderStatusResponse> tClass) {
|
|
|
+ return routineRequest(request, tClass, true);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 核保状态查询 传入单号查询该单核保状态
|
|
|
+ */
|
|
|
+ public SubmitStatusQueryResponse submitStatus(SubmitStatusQueryRequest request, Class<SubmitStatusQueryResponse> tClass) {
|
|
|
+ return routineRequest(request, tClass, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 电子保单下载 传入单号相关信息下载电子保单
|
|
|
+ */
|
|
|
+ public InsurancePolicyPrintResponse insurancePolicyPrint(InsurancePolicyPrintRequest request, Class<InsurancePolicyPrintResponse> tClass) {
|
|
|
+ return routineRequest(request, tClass, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验发短信接口 校验此单是否需要发送短信
|
|
|
+ */
|
|
|
+ public CheckSMScodeResponse checkSMScode(CheckSMScodeRequest request, Class<CheckSMScodeResponse> tClass) {
|
|
|
+ return smsRequest(request, tClass, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 验证校验码正确 录入校验码校验是否正确
|
|
|
+ */
|
|
|
+ public ValidSMScodeResponse checkSMScode(ValidSMScodeRequest request, Class<ValidSMScodeResponse> tClass) {
|
|
|
+ return smsRequest(request, tClass, true);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public <T extends BaseResponse> void validationResults(T t) {
|
|
|
if ("-1".equals(t.getHead().getReturnCode())) {
|
|
|
throw new SystemException(t.getHead().getReturnMessage());
|