Преглед на файлове

紫金财险未缴费保单撤单、订单详情查询服务

wks преди 3 години
родител
ревизия
a5cb1ead14
променени са 15 файла, в които са добавени 228 реда и са изтрити 13 реда
  1. 3 0
      src/main/java/com/ydtech/config/properties/ZjApiConfigurationProperties.java
  2. 20 0
      src/main/java/com/ydtech/modules/order/components/ZijinRequestApiComponents.java
  3. 19 9
      src/main/java/com/ydtech/modules/order/controller/ZijinOrderApiController.java
  4. 5 0
      src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/CarKindDetailIdEnum.java
  5. 1 1
      src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/EHealthTypeCodeEnum.java
  6. 6 0
      src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/FileTypeEnum.java
  7. 6 0
      src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/MotorVehicleInsuranceEnum.java
  8. 28 0
      src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/OrderStatusEnum.java
  9. 2 0
      src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/RequestUrl.java
  10. 16 0
      src/main/java/com/ydtech/modules/order/entity/api/zj/request/OrderNoRequest.java
  11. 63 0
      src/main/java/com/ydtech/modules/order/entity/api/zj/response/QueryOrderDetailResponse.java
  12. 17 3
      src/main/java/com/ydtech/modules/order/service/ZijinOrderApiService.java
  13. 37 0
      src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java
  14. 2 0
      src/main/resources/application-prod.yml
  15. 3 0
      src/main/resources/application-test.yml

+ 3 - 0
src/main/java/com/ydtech/config/properties/ZjApiConfigurationProperties.java

