InsOrdersController.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package com.ydtech.modules.order.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.ydtech.aop.request.RequestSingleParam;
  4. import com.ydtech.core.page.HttpResult;
  5. import com.ydtech.exception.SystemException;
  6. import com.ydtech.modules.base.controller.BaseController;
  7. import com.ydtech.modules.order.components.InsOrdersComponents;
  8. import com.ydtech.modules.order.entity.BasePageResult;
  9. import com.ydtech.modules.order.entity.InsAccidentalDriving;
  10. import com.ydtech.modules.order.entity.InsAreaCompany;
  11. import com.ydtech.modules.order.entity.InsOrders;
  12. import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
  13. import com.ydtech.modules.order.entity.vo.*;
  14. import com.ydtech.modules.order.service.InsAccidentalDrivingService;
  15. import com.ydtech.modules.order.service.InsAreaCompanyService;
  16. import com.ydtech.modules.order.service.InsOrdersService;
  17. import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import org.springframework.util.ObjectUtils;
  21. import org.springframework.validation.annotation.Validated;
  22. import org.springframework.web.bind.annotation.*;
  23. import javax.validation.Valid;
  24. import java.util.List;
  25. @Api(tags = "订单")
  26. @RequestMapping("/insurance/order")
  27. @RestController
  28. public class InsOrdersController extends BaseController {
  29. private final InsOrdersService insOrdersService;
  30. private final InsAreaCompanyService insAreaCompanyService;
  31. private final InsOrdersComponents insOrdersComponents;
  32. private final InsAccidentalDrivingService insAccidentalDrivingService;
  33. public InsOrdersController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsOrdersComponents insOrdersComponents, InsAccidentalDrivingService insAccidentalDrivingService) {
  34. this.insAreaCompanyService = insAreaCompanyService;
  35. this.insOrdersService = insOrdersService;
  36. this.insOrdersComponents = insOrdersComponents;
  37. this.insAccidentalDrivingService = insAccidentalDrivingService;
  38. }
  39. @GetMapping("/getAgreementInsCompany")
  40. @ApiOperation(value = "获取协议报价保险公司")
  41. public HttpResult<List<PtlAgreementInsCompanyDto>> getAgreementInsCompany() {
  42. return this.insOrdersService.getAgreementInsCompany(getDeptId());
  43. }
  44. @PostMapping("/generateOrder")
  45. @ApiOperation(value = "生成订单")
  46. public HttpResult<InsOrders> generateOrder(@Validated @RequestBody BaseQuoteInfoVo quoteInfoVo) {
  47. String userId = getUserId();
  48. InsOrders insOrders = this.insOrdersService.generateOrder(userId, quoteInfoVo);
  49. return HttpResult.ok("success", insOrders);
  50. }
  51. @PostMapping("/getByOrderNo")
  52. @ApiOperation(value = "通过订单ID查询订单信息")
  53. public HttpResult<BaseQuoteInfoVo> getByOrderNo(@RequestSingleParam(value = "orderNo") String orderNo) {
  54. BaseQuoteInfoVo quoteInfo = insOrdersComponents.getQuoteInfo(orderNo);
  55. return HttpResult.ok("success", quoteInfo);
  56. }
  57. @PostMapping("/revise")
  58. @ApiOperation(value = "查询订单和子订单")
  59. public HttpResult<InsOrders> revise(@RequestSingleParam(value = "orderNo") String orderNo) {
  60. InsOrders insOrders = this.insOrdersService.revise(orderNo);
  61. return HttpResult.ok("success", insOrders);
  62. }
  63. @PostMapping("/queryPageOrder")
  64. @ApiOperation(value = "[1]分页查询订单接口")
  65. public HttpResult<BasePageResult<InsOrders>> queryPageOrder(@RequestBody @Valid OrderQueryVo orderQueryVo) {
  66. BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrder(orderQueryVo);
  67. return HttpResult.ok("success", quoteResult);
  68. }
  69. @PostMapping("/querySuborder")
  70. @ApiOperation(value = "[2]通过订单号查询子订单")
  71. public HttpResult<List<InsAreaCompanyQueryDto>> querySuborder(@RequestSingleParam(value = "orderNo") String orderNo) {
  72. List<InsAreaCompanyQueryDto> quoteResult = this.insOrdersService.querySuborder(orderNo);
  73. return HttpResult.ok("success", quoteResult);
  74. }
  75. @PostMapping("/queryOrders")
  76. @ApiOperation(value = "查询订单和子订单")
  77. public HttpResult<BasePageResult<InsOrders>> queryOrders(@RequestBody @Valid OrderQueryVo orderQueryVo) {
  78. BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryOrders(orderQueryVo);
  79. return HttpResult.ok("success", quoteResult);
  80. }
  81. @PostMapping("/queryInsAreaCompany")
  82. @ApiOperation(value = "通过主订单ID查询子订单")
  83. public HttpResult<List<InsAreaCompany>> queryInsAreaCompany(@RequestSingleParam(value = "orderNo") String orderNo) {
  84. this.insOrdersService.existOrder(orderNo);
  85. List<InsAreaCompany> insAreaCompanies = this.insAreaCompanyService.lambdaQuery().eq(InsAreaCompany::getOrderno, orderNo).list();
  86. return HttpResult.ok("success", insAreaCompanies);
  87. }
  88. @PostMapping("/queryQuoteHistory")
  89. @ApiOperation(value = "查询报价历史")
  90. public HttpResult<List<InsAreaCompany>> queryQuoteHistory(@RequestBody QuoteHistoryVo quoteHistoryVo) {
  91. this.insOrdersService.existOrder(quoteHistoryVo.getOrderNo());
  92. LambdaQueryWrapper<InsAreaCompany> wrapper = new LambdaQueryWrapper<>();
  93. wrapper.eq(!ObjectUtils.isEmpty(quoteHistoryVo.getOrderNo()), InsAreaCompany::getOrderno, quoteHistoryVo.getOrderNo()).eq(!ObjectUtils.isEmpty(quoteHistoryVo.getOrderStatus()), InsAreaCompany::getOrderstatus, quoteHistoryVo.getOrderStatus()).orderByAsc(InsAreaCompany::getCreatetime);
  94. List<InsAreaCompany> insAreaCompanies = this.insAreaCompanyService.getBaseMapper().selectList(wrapper);
  95. return HttpResult.ok("success", insAreaCompanies);
  96. }
  97. @PostMapping("/getByCompanyId")
  98. @ApiOperation(value = "通过子订单查询订单信息")
  99. public HttpResult<OrderVo> getByCompanyId(@RequestSingleParam(value = "companyId") String companyId) {
  100. return this.insOrdersService.getByCompanyId(companyId);
  101. }
  102. @PostMapping("/getAccidentalDriving")
  103. @ApiOperation(value = "获取驾意险")
  104. public HttpResult<List<InsAccidentalDriving>> getAccidentalDriving(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
  105. LambdaQueryWrapper<InsAccidentalDriving> wrapper = new LambdaQueryWrapper<>();
  106. wrapper.eq(InsAccidentalDriving::getCompanyCode, accidentalDrivingVo.getCompanyCode())
  107. .and(i -> i.eq(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum())
  108. .or(j -> j.le(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum())
  109. .ge(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum())));
  110. List<InsAccidentalDriving> insAccidentalDrivings = insAccidentalDrivingService.list(wrapper);
  111. if (insAccidentalDrivings.isEmpty()) {
  112. throw new SystemException("查询结果为空");
  113. }
  114. return HttpResult.ok(insAccidentalDrivings);
  115. }
  116. @PostMapping("/verifyOrders")
  117. @ApiOperation(value = "验证近期是否出过单")
  118. public HttpResult<InsOrders> verifyOrders(@RequestBody VerifyOrdersVo verifyOrdersVo) {
  119. return insOrdersService.verifyOrders(verifyOrdersVo);
  120. }
  121. }