From fbb35a6b9ed181fa7e5d7bc1fb0c3318a1d18db1 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 14 一月 2025 13:50:33 +0800 Subject: [PATCH] 12.18 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 10 +++++ ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java | 44 ++++++++++++++++++++++ ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java | 3 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java | 2 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 3 + ruoyi-common/pom.xml | 11 +++++ 6 files changed, 72 insertions(+), 1 deletions(-) diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java index 833aa57..ad189f8 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java @@ -89,4 +89,7 @@ @ApiModelProperty(value = "预约单id") private String technicianSubscribeId; + @ApiModelProperty("核销码BASE64") + private String writeOffCode; + } diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index a6129f8..9d86df3 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -31,6 +31,17 @@ <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> + + <dependency> + <groupId>com.google.zxing</groupId> + <artifactId>core</artifactId> + <version>3.4.1</version> + </dependency> + <dependency> + <groupId>com.google.zxing</groupId> + <artifactId>javase</artifactId> + <version>3.4.1</version> + </dependency> </dependencies> </project> diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java new file mode 100644 index 0000000..93bc31e --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java @@ -0,0 +1,44 @@ +package com.ruoyi.common.core.utils.uuid; + +import com.google.zxing.BarcodeFormat; +import com.google.zxing.WriterException; +import com.google.zxing.client.j2se.MatrixToImageWriter; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.QRCodeWriter; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Base64; + +public class QRCodeGenerator { + + /** + * 生成二维码图片的base64编码 + * @param text + * @param width + * @param height + * @return + * @throws WriterException + * @throws IOException + */ + public static String generateQRCodeBase64(String text, int width, int height) throws WriterException, IOException { + QRCodeWriter qrCodeWriter = new QRCodeWriter(); + BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height); + + ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream(); + MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream); + byte[] pngData = pngOutputStream.toByteArray(); + + return Base64.getEncoder().encodeToString(pngData); + } + + public static void main(String[] args) { + try { + String text = "Hello, World!"; + String base64QRCode = generateQRCodeBase64(text, 200, 200); + System.out.println("Base64 QR Code: " + base64QRCode); + } catch (WriterException | IOException e) { + e.printStackTrace(); + } + } +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java index c3b5c31..f4d9c37 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java @@ -896,7 +896,8 @@ .limit(daysBetween + 1) .collect(Collectors.toList()); } - + + /** * 上传图片 diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index 6e38450..ac038fe 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -14,6 +14,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.uuid.QRCodeGenerator; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.enums.OrderStatus; @@ -41,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; @@ -216,6 +218,14 @@ orderDetailVO.setTechnicianSubscribeId(id.toString()); } } + // 生成核销码BASE64 + try { + String base64 = QRCodeGenerator.generateQRCodeBase64(order.getOrderNumber(), 124, 124); + orderDetailVO.setWriteOffCode(base64); + } catch (Exception e) { + e.printStackTrace(); + throw new ServiceException("生成核销码失败"); + } return orderDetailVO; } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java index 348da92..88aa5b8 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java @@ -71,5 +71,7 @@ private String afterSaleTime; @ApiModelProperty("活动名称") private String activityName; + @ApiModelProperty("核销码BASE64") + private String writeOffCode; } -- Gitblit v1.7.1