| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- 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.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.time.LocalDate;
- 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 = "";
- //是否是太平洋保险 大家财险
- if("TPIC1000000".equals(insAreaCompany.getCompanyId()) || "DJPC1000000".equals(insAreaCompany.getCompanyId())){
- qrCodeUrl = insAreaCompany.getPaymentLink();
- }else{
- 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) throws IOException {
- InsOrderQrCode insOrderQrCode = insOrderQrCodeService.getOne(areaCompanyId);
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- String qrcodeCreateTimeStr = dateFormat.format(insOrderQrCode.getCreatetime());
- LocalDate qrcodeCreateTime = LocalDate.parse(qrcodeCreateTimeStr);
- LocalDate currentDate = LocalDate.now();
- if(Math.abs(currentDate.toEpochDay() - qrcodeCreateTime.toEpochDay()) >= 1){
- //重定向到错误页面中
- return "redirect:/order/qrCode/error";
- }
- 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";
- }
- }
|