| | |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.QRCodeUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.config.QRCodeConfig; |
| | | import com.ruoyi.system.mapper.VehicleInfoMapper; |
| | | import com.ruoyi.system.domain.VehicleInfo; |
| | | import com.ruoyi.system.mapper.VehicleEvaluationQrcodeMapper; |
| | |
| | | |
| | | @Autowired |
| | | private VehicleInfoMapper vehicleInfoMapper; |
| | | |
| | | @Autowired |
| | | private QRCodeConfig qrCodeConfig; |
| | | |
| | | @Value("${ruoyi.profile}") |
| | | private String uploadPath; |
| | |
| | | return null; |
| | | } |
| | | |
| | | // 检查车辆是否存在 |
| | | VehicleInfo vehicleInfo = vehicleInfoMapper.selectVehicleInfoByVehicleNo(vehicleNo); |
| | | if (vehicleInfo == null) { |
| | | // 注意:这里不检查车辆信息表,允许为任意车牌号生成二维码 |
| | | |
| | | // 检查是否已存在二维码 |
| | | VehicleEvaluationQrcode existingQrcode = vehicleEvaluationQrcodeMapper.selectVehicleEvaluationQrcodeByVehicleNo(vehicleNo); |
| | | if (existingQrcode != null) { |
| | | return existingQrcode; |
| | | } |
| | | |
| | | // 生成二维码内容 |
| | | String qrcodeContent = "EVAL:" + vehicleNo; |
| | | String qrcodeUrl = qrCodeConfig.generateUrl(vehicleNo); |
| | | |
| | | // 生成带车牌号的二维码图片为base64格式 |
| | | String qrcodeImageBase64 = QRCodeUtils.generateQRCodeWithVehicleNoToBase64(qrcodeUrl, vehicleNo); |
| | | |
| | | if (qrcodeImageBase64 != null) { |
| | | VehicleEvaluationQrcode qrcode = new VehicleEvaluationQrcode(); |
| | | qrcode.setVehicleNo(vehicleNo); |
| | | qrcode.setQrcodeUrl(qrcodeUrl); |
| | | qrcode.setQrcodeContent(qrcodeContent); |
| | | qrcode.setQrcodeImage(qrcodeImageBase64); |
| | | qrcode.setStatus("0"); |
| | | qrcode.setCreateBy("system"); |
| | | qrcode.setCreateTime(DateUtils.getNowDate()); |
| | | |
| | | int result = vehicleEvaluationQrcodeMapper.insertVehicleEvaluationQrcode(qrcode); |
| | | if (result > 0) { |
| | | return qrcode; |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 生成车辆评价二维码(不检查车辆信息表) |
| | | * |
| | | * @param vehicleNo 车牌号 |
| | | * @return 二维码信息 |
| | | */ |
| | | private VehicleEvaluationQrcode generateVehicleEvaluationQrcodeWithoutVehicleCheck(String vehicleNo) { |
| | | if (StringUtils.isEmpty(vehicleNo)) { |
| | | return null; |
| | | } |
| | | |
| | |
| | | |
| | | // 生成二维码内容 |
| | | String qrcodeContent = "EVAL:" + vehicleNo; |
| | | String qrcodeUrl = "http://localhost:" + serverPort + "/evaluation?vehicle=" + vehicleNo; |
| | | String qrcodeUrl = qrCodeConfig.generateUrl(vehicleNo); |
| | | |
| | | // 生成二维码图片为base64格式 |
| | | String qrcodeImageBase64 = QRCodeUtils.generateQRCodeToBase64(qrcodeUrl); |
| | | // 生成带车牌号的二维码图片为base64格式 |
| | | String qrcodeImageBase64 = QRCodeUtils.generateQRCodeWithVehicleNoToBase64(qrcodeUrl, vehicleNo); |
| | | |
| | | if (qrcodeImageBase64 != null) { |
| | | VehicleEvaluationQrcode qrcode = new VehicleEvaluationQrcode(); |
| | |
| | | return null; |
| | | } |
| | | |
| | | // 检查车辆是否存在 |
| | | VehicleInfo vehicleInfo = vehicleInfoMapper.selectVehicleInfoByVehicleNo(vehicleNo); |
| | | if (vehicleInfo == null) { |
| | | return null; |
| | | } |
| | | // 注意:这里不检查车辆信息表,允许为任意车牌号生成二维码 |
| | | |
| | | // 检查是否已存在二维码 |
| | | VehicleEvaluationQrcode existingQrcode = vehicleEvaluationQrcodeMapper.selectVehicleEvaluationQrcodeByVehicleNo(vehicleNo); |
| | |
| | | existingQrcode.setUpdateBy("system"); |
| | | existingQrcode.setUpdateTime(DateUtils.getNowDate()); |
| | | |
| | | // 重新生成二维码图片为base64格式 |
| | | String qrcodeImageBase64 = QRCodeUtils.generateQRCodeToBase64(qrcodeUrl); |
| | | // 重新生成带车牌号的二维码图片为base64格式 |
| | | String qrcodeImageBase64 = QRCodeUtils.generateQRCodeWithVehicleNoToBase64(qrcodeUrl, vehicleNo); |
| | | |
| | | if (qrcodeImageBase64 != null) { |
| | | existingQrcode.setQrcodeImage(qrcodeImageBase64); |
| | |
| | | // 生成二维码内容 |
| | | String qrcodeContent = "EVAL:" + vehicleNo; |
| | | |
| | | // 生成二维码图片为base64格式 |
| | | String qrcodeImageBase64 = QRCodeUtils.generateQRCodeToBase64(qrcodeUrl); |
| | | // 生成带车牌号的二维码图片为base64格式 |
| | | String qrcodeImageBase64 = QRCodeUtils.generateQRCodeWithVehicleNoToBase64(qrcodeUrl, vehicleNo); |
| | | |
| | | if (qrcodeImageBase64 != null) { |
| | | VehicleEvaluationQrcode qrcode = new VehicleEvaluationQrcode(); |
| | |
| | | |
| | | return successCount; |
| | | } |
| | | |
| | | /** |
| | | * 批量生成车辆评价二维码(指定车牌号列表) |
| | | * |
| | | * @param vehicleNos 车牌号列表 |
| | | * @param qrcodeUrl 二维码URL(可选) |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int batchGenerateVehicleEvaluationQrcode(List<String> vehicleNos, String qrcodeUrl) { |
| | | int successCount = 0; |
| | | for (String vehicleNo : vehicleNos) { |
| | | if (StringUtils.isEmpty(vehicleNo)) { |
| | | continue; // 跳过空的车牌号 |
| | | } |
| | | |
| | | VehicleEvaluationQrcode qrcode; |
| | | if (StringUtils.isEmpty(qrcodeUrl)) { |
| | | qrcode = generateVehicleEvaluationQrcodeWithoutVehicleCheck(vehicleNo); |
| | | } else { |
| | | qrcode = generateVehicleEvaluationQrcode(vehicleNo, qrcodeUrl); |
| | | } |
| | | if (qrcode != null) { |
| | | successCount++; |
| | | } |
| | | } |
| | | return successCount; |
| | | } |
| | | } |