diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeOperateSystemInfoController.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeOperateSystemInfoController.java index dee73cc0..0fea2ecf 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeOperateSystemInfoController.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/controller/EbikeOperateSystemInfoController.java @@ -167,11 +167,11 @@ public class EbikeOperateSystemInfoController { * @return */ @PostMapping("ebikeQrCodeGenerate") - public JsonResult> ebikeQrGenerate(@RequestParam(name = "content") String content) { + public JsonResult> ebikeQrGenerate(@RequestParam(name = "content") String content, @RequestParam(name = "text") String text) { if (content == null || content.isEmpty()) { return JsonResult.failed("二维码内容不能为空"); } - return JsonResult.success(QRGenUtil.generateQRCodeBase64(content)); + return JsonResult.success(QRGenUtil.generateQRCodeBase64(content, text)); } /** diff --git a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/utils/QRGenUtil.java b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/utils/QRGenUtil.java index 59fb07d5..de8a40b0 100644 --- a/ebike-operate/src/main/java/com/cdzy/ebikeoperate/utils/QRGenUtil.java +++ b/ebike-operate/src/main/java/com/cdzy/ebikeoperate/utils/QRGenUtil.java @@ -25,9 +25,10 @@ public class QRGenUtil { *
增加内容文字 * * @param content 二维码内容 + * @param text 文字内容 * @return Base64编码的二维码 */ - public static String generateQRCodeBase64(String content) { + public static String generateQRCodeBase64(String content, String text) { // 1. 生成基础二维码 try (ByteArrayOutputStream qrStream = QRCode.from(content) .withSize(300, 300) @@ -35,6 +36,9 @@ public class QRGenUtil { .withErrorCorrection(ErrorCorrectionLevel.H) // 纠错等级(H为最高) .to(ImageType.PNG) // 输出格式 .stream()) { + if(text == null || text.isEmpty()){ + return Base64.getEncoder().encodeToString(qrStream.toByteArray()); + } // 2. 将二维码转换为 BufferedImage ByteArrayInputStream inputStream = new ByteArrayInputStream(qrStream.toByteArray()); @@ -53,12 +57,12 @@ public class QRGenUtil { g2d.setColor(Color.BLACK); // 计算文字位置(底部居中) - int textWidth = g2d.getFontMetrics().stringWidth(content); + int textWidth = g2d.getFontMetrics().stringWidth(text); int x = (qrImage.getWidth() - textWidth) / 2; int y = qrImage.getHeight() - 2; // 底部留白 // 添加文字说明 - g2d.drawString(content, x, y); + g2d.drawString(text, x, y); g2d.dispose(); // 使用 Java 8+ 的 Base64 编码(避免自动换行问题)