From ebd915c0a3a83848823ae43535a83f86fd6773ad Mon Sep 17 00:00:00 2001 From: mirage <1127314491@qq.com> Date: Sat, 28 Feb 2026 11:20:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=9F=E6=88=90=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E7=A0=81=E7=9A=84=E9=80=BB=E8=BE=91,=20=E5=B0=86?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E7=9B=AE=E5=BD=95=E8=AE=BE=E7=BD=AE=E6=88=90?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=A0=B9=E7=9B=AE=E5=BD=95=E4=B8=8B,=20?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E5=B0=86=E6=97=A7=E7=9A=84=E4=BA=8C=E7=BB=B4?= =?UTF-8?q?=E7=A0=81=E5=9B=BE=E7=89=87=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TeacherServiceImpl.java | 49 +++++++++++-------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/TeacherServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/TeacherServiceImpl.java index 1df1b077..c8359576 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/TeacherServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/TeacherServiceImpl.java @@ -26,13 +26,7 @@ import com.mdd.common.mapper.admin.AdminMapper; import com.mdd.common.mapper.system.SystemRoleMapper; import com.mdd.common.exception.OperateException; import com.mdd.common.service.RegisterService; -import com.mdd.common.util.ConfigUtils; -import com.mdd.common.util.QrCodeUtil; -import com.mdd.common.util.RandomUtil; -import com.mdd.common.util.TimeUtils; -import com.mdd.common.util.ToolUtils; -import com.mdd.common.util.UrlUtils; -import com.mdd.common.util.YmlUtils; +import com.mdd.common.util.*; import com.google.zxing.WriterException; import java.io.File; @@ -393,6 +387,9 @@ public class TeacherServiceImpl implements ITeacherService { // 生成二维码内容URL(预报名页面地址) String qrCodeContent = buildQrCodeUrl(invitationCode); + // 删除旧的二维码文件(如果存在) + deleteOldQrCodeFile(teacher.getQrcodeUrl()); + // 生成二维码图片并保存 String qrcodeUrl = generateAndSaveQrCode(invitationCode, qrCodeContent, teacherId); @@ -480,13 +477,8 @@ public class TeacherServiceImpl implements ITeacherService { if ("local".equals(engine)) { // ========== 方案B:本地存储 ========== - String directory = YmlUtils.get("like.upload-directory"); - if (directory == null || directory.isEmpty()) { - throw new OperateException("请配置上传目录like.upload-directory"); - } - String folder = "qrcode/teacher"; - String savePath = (directory + folder + "/" + date).replace("\\", "/"); + String savePath = (folder + "/" + date).replace("\\", "/"); File saveDir = new File(savePath); if (!saveDir.exists()) { if (!saveDir.mkdirs()) { @@ -594,13 +586,8 @@ public class TeacherServiceImpl implements ITeacherService { if (!"local".equals(engine)) { return null; } - String directory = YmlUtils.get("like.upload-directory"); - if (directory == null || directory.isEmpty()) { - return null; - } - String path = teacher.getQrcodeUrl().startsWith("/") ? teacher.getQrcodeUrl() : "/" + teacher.getQrcodeUrl(); - String fullPath = (directory + path).replace("\\", "/"); - java.io.File file = new java.io.File(fullPath); + String path = teacher.getQrcodeUrl().startsWith("/") ? teacher.getQrcodeUrl().substring(1) : teacher.getQrcodeUrl(); + java.io.File file = new java.io.File(path); if (!file.exists() || !file.isFile()) { return null; } @@ -610,4 +597,26 @@ public class TeacherServiceImpl implements ITeacherService { return null; } } + + /** + * 删除旧的二维码文件 + * + * @param oldQrcodeUrl 旧的二维码相对路径 + */ + private void deleteOldQrCodeFile(String oldQrcodeUrl) { + if (StringUtils.isBlank(oldQrcodeUrl)) { + return; + } + try { + String path = oldQrcodeUrl.startsWith("/") ? oldQrcodeUrl.substring(1) : oldQrcodeUrl; + File oldFile = new File(path); + if (oldFile.exists() && oldFile.isFile()) { + if (!oldFile.delete()) { + System.err.println("删除旧二维码文件失败: " + path); + } + } + } catch (Exception e) { + System.err.println("删除旧二维码文件时发生异常: " + e.getMessage()); + } + } }