package com.ydtech.modules.order.controller; import com.ydtech.aop.request.RequestSingleParam; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.ins.model.vo.QuoteRespVo; import com.ydtech.modules.order.aop.AuditVerification; import com.ydtech.modules.order.aop.QuoteVerification; import com.ydtech.modules.order.components.InsOrdersComponents; import com.ydtech.modules.order.entity.api.zijin.request.PaymentCallbacksRequest; import com.ydtech.modules.order.entity.api.zijin.request.SubmitVerifyRequest; import com.ydtech.modules.order.entity.api.zijin.response.QueryClauseDataResponse; import com.ydtech.modules.order.entity.api.zijin.response.QueryVehicProductsResponse; import com.ydtech.modules.order.entity.vo.*; import com.ydtech.modules.order.entity.vo.zj.ZjQuoteAccidentVo; import com.ydtech.modules.order.entity.vo.zj.ZjVehicleProductsQueryVo; import com.ydtech.modules.order.service.InsOrdersService; import com.ydtech.modules.order.service.ZijinOrderApiService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Api(tags = "紫金财险 Api") @RestController @RequestMapping("/order/zijin") public class ZijinOrderApiController { private final InsOrdersComponents insOrdersComponents; private final ZijinOrderApiService zijinOrderApiService; private final InsOrdersService insOrdersService; public ZijinOrderApiController(InsOrdersComponents insOrdersComponents, ZijinOrderApiService zijinOrderApiService, InsOrdersService insOrdersService) { this.insOrdersComponents = insOrdersComponents; this.zijinOrderApiService = zijinOrderApiService; this.insOrdersService = insOrdersService; } @PostMapping("/queryVehicleProducts") @ApiOperation(value = "查询“车+意”中意外险方案信息") public HttpResult> queryVehicleProducts(@RequestBody ZjVehicleProductsQueryVo zjVehicleProductsVo) { return this.zijinOrderApiService.queryVehicleProducts(zjVehicleProductsVo); } @QuoteVerification("报价授权") @PostMapping("/quote") @ApiOperation("报价") public HttpResult quote(@RequestBody BaseQuoteVo> quoteVo) { BaseQuoteVo> listBaseQuoteVo = insOrdersService.converDrivingZijin(quoteVo); BaseQuoteInfoVo quoteInfo = this.insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo(), quoteVo.getAgreementId()); return this.zijinOrderApiService.quote(quoteInfo, listBaseQuoteVo); } @PostMapping(value = "/submitImage") @ApiOperation(value = "提交影像信息") public HttpResult submitImage(@RequestSingleParam(value = "companyId") String companyId) { return this.zijinOrderApiService.submitImage(companyId); } @PostMapping(value = "/queryClauseData") @ApiOperation(value = "特约查询") public HttpResult> queryClauseData(@RequestSingleParam(value = "companyId") String companyId) { return this.zijinOrderApiService.queryClauseData(companyId); } @AuditVerification("核保") @PostMapping(value = "/audit") @ApiOperation(value = "提交核保") public HttpResult audit(@RequestBody SpecialAuditVo specialAudit) { return this.zijinOrderApiService.audit(specialAudit); } @PostMapping(value = "/cancel") @ApiOperation(value = "未缴费保单撤单") public HttpResult cancel(@RequestSingleParam(value = "companyId") String companyId) { return this.zijinOrderApiService.cancel(companyId); } @PostMapping("/paymentCallbacks") @ApiOperation(value = "支付回调") public HttpResult paymentCallbacks(PaymentCallbacksRequest paymentCallbacksRequest) { return this.zijinOrderApiService.paymentCallbacks(paymentCallbacksRequest); } @PostMapping("/getOrderDetail") @ApiOperation(value = "订单状态查询") public HttpResult getOrderDetail(@RequestSingleParam(value = "companyId") String companyId) { return this.zijinOrderApiService.getOrderDetail(companyId); } @PostMapping("/getPolicyPrint") @ApiOperation(value = "电子保单") public HttpResult getPolicyPrint(@RequestBody PolicyPrintVo policyPrintVo) { return this.zijinOrderApiService.getPolicyPrint(policyPrintVo); } @PostMapping("/auditStatusQuery") @ApiOperation(value = "核保状态查询") public HttpResult auditStatusQuery(@RequestSingleParam(value = "companyId") String companyId) { return this.zijinOrderApiService.auditStatusQuery(companyId); } }