ZhongMeiOrderApiController.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. package com.ydtech.modules.order.controller;
  2. import com.ydtech.aop.request.RequestSingleParam;
  3. import com.ydtech.config.properties.ZhongmeiApiConfigurationProperties;
  4. import com.ydtech.core.page.HttpResult;
  5. import com.ydtech.modules.ins.model.vo.GeneralNonCarProductReqVo;
  6. import com.ydtech.modules.ins.model.vo.GeneralNonCarProductResVo;
  7. import com.ydtech.modules.ins.model.vo.QuoteRespVo;
  8. import com.ydtech.modules.ins.model.ya.CarModelDTO;
  9. import com.ydtech.modules.order.aop.AuditVerification;
  10. import com.ydtech.modules.order.aop.QuoteVerification;
  11. import com.ydtech.modules.order.components.InsOrdersComponents;
  12. import com.ydtech.modules.order.entity.api.zhongmei.request.ApprovedRequest;
  13. import com.ydtech.modules.order.entity.api.zhongmei.request.CoverageRequest;
  14. import com.ydtech.modules.order.entity.api.zhongmei.response.RideAccidentQueryResponse;
  15. import com.ydtech.modules.order.entity.vo.*;
  16. import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
  17. import com.ydtech.modules.order.utils.AESUtilsWithDataBase;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import lombok.extern.slf4j.Slf4j;
  21. import org.springframework.web.bind.annotation.*;
  22. import javax.validation.Valid;
  23. import java.util.Comparator;
  24. import java.util.List;
  25. import java.util.stream.Collectors;
  26. @Api(tags = "中煤财险 API ")
  27. @Slf4j
  28. @RestController
  29. @RequestMapping("/order/zhongMeiApi")
  30. public class ZhongMeiOrderApiController {
  31. private final ZhongMeiOrderApiService zhongMeiOrderApiService;
  32. private final InsOrdersComponents insOrdersComponents;
  33. private final ZhongmeiApiConfigurationProperties properties;
  34. public ZhongMeiOrderApiController(ZhongMeiOrderApiService zhongMeiOrderApiService, InsOrdersComponents insOrdersComponents,
  35. ZhongmeiApiConfigurationProperties properties) {
  36. this.zhongMeiOrderApiService = zhongMeiOrderApiService;
  37. this.insOrdersComponents = insOrdersComponents;
  38. this.properties = properties;
  39. }
  40. @PostMapping(value = "/modelsQuery")
  41. @ApiOperation(value = "车型查询接口")
  42. public HttpResult<List<CarModelDTO>> modelsQuery(@RequestSingleParam(value = "modelName") String modelName) {
  43. List<CarModelDTO> map = this.zhongMeiOrderApiService.modelsQuery(modelName);
  44. List<CarModelDTO> carModelDTOS =
  45. map.stream().sorted(Comparator.comparing(CarModelDTO::getReplacementValue)).collect(Collectors.toList());
  46. return HttpResult.ok(carModelDTOS);
  47. }
  48. @QuoteVerification("报价授权")
  49. @PostMapping("/quote")
  50. @ApiOperation("报价")
  51. public HttpResult<QuoteRespVo> quote(@RequestBody BaseQuoteVo<AccidentalDrivingVo> zmQuoteVo) {
  52. BaseQuoteInfoVo quoteInfo = this.insOrdersComponents.getQuoteInfo(zmQuoteVo.getOrderNo(), zmQuoteVo.getAgreementId());
  53. return this.zhongMeiOrderApiService.quote(quoteInfo, zmQuoteVo);
  54. }
  55. @AuditVerification("核保")
  56. @PostMapping(value = "/audit")
  57. @ApiOperation(value = "提交核保")
  58. public HttpResult<Object> audit(@RequestSingleParam(value = "companyId") String companyId) {
  59. return this.zhongMeiOrderApiService.audit(companyId);
  60. }
  61. @PostMapping(value = "/submitImage")
  62. @ApiOperation(value = "提交影像信息")
  63. public HttpResult<Object> submitImage(@RequestSingleParam(value = "companyId") String companyId) {
  64. // return this.zhongMeiOrderApiService.submitImage(companyId);
  65. return HttpResult.ok("ok");
  66. }
  67. @PostMapping("/getPolicyPrint")
  68. @ApiOperation(value = "电子保单")
  69. public HttpResult<List<String>> getPolicyPrint(@RequestBody PolicyPrintVo policyPrintVo) {
  70. return this.zhongMeiOrderApiService.getPolicyPrint(policyPrintVo);
  71. }
  72. @PostMapping("/paymentEnquiry")
  73. @ApiOperation(value = "缴费查询")
  74. public HttpResult<Object> paymentEnquiry(@RequestSingleParam(value = "companyId") String companyId) {
  75. return this.zhongMeiOrderApiService.paymentEnquiry(companyId);
  76. }
  77. @PostMapping("/underwritingCallback")
  78. @ApiOperation(value = "承保回调")
  79. public HttpResult<Object> underwritingCallback(@RequestBody String s) {
  80. CoverageRequest coverageRequest = AESUtilsWithDataBase.decryptMessage(s, CoverageRequest.class, "承保回调", properties.getSessionKey());
  81. return this.zhongMeiOrderApiService.underwritingCallback(coverageRequest);
  82. }
  83. @PostMapping("/auditCallback")
  84. @ApiOperation(value = "审核回调")
  85. public HttpResult<Object> auditCallback(@RequestBody String s) {
  86. ApprovedRequest approvedRequest = AESUtilsWithDataBase.decryptMessage(s, ApprovedRequest.class, "审核回调", properties.getSessionKey());
  87. return this.zhongMeiOrderApiService.auditCallback(approvedRequest);
  88. }
  89. @PostMapping("/auditStatusQuery")
  90. @ApiOperation(value = "核保状态查询")
  91. public HttpResult<Object> auditStatusQuery(@RequestSingleParam(value = "companyId") String companyId) {
  92. return this.zhongMeiOrderApiService.auditStatusQuery(companyId);
  93. }
  94. @PostMapping("/getDrivingInsurance")
  95. @ApiOperation(value = "查询“车+意”中意外险方案信息")
  96. public HttpResult<List<GeneralNonCarProductResVo>> getDrivingInsurance(@RequestBody GeneralNonCarProductReqVo reqVo) {
  97. return this.zhongMeiOrderApiService.getDrivingInsurance(reqVo);
  98. }
  99. @PostMapping("/queryRideAccident")
  100. @ApiOperation(value = "意外险可投保产品查询")
  101. public HttpResult<List<RideAccidentQueryResponse.RideAccidentDTO>> queryRideAccident(@RequestBody GeneralNonCarProductReqVo reqVo) {
  102. return this.zhongMeiOrderApiService.rideAccidentQuery(reqVo);
  103. }
  104. }