diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java index a475d60..f9760dd 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java @@ -97,6 +97,10 @@ public class BatteryStationController { public void createQRCode2(String path, @RequestParam(required = false) String width, HttpServletResponse response) { batteryStationService.createQRCode2(path, width, response); } - + @Operation(summary = "下载小程序码") + @GetMapping("/qrcode/downloadQRCode2") + public void downloadQRCode2(@RequestParam String path, @RequestParam String width, HttpServletResponse response) { + batteryStationService.downloadQRCode2(path, width, response); + } } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/BatteryStationService.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/BatteryStationService.java index e346694..4857fb0 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/BatteryStationService.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/BatteryStationService.java @@ -28,4 +28,5 @@ public interface BatteryStationService { public void createQRCode2(String path, String width, HttpServletResponse response); + public void downloadQRCode2(String path, String width, HttpServletResponse response); } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java index 667d6d9..251d6ed 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java @@ -242,4 +242,34 @@ public class BatteryStationServiceImpl implements BatteryStationService { } + @Override + public void downloadQRCode2(String path, String width, HttpServletResponse response) { + String qrCode2Str = wechatService.createQRCode2(path, width); + byte[] res = Base64.getDecoder().decode(qrCode2Str); + + String fileName = "小程序二维码" + DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN) + ".png"; + response.setContentType("image/png"); + response.setContentLength(res.length); + response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Expires", "0"); + + try { + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + ServletOutputStream out = null; + try { + out = response.getOutputStream(); + out.write(res); + out.flush(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + IoUtil.close(out); + } + } + } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/task/OrderSwapBatteryTask.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/task/OrderSwapBatteryTask.java index 9d61380..5fcd001 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/task/OrderSwapBatteryTask.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/task/OrderSwapBatteryTask.java @@ -22,59 +22,41 @@ public class OrderSwapBatteryTask { @Resource private OrderSwapBatteryPreDao orderSwapBatteryPreDao; - // @Scheduled(cron = "0 0 * * * ?") // 每小时执行一次 + @Scheduled(cron = "0 0 * * * ?") // 每小时执行一次 public void orderSwapBatteryExpired() { - log.info("===>>> 开始查找预约单更新预约状态..."); + log.info("\r\n===>>> 开始查找预约单更新预约状态.."); - try { - // 查询条件:排除已过期(3)和无效(4)的订单 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.ne("status", 4) // 无效 - .ne("status", 3) // 过期 - .isNotNull("reservation_time"); // 确保预约时间不为空 + // 查询条件,排除已过期和无效状态 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper + .ne("status", 4)//无效 + .ne("status", 3) //过期 + .ne("status", 2); //过期 - List orderSwapBatteryPreList = orderSwapBatteryPreDao.selectList(queryWrapper); + List orderSwapBatteryPreList = orderSwapBatteryPreDao.selectList(queryWrapper); - // 获取当前时间 - Date currentTime = new Date(); - int expiredCount = 0; // 记录过期的预约单数量 + // 获取当前时间 + Date currentTime = new Date(); + int expiredCount = 0; // 记录过期的预约单数量 - for (OrderSwapBatteryPre order : orderSwapBatteryPreList) { - // 计算时间差(毫秒) - long timeDiff = currentTime.getTime() - order.getReservationTime().getTime(); - // 24小时 = 24 * 60 * 60 * 1000 毫秒 - if (timeDiff >= 24 * 60 * 60 * 1000) { - try { - // 更新状态为过期 - order.setStatus(3); // 设置为过期状态 - order.setUptime(currentTime); // 更新修改时间 - orderSwapBatteryPreDao.updateById(order); - expiredCount++; - - log.info("预约单已过期 - 预约人: {}, 订单ID: {}, 预约时间: {}", - order.getUname(), - order.getPkId(), - DateUtil.format(order.getReservationTime(), "yyyy-MM-dd HH:mm:ss")); - - } catch (Exception e) { - log.error("更新预约单状态失败 - 预约人: {}, 订单ID: {}, 预约时间: {}, 错误信息: {}", - order.getUname(), - order.getPkId(), - DateUtil.format(order.getReservationTime(), "yyyy-MM-dd HH:mm:ss"), - e.getMessage()); - } + for (OrderSwapBatteryPre order : orderSwapBatteryPreList) { + // 检查预约时间是否已过期 + if (order.getReservationTime() != null && order.getReservationTime().before(currentTime)) { + // 更新状态为过期 + order.setStatus(4); // 设置为过期状态 + try { + orderSwapBatteryPreDao.updateById(order); + //发送公众号过期提醒 + //templateMessageService.orderMessageSend(order, 4); + expiredCount++; + log.info("预约单已过期,订单ID: {}", order.getSourceId()); // 记录过期的订单ID + } catch (Exception e) { + log.error("更新预约单状态失败,预约人:{},订单ID: {}, 错误信息: {}",order.getUname(), order.getPkId(), e.getMessage()); } } - - if (expiredCount > 0) { - log.info("===>>> 本次处理过期预约单:{} 条", expiredCount); - } else { - log.info("===>>> 本次没有需要处理的过期预约单"); - } - - } catch (Exception e) { - log.error("处理过期预约单时发生异常: {}", e.getMessage(), e); } + + log.info("\r\n===>>> 预约单过期:{} 条数据", expiredCount); } } diff --git a/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/WechatPayServiceImpl.java b/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/WechatPayServiceImpl.java index 8768f59..7306fd1 100644 --- a/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/WechatPayServiceImpl.java +++ b/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/WechatPayServiceImpl.java @@ -92,7 +92,6 @@ public class WechatPayServiceImpl implements WechatPayService { //检查账户是否存在 JSONObject entries = JSONUtil.parseObj(prePay.getAttach()); - log.info("PrePayVO==================> {}",JSONUtil.parseObj(prePay)); if (!StringUtils.hasText(entries.getStr("walletCode"))) { Result walleCode = cloudService.getWalleCode(prePay.getWuid()); if (!walleCode.getCode().equals(CodeMsg.SUCCESS.getCode())) { @@ -148,6 +147,8 @@ public class WechatPayServiceImpl implements WechatPayService { preOrder.setDeviceId(prePay.getDeviceId()); } PrepayWithRequestPaymentResponse response = WechatPayUtil.jsapiPrepay(config, request); + //判断是充值订单还是订单支付 + // System.out.println("\r\n=====response>>>>>" + response); // 写表 BeanUtils.copyProperties(request, preOrder);