diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopTableServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopTableServiceImpl.java index 91be1dfaf..733104b33 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopTableServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopTableServiceImpl.java @@ -3,10 +3,10 @@ package com.czg.service.account.service.impl; import cn.dev33.satoken.context.SaHolder; import cn.hutool.core.date.DateUtil; import cn.hutool.core.img.ImgUtil; -import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.ZipUtil; import cn.hutool.extra.qrcode.QrCodeUtil; import com.czg.account.dto.table.ShopTableAddDTO; import com.czg.account.dto.table.ShopTableBindDTO; @@ -28,14 +28,12 @@ import jakarta.servlet.http.HttpServletResponse; import org.apache.dubbo.config.annotation.DubboService; import java.awt.image.BufferedImage; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; +import java.io.*; import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -116,9 +114,15 @@ public class ShopTableServiceImpl extends ServiceImpl codeList = new ArrayList<>(); - List tempFiles = new ArrayList<>(); List fileNames = new ArrayList<>(); for (int i = 0; i < num; i++) { @@ -129,18 +133,13 @@ public class ShopTableServiceImpl extends ServiceImpl 0) { + os.write(buffer, 0, length); } - - // 完成压缩并输出 - zipOut.finish(); - zipOut.flush(); } - // 删除临时文件 - for (File tempFile : tempFiles) { - FileUtil.del(tempFile); + // 删除临时 ZIP 文件和二维码图片目录 + File tempZipFile = new File(tempZipPath); + if (tempZipFile.exists()) { + tempZipFile.delete(); + } + + if (dir.exists()) { + for (File file : Objects.requireNonNull(dir.listFiles())) { + if (file.isFile()) { + file.delete(); + } + } + dir.delete(); } } + private String generateCode(Integer count, Long shopId, Long id, Map map) { if (count > 100) { throw new ApiNotPrintException("桌码生成失败");