GuoRenOrderApiController.java 4.8 KB

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