@@ -18,6 +18,9 @@ public class ZjApiConfigurationProperties {
     // 支付地址
     private String payUrl;
 
+    // 订单详情查询服务
+    private String orderUrl;
+
     // 下载保单地址
     private String downLoadDocument;
 

+ 20 - 0
src/main/java/com/ydtech/modules/order/components/ZijinRequestApiComponents.java

@@ -276,6 +276,26 @@ public class ZijinRequestApiComponents {
         return request(zjApiConfigurationProperties.getPayUrl(), RequestUrl.ZBF_AGGREGATE_PAY.getDesc(), zbfAggregatePayRequest, ZbfAggregatePayResponse.class, httpHeaders);
     }
 
+    /**
+     * 订单详情查询服务
+     *
+     * @param orderNoRequest 紫金财险 订单详情查询服务 入参实体
+     * @return 出参实体
+     */
+    public QueryOrderDetailResponse getOrderDetail(OrderNoRequest orderNoRequest, HttpHeaders httpHeaders) {
+        return request(zjApiConfigurationProperties.getOrderUrl(), RequestUrl.GET_ORDER_DETAIL.getDesc(), orderNoRequest, QueryOrderDetailResponse.class, httpHeaders);
+    }
+
+    /**
+     * 未缴费保单撤单
+     *
+     * @param orderNoRequest 紫金财险 未缴费保单撤单 入参实体
+     * @return 出参实体
+     */
+    public void cancel(OrderNoRequest orderNoRequest, HttpHeaders httpHeaders) {
+        request(RequestUrl.CANCEL, orderNoRequest, BaseResponse.class, httpHeaders);
+    }
+
     /**
      * 生成电子保单下载
      *

+ 19 - 9
src/main/java/com/ydtech/modules/order/controller/ZijinOrderApiController.java

@@ -57,23 +57,33 @@ public class ZijinOrderApiController {
         return this.zijinOrderApiService.audit(companyId);
     }
 
-    @PostMapping(value = "/submitImage")
-    @ApiOperation(value = "提交影像信息")
-    public HttpResult<Object> submitImage(@RequestSingleParam(value = "companyId") String companyId) {
-        return this.zijinOrderApiService.submitImage(companyId);
+    @PostMapping(value = "/cancel")
+    @ApiOperation(value = "未缴费保单撤单")
+    public HttpResult<Object> cancel(@RequestSingleParam(value = "companyId") String companyId) {
+        return this.zijinOrderApiService.cancel(companyId);
     }
 
+    @PostMapping("/paymentCallbacks")
+    @ApiOperation(value = "支付回调")
+    public HttpResult<Object> paymentCallbacks(PaymentCallbacksRequest paymentCallbacksRequest) {
+        return this.zijinOrderApiService.paymentCallbacks(paymentCallbacksRequest);
+    }
+
+    @PostMapping("/getOrderDetail")
+    @ApiOperation(value = "订单状态查询")
+    public HttpResult<Object> getOrderDetail(@RequestSingleParam(value = "companyId") String companyId) {
+        return this.zijinOrderApiService.getOrderDetail(companyId);
+    }
+
+
     @PostMapping("/getPolicyPrint")
     @ApiOperation(value = "电子保单")
     public HttpResult<String> getPolicyPrint(@RequestBody PolicyPrintVo policyPrintVo) {
         return this.zijinOrderApiService.getPolicyPrint(policyPrintVo);
     }
 
-    @PostMapping("/paymentCallbacks")
-    @ApiOperation(value = "支付回调")
-    public HttpResult<Object> paymentCallbacks(PaymentCallbacksRequest paymentCallbacksRequest) {
-        return this.zijinOrderApiService.paymentCallbacks(paymentCallbacksRequest);
-    }
+
+
 
 
 }

+ 5 - 0
src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/CarKindDetailIdEnum.java

@@ -3,6 +3,11 @@ package com.ydtech.modules.order.entity.api.zj.constants.enums;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+/**
+ * @description: 紫金财险 车种明细
+ * @author: wenks
+ * @date: 2023/9/1 17:29
+ **/
 @Getter
 @AllArgsConstructor
 public enum CarKindDetailIdEnum {

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/EHealthTypeCodeEnum.java

@@ -6,7 +6,7 @@ import lombok.Getter;
 
 
 /**
- * @description: 金财险 意健险险种代码
+ * @description: 金财险 意健险险种代码
  * @author: wenks
  * @date: 2023/8/23 9:25
  **/

+ 6 - 0
src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/FileTypeEnum.java

@@ -3,6 +3,12 @@ package com.ydtech.modules.order.entity.api.zj.constants.enums;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+/**
+ * @version
+ * @description: 紫金财险  文件类型
+ * @author: wenks
+ * @date: 2023/9/1 17:30
+ **/
 @AllArgsConstructor
 @Getter
 public enum FileTypeEnum {

+ 6 - 0
src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/MotorVehicleInsuranceEnum.java

@@ -3,6 +3,12 @@ package com.ydtech.modules.order.entity.api.zj.constants.enums;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+/**
+ * @version 
+ * @description: 紫金财险 机动车险别代码
+ * @author: wenks 
+ * @date: 2023/9/1 17:30
+ **/
 @AllArgsConstructor
 @Getter
 public enum MotorVehicleInsuranceEnum {

+ 28 - 0
src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/OrderStatusEnum.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.order.entity.api.zj.constants.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+
+/**
+ * @description: 紫金财险 订单状态
+ * @author: wenks
+ * @date: 2023/9/1 17:31
+ **/
+@Getter
+@AllArgsConstructor
+public enum OrderStatusEnum {
+
+    O_0("0", "暂存"),
+    O_1("1", "核保中"),
+    O_2("2", "待支付"),
+    O_3("3", "下发修改"),
+    O_4("4", "生效"),
+    O_5("5", "失效"),
+    O_6("6", "退保"),
+    O_7("7", "注销");
+
+    private final String code;
+
+    private final String name;
+}

+ 2 - 0
src/main/java/com/ydtech/modules/order/entity/api/zj/constants/enums/RequestUrl.java

@@ -21,6 +21,8 @@ public enum RequestUrl {
     UPLOAD_FILE("uploadFile", "文件上传"),
     UPLOAD_IMAGE_INFO_LIST("uploadImageInfoList", "文件信息与订单关联"),
     ZBF_AGGREGATE_PAY("zbfAggregatePay", "聚合支付服务"),
+    GET_ORDER_DETAIL("getOrderDetail", "订单详情查询服务"),
+    CANCEL("cancel", "未缴费保单撤单"),
     QUERY_VEHIC_PRODUCTS("queryVehicProducts", "查询“车+意”中意外险方案信息(非摩托车险)"),
     DOWN_LOAD_DOCUMENT("downLoadDocument", "第三方电子保单下载接口");
 

+ 16 - 0
src/main/java/com/ydtech/modules/order/entity/api/zj/request/OrderNoRequest.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.order.entity.api.zj.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@AllArgsConstructor
+@Data
+public class OrderNoRequest implements Serializable {
+
+    private static final long serialVersionUID = 2906494404968695466L;
+
+    private String orderNo;
+
+}

+ 63 - 0
src/main/java/com/ydtech/modules/order/entity/api/zj/response/QueryOrderDetailResponse.java

@@ -0,0 +1,63 @@
+package com.ydtech.modules.order.entity.api.zj.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class QueryOrderDetailResponse extends BaseResponse implements Serializable {
+
+    private static final long serialVersionUID = -1276766584417540458L;
+
+
+    @JsonProperty("resultObj")
+    private ResultObjDTO resultObj;
+
+    @JsonProperty("orderId")
+    private String orderId;
+
+    @JsonProperty("orderNo")
+    private String orderNo;
+
+    @JsonProperty("iseeBiz")
+    private String iseeBiz;
+
+    @JsonProperty("applyNo")
+    private String applyNo;
+
+    @JsonProperty("vipNo")
+    private String vipNo;
+
+    @JsonProperty("terminalId")
+    private String terminalId;
+
+    @NoArgsConstructor
+    @Data
+    public static class ResultObjDTO  implements Serializable {
+
+        private static final long serialVersionUID = -1129709080882223541L;
+
+        @JsonProperty("orderId")
+        private String orderId;
+
+        @JsonProperty("orderNo")
+        private String orderNo;
+
+        @JsonProperty("orderOrigin")
+        private String orderOrigin;
+
+        @JsonProperty("payTime")
+        private String payTime;
+
+        /**
+         * 订单状态:0暂存;1核保中;2待支付;3下发修改;4生效;5失效;6退保;7注销
+         */
+        @JsonProperty("orderStatus")
+        private String orderStatus;
+
+    }
+}

+ 17 - 3
src/main/java/com/ydtech/modules/order/service/ZijinOrderApiService.java

@@ -19,11 +19,25 @@ public interface ZijinOrderApiService extends BaseOrderService<List<CalculatePre
      */
     HttpResult<List<QueryVehicProductsResponse.ProductDtoListDTO>> queryVehicleProducts(ZjVehicleProductsVo zjVehicleProductsVo);
 
+    /**
+     * 订单状态查询
+     * @param companyId 子订单号
+     */
+    HttpResult<Object> getOrderDetail(String companyId);
+
+
+    /**
+     * 未缴费保单撤单
+     * @param companyId 子订单号
+     */
+    HttpResult<Object> cancel(String companyId);
+
+
     /**
      * 获取电子保单
      *
-     * @param policyPrintVo
-     * @return
+     * @param policyPrintVo 获取保单实体
+     * @return 电子保单链接
      */
     HttpResult<String> getPolicyPrint(PolicyPrintVo policyPrintVo);
 
@@ -31,8 +45,8 @@ public interface ZijinOrderApiService extends BaseOrderService<List<CalculatePre
      * 支付回调
      *
      * @param paymentCallbacksRequest 支付回调实体
-     * @return
      */
     HttpResult<Object> paymentCallbacks(PaymentCallbacksRequest paymentCallbacksRequest);
 
+
 }

+ 37 - 0
src/main/java/com/ydtech/modules/order/service/impl/ZijinOrderApiServiceImpl.java

@@ -15,6 +15,7 @@ import com.ydtech.modules.order.components.ZijinRequestApiComponents;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.api.zj.constants.enums.OrderStatusEnum;
 import com.ydtech.modules.order.entity.api.zj.constants.enums.ResultEnum;
 import com.ydtech.modules.order.entity.api.zj.constants.enums.RiskCodeEnum;
 import com.ydtech.modules.order.entity.api.zj.request.*;
@@ -228,6 +229,42 @@ public class ZijinOrderApiServiceImpl implements ZijinOrderApiService {
         return HttpResult.ok("生成成功", url);
     }
 
+
+    @Override
+    public HttpResult<Object> getOrderDetail(String companyId) {
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
+
+        // 1 通过 协议id获取配置实体
+        HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
+
+        // 2 请求查看订单状态
+        OrderNoRequest orderNoRequest = new OrderNoRequest(insAreaCompany.getId());
+        QueryOrderDetailResponse queryOrderDetailResponse = zijinRequestApiComponents.getOrderDetail(orderNoRequest, httpHeaders);
+
+        String orderStatus = queryOrderDetailResponse.getResultObj().getOrderStatus();
+        if (OrderStatusEnum.O_4.getCode().equals(orderStatus)) {
+            insAreaCompany.setOrderstatus(InsOrderStatus.S_3.getCode());
+            insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+            return HttpResult.ok("订单已支付,订单状态修改完成");
+        }
+
+        return HttpResult.ok("订单还未支付哦.");
+    }
+
+    @Override
+    public HttpResult<Object> cancel(String companyId) {
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
+
+        // 1 通过 协议id获取配置实体
+        HttpHeaders httpHeaders = zijinRequestApiComponents.getHttpHeaders(insAreaCompany.getAgreementId());
+
+        // 2 请求查看订单状态
+        OrderNoRequest orderNoRequest = new OrderNoRequest(insAreaCompany.getId());
+        zijinRequestApiComponents.cancel(orderNoRequest, httpHeaders);
+
+        return HttpResult.ok("撤单成功");
+    }
+
     @Override
     public HttpResult<Object> paymentCallbacks(PaymentCallbacksRequest paymentCallbacksRequest) {
 

+ 2 - 0
src/main/resources/application-prod.yml

@@ -234,6 +234,8 @@ zj:
     url: http://open.zking.com/api/v1/insurance/autoMobile/carInsurance/queryToken
     # 支付
     payUrl: http://open.zking.com/api/v1/public/payment/cashier/zbfAggregatePay
+    # 订单详情查询服务
+    orderUrl: http://open.zking.com/api/v1/insurance/public/getOrderDetail
     # 下载保单地址
     downLoadDocument: http://open.zking.com/temp/api/v1/insurance/nonAutoMobile/queryPolicy/downLoadDocument
 

+ 3 - 0
src/main/resources/application-test.yml

@@ -340,11 +340,14 @@ zj:
 #    proposalCityCode: 320100
 #    proposalAreaCode: 320000
     # 为接入方提供获取token服务
+
     accessTokenUrl: https://test-open.zking.com/api/v1/public/token/getAccessToken
     # 车险业务
     url: http://test-open.zking.com/api/v1/insurance/autoMobile/carInsurance/
     # 支付
     payUrl: http://test-open.zking.com/api/v1/public/payment/cashier/zbfAggregatePay
+    # 订单详情查询服务
+    orderUrl: http://test-open.zking.com/api/v1/insurance/public/getOrderDetail
     # 下载保单地址
     downLoadDocument: http://test-open.zking.com/temp/api/v1/insurance/nonAutoMobile/queryPolicy/downLoadDocument