GuoRenOrderApiController.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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.vo.CarInfoVo;
  6. import com.ydtech.modules.order.aop.QuoteVerification;
  7. import com.ydtech.modules.order.entity.vo.guoren.GuoRenQuoteVo;
  8. import com.ydtech.modules.order.entity.api.guoren.constants.GoodsClassifyList;
  9. import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
  10. import com.ydtech.modules.order.entity.vo.guoren.GuoRenSpecialAgreement;
  11. import com.ydtech.modules.order.entity.vo.guoren.NonAutoInsuranceList;
  12. import com.ydtech.modules.order.entity.vo.guoren.NonAutoInsuranceQueryVo;
  13. import com.ydtech.modules.order.service.GuorenOrderApiService;
  14. import com.ydtech.utils.StringUtils;
  15. import io.swagger.annotations.*;
  16. import org.springframework.web.bind.annotation.*;
  17. import javax.servlet.http.HttpServletRequest;
  18. import java.util.List;
  19. /**
  20. * 国任财险 API对接
  21. *
  22. * @author: lig
  23. * @date: 2023-08-14
  24. */
  25. @Api(tags = "国任财险 API")
  26. @RestController
  27. @RequestMapping("/api/guoRen")
  28. public class GuoRenOrderApiController {
  29. private final GuorenOrderApiService guorenOrderApiService;
  30. public GuoRenOrderApiController(GuorenOrderApiService guorenOrderApiService) {
  31. this.guorenOrderApiService = guorenOrderApiService;
  32. }
  33. @ApiOperation(value = "通过渠道编码获取基本信息", notes = "获取出单所需的基本信息")
  34. @ApiImplicitParams({
  35. @ApiImplicitParam(name = "thirdCode", value = "渠道编码", required = true, dataType = "String"),
  36. })
  37. @GetMapping("/channelInfo/{thirdCode}")
  38. public HttpResult channelInfo(@PathVariable String thirdCode) {
  39. return guorenOrderApiService.gainChannelInfo(thirdCode);
  40. }
  41. @ApiOperation(value = "车型查询", notes = "只需要vin码、发动机号、注册日期例:20120512")
  42. @PostMapping("/modelQuery")
  43. public HttpResult<CarModelResp> modelQueryAPI(@RequestBody CarInfoVo carInfo) {
  44. return guorenOrderApiService.modelsQueryApi(carInfo);
  45. }
  46. @ApiResponses({
  47. @ApiResponse(code = 500, message = "出现异常"),
  48. @ApiResponse(code = 101, message = "转保单"),
  49. @ApiResponse(code = 200, message = "请求成功")
  50. })
  51. @QuoteVerification("报价授权")
  52. @ApiOperation(value = "报价")
  53. @PostMapping("/quote")
  54. public HttpResult quoteApi(@RequestBody GuoRenQuoteVo quoteVo) {
  55. return guorenOrderApiService.quoteApi(quoteVo);
  56. }
  57. @ApiOperation(value = "影像上传")
  58. @PostMapping(value = "/uploadImage")
  59. public HttpResult uploadImage(@RequestSingleParam(value = "companyId") String companyId) {
  60. return guorenOrderApiService.uploadImageApi(companyId);
  61. }
  62. @ApiOperation(value = "支付")
  63. @PostMapping(value = "/pay")
  64. public HttpResult pay(@RequestSingleParam(value = "companyId") String companyId) {
  65. return guorenOrderApiService.pay(companyId);
  66. }
  67. @ApiOperation(value = "核保")
  68. @PostMapping("/audit")
  69. public HttpResult auditApi(@RequestSingleParam(value = "companyId") String companyId) {
  70. return guorenOrderApiService.auditApi(companyId);
  71. }
  72. @PostMapping(value = "/queryClauseData")
  73. @ApiOperation(value = "特约查询")
  74. public HttpResult<List<GuoRenSpecialAgreement>> queryClauseData(@RequestSingleParam(value = "agreementId") String agreementId) {
  75. return this.guorenOrderApiService.queryClauseData(agreementId);
  76. }
  77. @ApiOperation(value = "更新订单信息")
  78. @PostMapping("/updateOrderInfo")
  79. public HttpResult updateOrderInfoByIns(@RequestSingleParam(value = "companyId") String companyId) {
  80. return guorenOrderApiService.insOrderInfo(companyId);
  81. }
  82. @ApiOperation(value = "回调通知")
  83. @PostMapping(value = "/callBack")
  84. public HttpResult callBackApi(HttpServletRequest request) {
  85. return guorenOrderApiService.callBackApi(request);
  86. }
  87. @ApiOperation(value = "电子保单")
  88. @PostMapping("/policyPrint")
  89. public HttpResult<String> getPolicyPrintApi(@RequestBody PolicyPrintVo policyPrintVo) {
  90. return guorenOrderApiService.getPolicyPrintApi(policyPrintVo);
  91. }
  92. @ApiOperation(value = "获取非车险列表")
  93. @PostMapping("/syncNonAutoIns")
  94. public HttpResult<Object> syncNonAutoIns(@RequestBody NonAutoInsuranceQueryVo nonAutoInsuranceQueryVo) {
  95. if (StringUtils.isEmpty(nonAutoInsuranceQueryVo.getGoodsCode())) {
  96. return HttpResult.ok(GoodsClassifyList.buildGoodsClassifyDto());
  97. }
  98. List<NonAutoInsuranceList> nonAutoInsuranceLists = guorenOrderApiService.gainNonAutoInsList(nonAutoInsuranceQueryVo);
  99. return HttpResult.ok(nonAutoInsuranceLists);
  100. }
  101. }