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.guoren.NonAutoInsResp; import com.ydtech.modules.ins.model.vo.CarInfoVo; import com.ydtech.modules.order.entity.vo.AccidentalDrivingQueryVo; import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo; import com.ydtech.modules.order.entity.vo.BaseQuoteVo; import com.ydtech.modules.order.entity.vo.PolicyPrintVo; import com.ydtech.modules.order.service.GuorenOrderApiService; import com.ydtech.modules.order.service.InsAreaCompanyService; import io.swagger.annotations.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; /** * 国任财险 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 = "请求成功") }) @ApiOperation(value = "报价") @PostMapping("/quote") public HttpResult quoteApi(@RequestBody BaseQuoteVo quoteVo) { return guorenOrderApiService.quoteApi(quoteVo); } @ApiOperation(value = "影像上传") @PostMapping(value = "/uploadImage") public HttpResult uploadImage(@RequestSingleParam(value = "companyId") String companyId) { return guorenOrderApiService.uploadImageApi(companyId); } @ApiOperation(value = "支付") @PostMapping(value = "/pay") public HttpResult pay(@RequestSingleParam(value = "companyId") String companyId) { return guorenOrderApiService.pay(companyId); } @ApiOperation(value = "核保") @PostMapping("/audit") public HttpResult auditApi(@RequestSingleParam(value = "companyId") String companyId) { return guorenOrderApiService.auditApi(companyId); } @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() { //家用车驾乘意外险-山西版(02746425173001) String goodsCode = "02746425173001"; NonAutoInsResp.DataDTO dataDTO = guorenOrderApiService.gainNonAutoInsList(goodsCode); return HttpResult.ok(dataDTO); } /** * 同步驾意险 */ @ApiOperation(value = "同步驾意险") @PostMapping("/syncAccidentInsure") public HttpResult syncAccidentInsure(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) { return guorenOrderApiService.syncAccidentInsure(accidentalDrivingVo); } }