ZhongMeiOrderApiController.java 5.5 KB

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