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