package com.ydtech.modules.order.controller; import com.ydtech.aop.request.RequestSingleParam; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.ins.model.guoren.CarModelResp; import com.ydtech.modules.ins.model.vo.CarInfoVo; import com.ydtech.modules.order.aop.AuditVerification; import com.ydtech.modules.order.aop.QuoteVerification; import com.ydtech.modules.order.entity.api.guoren.constants.GoodsClassifyList; import com.ydtech.modules.order.entity.vo.PolicyPrintVo; import com.ydtech.modules.order.entity.vo.guoren.GuoRenQuoteVo; import com.ydtech.modules.order.entity.vo.guoren.GuoRenSpecialAgreement; import com.ydtech.modules.order.entity.vo.guoren.NonAutoInsuranceList; import com.ydtech.modules.order.entity.vo.guoren.NonAutoInsuranceQueryVo; import com.ydtech.modules.order.service.GuorenOrderApiService; import com.ydtech.utils.StringUtils; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * 国任财险 API对接 * * @author: lig * @date: 2023-08-14 */ @Api(tags = "国任财险 API") @RestController @RequestMapping("/api/guoRen") public class GuoRenOrderApiController { private final GuorenOrderApiService guorenOrderApiService; public GuoRenOrderApiController(GuorenOrderApiService guorenOrderApiService) { this.guorenOrderApiService = guorenOrderApiService; } @ApiOperation(value = "通过渠道编码获取基本信息", notes = "获取出单所需的基本信息") @ApiImplicitParams({ @ApiImplicitParam(name = "thirdCode", value = "渠道编码", required = true, dataType = "String"), }) @GetMapping("/channelInfo/{thirdCode}") public HttpResult channelInfo(@PathVariable String thirdCode) { return guorenOrderApiService.gainChannelInfo(thirdCode); } @ApiOperation(value = "车型查询", notes = "只需要vin码、发动机号、注册日期例:20120512") @PostMapping("/modelQuery") public HttpResult modelQueryAPI(@RequestBody CarInfoVo carInfo) { return guorenOrderApiService.modelsQueryApi(carInfo); } @ApiResponses({ @ApiResponse(code = 500, message = "出现异常"), @ApiResponse(code = 101, message = "转保单"), @ApiResponse(code = 200, message = "请求成功") }) @QuoteVerification("报价授权") @ApiOperation(value = "报价") @PostMapping("/quote") public HttpResult quoteApi(@RequestBody GuoRenQuoteVo quoteVo) { return guorenOrderApiService.quoteApi(quoteVo); } @ApiOperation(value = "影像上传") @PostMapping(value = "/uploadImage") public HttpResult uploadImage(@RequestSingleParam(value = "companyId") String companyId) { return guorenOrderApiService.uploadImageApi(companyId); // return HttpResult.ok("ok"); } @ApiOperation(value = "支付") @PostMapping(value = "/pay") public HttpResult pay(@RequestSingleParam(value = "companyId") String companyId) { return guorenOrderApiService.pay(companyId); } @AuditVerification("核保") @ApiOperation(value = "核保") @PostMapping("/audit") public HttpResult auditApi(@RequestSingleParam(value = "companyId") String companyId) { return guorenOrderApiService.auditApi(companyId); } @PostMapping(value = "/queryClauseData") @ApiOperation(value = "特约查询") public HttpResult> queryClauseData(@RequestSingleParam(value = "agreementId") String agreementId) { return this.guorenOrderApiService.queryClauseData(agreementId); } @ApiOperation(value = "更新订单信息") @PostMapping("/updateOrderInfo") public HttpResult updateOrderInfoByIns(@RequestSingleParam(value = "companyId") String companyId) { return guorenOrderApiService.insOrderInfo(companyId); } @ApiOperation(value = "回调通知") @PostMapping(value = "/callBack") public HttpResult callBackApi(HttpServletRequest request) { return guorenOrderApiService.callBackApi(request); } @ApiOperation(value = "电子保单") @PostMapping("/policyPrint") public HttpResult getPolicyPrintApi(@RequestBody PolicyPrintVo policyPrintVo) { return guorenOrderApiService.getPolicyPrintApi(policyPrintVo); } @ApiOperation(value = "获取非车险列表") @PostMapping("/syncNonAutoIns") public HttpResult syncNonAutoIns(@RequestBody NonAutoInsuranceQueryVo nonAutoInsuranceQueryVo) { if (StringUtils.isEmpty(nonAutoInsuranceQueryVo.getGoodsCode())) { return HttpResult.ok(GoodsClassifyList.buildGoodsClassifyDto()); } List nonAutoInsuranceLists = guorenOrderApiService.gainNonAutoInsList(nonAutoInsuranceQueryVo); return HttpResult.ok(nonAutoInsuranceLists); } }