package com.ydtech.modules.order.controller; import com.ydtech.modules.order.entity.InsAreaCompany; import com.ydtech.modules.order.entity.InsOrderQrCode; import com.ydtech.modules.order.entity.InsOrders; import com.ydtech.modules.order.entity.vo.QrCodeVo; import com.ydtech.modules.order.service.InsAreaCompanyService; import com.ydtech.modules.order.service.InsOrderQrCodeService; import com.ydtech.modules.order.service.InsOrdersService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView; import javax.annotation.Resource; import java.util.Date; import java.util.Objects; @Api(tags = "订单二维码管理") @Controller @RequestMapping(value = "/order/qrCode") public class QrCodeController { @Resource private InsOrderQrCodeService insOrderQrCodeService; @Resource private InsAreaCompanyService insAreaCompanyService; @Resource private InsOrdersService insOrdersService; //二维码生成地址 @Value("${qrcode.genAddress}") private String qrCodeGenAddress; @GetMapping(value = "/getQrCode") @ApiOperation(value = "获取二维码") public ModelAndView getQrCode(String areaCompanyId) { InsOrderQrCode insOrderQrCode = insOrderQrCodeService.getOneOrSave(areaCompanyId); InsAreaCompany insAreaCompany = insAreaCompanyService.getById(areaCompanyId); ModelAndView modelAndView = new ModelAndView(new MappingJackson2JsonView()); if (!Objects.isNull(insOrderQrCode)) { InsOrders insOrders = insOrdersService.getById(insOrderQrCode.getOrderno()); QrCodeVo qrCodeVo = new QrCodeVo(); String qrCodeUrl = qrCodeGenAddress + "?areaCompanyId=" + areaCompanyId; qrCodeVo.setQrCodeUrl(qrCodeUrl); qrCodeVo.setInscompany(insAreaCompany.getInscompany());//保险公司 qrCodeVo.setSumpremium(insAreaCompany.getSumpremium());//总保费 qrCodeVo.setSypremium(insAreaCompany.getSypremium());//商业险 qrCodeVo.setJqpremium(insAreaCompany.getJqpremium());//交强险 qrCodeVo.setTaxamount(insAreaCompany.getTaxamount());//车船税 qrCodeVo.setJypremium(insAreaCompany.getJypremium());//驾驭险 qrCodeVo.setCInsuredNme(insOrders.getInsuredname());//投保人 qrCodeVo.setCPlateNo(insOrders.getLicenseno());//车牌号 qrCodeVo.setJqStartDate(insAreaCompany.getJqStartDate());//交强开始时间 qrCodeVo.setJqEndDate(insAreaCompany.getJqEndDate());//交强结束时间 qrCodeVo.setSyStartDate(insAreaCompany.getSyStartDate()); qrCodeVo.setSysEndDate(insAreaCompany.getSyEndDate()); modelAndView.addObject("code", 200); modelAndView.addObject("data", qrCodeVo); modelAndView.addObject("msg", ""); } else { modelAndView.addObject("code", 500); modelAndView.addObject("data", ""); modelAndView.addObject("msg", "二维码不存在"); } return modelAndView; } @PostMapping(value = "/destructionQrCode") @ApiOperation(value = "销毁二维码") public ModelAndView destructionQrCode(String areaCompanyId) { boolean b = insOrderQrCodeService.updateQrCode(areaCompanyId, 0); ModelAndView modelAndView = new ModelAndView(new MappingJackson2JsonView()); if (b) { modelAndView.addObject("code", 200); modelAndView.addObject("data", ""); modelAndView.addObject("msg", "二维码销毁成功"); } else { modelAndView.addObject("code", 500); modelAndView.addObject("data", ""); modelAndView.addObject("msg", "二维码销毁失败"); } return modelAndView; } @GetMapping(value = "/index") @ApiOperation(value = "扫描二维码地址") public String index(String areaCompanyId) { InsOrderQrCode insOrderQrCode = insOrderQrCodeService.getOne(areaCompanyId); if (insOrderQrCode != null) { //更新二维码扫描时间 insOrderQrCode.setScanCodeTime(new Date()); insOrderQrCodeService.updateById(insOrderQrCode); //直接重定向到jumlurl return "redirect:" + insOrderQrCode.getJumpUrl(); } //重定向到错误页面中 return "redirect:/order/qrCode/error"; } @GetMapping(value = "/error") @ApiOperation(value = "错误页面显示") public String error() { return "qrcode_error"; } }