GuoRenOrderApiController.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.ydtech.modules.order.controller;
  2. import com.ydtech.aop.request.RequestSingleParam;
  3. import com.ydtech.core.page.HttpResult;
  4. import com.ydtech.modules.ins.model.guoren.CarModelResp;
  5. import com.ydtech.modules.ins.model.guoren.NonAutoInsResp;
  6. import com.ydtech.modules.ins.model.vo.CarInfoVo;
  7. import com.ydtech.modules.order.entity.vo.AccidentalDrivingQueryVo;
  8. import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
  9. import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
  10. import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
  11. import com.ydtech.modules.order.service.GuorenOrderApiService;
  12. import com.ydtech.modules.order.service.InsAreaCompanyService;
  13. import io.swagger.annotations.*;
  14. import org.slf4j.Logger;
  15. import org.slf4j.LoggerFactory;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.annotation.Resource;
  19. import javax.servlet.http.HttpServletRequest;
  20. import javax.validation.Valid;
  21. /**
  22. * 国任财险 API对接
  23. *
  24. * @author: lig
  25. * @date: 2023-08-14
  26. */
  27. @Api(tags = "国任财险API方式对接")
  28. @RestController
  29. @RequestMapping("/api/guoRen")
  30. public class GuoRenOrderApiController {
  31. private final GuorenOrderApiService guorenOrderApiService;
  32. public GuoRenOrderApiController(GuorenOrderApiService guorenOrderApiService) {
  33. this.guorenOrderApiService = guorenOrderApiService;
  34. }
  35. @ApiOperation(value = "通过渠道编码获取基本信息", notes = "获取出单所需的基本信息")
  36. @ApiImplicitParams({
  37. @ApiImplicitParam(name = "thirdCode", value = "渠道编码", required = true, dataType = "String"),
  38. })
  39. @GetMapping("/channelInfo/{thirdCode}")
  40. public HttpResult channelInfo(@PathVariable String thirdCode) {
  41. return guorenOrderApiService.gainChannelInfo(thirdCode);
  42. }
  43. @ApiOperation(value = "车型查询", notes = "只需要vin码、发动机号、注册日期例:20120512")
  44. @PostMapping("/modelQuery")
  45. public HttpResult<CarModelResp> modelQueryAPI(@RequestBody CarInfoVo carInfo) {
  46. return guorenOrderApiService.modelsQueryApi(carInfo);
  47. }
  48. @ApiResponses({
  49. @ApiResponse(code = 500, message = "出现异常"),
  50. @ApiResponse(code = 101, message = "转保单"),
  51. @ApiResponse(code = 200, message = "请求成功")
  52. })
  53. @ApiOperation(value = "报价")
  54. @PostMapping("/quote")
  55. public HttpResult quoteApi(@RequestBody BaseQuoteVo<AccidentalDrivingVo> quoteVo) {
  56. return guorenOrderApiService.quoteApi(quoteVo);
  57. }
  58. @ApiOperation(value = "影像上传")
  59. @PostMapping(value = "/uploadImage")
  60. public HttpResult uploadImage(@RequestSingleParam(value = "companyId") String companyId) {
  61. return guorenOrderApiService.uploadImageApi(companyId);
  62. }
  63. @ApiOperation(value = "支付")
  64. @PostMapping(value = "/pay")
  65. public HttpResult pay(@RequestSingleParam(value = "companyId") String companyId) {
  66. return guorenOrderApiService.pay(companyId);
  67. }
  68. @ApiOperation(value = "核保")
  69. @PostMapping("/audit")
  70. public HttpResult auditApi(@RequestSingleParam(value = "companyId") String companyId) {
  71. return guorenOrderApiService.auditApi(companyId);
  72. }
  73. @ApiOperation(value = "更新订单信息")
  74. @PostMapping("/updateOrderInfo")
  75. public HttpResult updateOrderInfoByIns(@RequestSingleParam(value = "companyId") String companyId) {
  76. return guorenOrderApiService.insOrderInfo(companyId);
  77. }
  78. @ApiOperation(value = "回调通知")
  79. @PostMapping(value = "/callBack")
  80. public HttpResult callBackApi(HttpServletRequest request) {
  81. return guorenOrderApiService.callBackApi(request);
  82. }
  83. @ApiOperation(value = "电子保单")
  84. @PostMapping("/policyPrint")
  85. public HttpResult getPolicyPrintApi(@RequestBody PolicyPrintVo policyPrintVo) {
  86. return guorenOrderApiService.getPolicyPrintApi(policyPrintVo);
  87. }
  88. /**
  89. * 同步非车保险
  90. */
  91. @ApiOperation(value = "同步非车保险")
  92. @PostMapping("/syncNonAutoIns")
  93. public HttpResult syncNonAutoIns() {
  94. //家用车驾乘意外险-山西版(02746425173001)
  95. String goodsCode = "02746425173001";
  96. NonAutoInsResp.DataDTO dataDTO = guorenOrderApiService.gainNonAutoInsList(goodsCode);
  97. return HttpResult.ok(dataDTO);
  98. }
  99. /**
  100. * 同步驾意险
  101. */
  102. @ApiOperation(value = "同步驾意险")
  103. @PostMapping("/syncAccidentInsure")
  104. public HttpResult syncAccidentInsure(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
  105. return guorenOrderApiService.syncAccidentInsure(accidentalDrivingVo);
  106. }
  107. }