| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package com.ydtech.modules.order.controller;
- import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.order.entity.InsAreaCompany;
- import com.ydtech.modules.order.entity.InsOrdersTrack;
- import com.ydtech.modules.order.service.InsAreaCompanyService;
- import com.ydtech.modules.order.service.InsOrderQrCodeService;
- import com.ydtech.modules.order.service.InsOrdersTrackService;
- import com.ydtech.modules.order.service.InsuranceCompanyPolymerizationService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- @RestController
- @RequestMapping("/subOrder")
- @Api(tags = "子订单")
- @Slf4j
- @RequiredArgsConstructor
- public class InsAreaCompanyController {
- private final InsAreaCompanyService insAreaCompanyService;
- private final InsOrdersTrackService insOrdersTrackService;
- private final InsOrderQrCodeService insOrderQrCodeService;
- private final InsuranceCompanyPolymerizationService insuranceCompanyPolymerizationService;
- @GetMapping("/statusInquiry/{subOrderNo}")
- @ApiOperation("状态查询")
- public HttpResult<String> statusInquiry(@PathVariable String subOrderNo) {
- InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
- return HttpResult.ok(insAreaCompany.getOrderstatus());
- }
- @GetMapping("/close/{subOrderNo}")
- @ApiOperation("关闭订单")
- public HttpResult<String> close(@PathVariable String subOrderNo) {
- InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
- if (InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insAreaCompany.getOrderstatus())) {
- throw new SystemException("已承保订单不允许关闭");
- }
- insAreaCompany.setDelFlag("0");
- insAreaCompanyService.updateById(insAreaCompany);
- return HttpResult.ok();
- }
- @GetMapping("/cancelUnderwriting/{subOrderNo}")
- @ApiOperation("取消核保")
- public HttpResult<String> cancelUnderwriting(@PathVariable String subOrderNo) {
- InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
- if (InsOrderStatusEnum.WAIT_PAY.getCode().equals(insAreaCompany.getOrderstatus())) {
- insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
- insAreaCompanyService.updateById(insAreaCompany);
- // 撤销二维码
- insOrderQrCodeService.updateQrCode(insAreaCompany.getId(), 0);
- return HttpResult.ok();
- }
- throw new SystemException("只有[已核保待缴费]状态下允许取消核保");
- }
- @GetMapping("/statusRestored/{subOrderNo}")
- @ApiOperation("恢复核保状态")
- @Transactional
- public HttpResult<String> statusRestored(@PathVariable String subOrderNo) {
- InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
- if (InsOrderStatusEnum.QUOTE_ING.getCode().equals(insAreaCompany.getOrderstatus())) {
- SysUser user = BaseController.getUser();
- List<InsOrdersTrack> list = insOrdersTrackService.lambdaQuery().eq(InsOrdersTrack::getOrderStatus, InsOrderStatusEnum.WAIT_PAY.getCode()).list();
- if (!list.isEmpty()) {
- insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
- InsOrdersTrack insOrdersTrack = new InsOrdersTrack(insAreaCompany, user.getId(), user.getName());
- insAreaCompanyService.updateById(insAreaCompany);
- insOrdersTrackService.save(insOrdersTrack);
- insuranceCompanyPolymerizationService.cancelOrder(insAreaCompany);
- return HttpResult.ok();
- }
- throw new SystemException("此订单未到达已核保待缴费,无法跟新状态");
- }
- throw new SystemException("订单状态无法恢复");
- }
- }
|