From ce663f476e7134bb4f9e34d5491fc37be53cc09f Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期四, 21 三月 2024 11:30:39 +0800 Subject: [PATCH] 添加项目名称 --- src/main/java/com/lf/server/service/data/DirService.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 110 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/DirService.java b/src/main/java/com/lf/server/service/data/DirService.java index 2c255db..d9fd76b 100644 --- a/src/main/java/com/lf/server/service/data/DirService.java +++ b/src/main/java/com/lf/server/service/data/DirService.java @@ -1,10 +1,19 @@ package com.lf.server.service.data; +import com.lf.server.entity.all.RedisCacheKey; import com.lf.server.entity.data.DirEntity; +import com.lf.server.helper.PathHelper; +import com.lf.server.helper.StringHelper; +import com.lf.server.helper.Zip4jHelper; import com.lf.server.mapper.data.DirMapper; -import org.springframework.beans.factory.annotation.Autowired; +import com.lf.server.service.all.RedisService; +import net.lingala.zip4j.ZipFile; +import net.lingala.zip4j.model.ZipParameters; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.io.File; +import java.util.ArrayList; import java.util.List; /** @@ -12,39 +21,50 @@ * @author sws * @date 2022-09-24 */ - @Service public class DirService implements DirMapper { - @Autowired + @Resource + PathHelper pathHelper; + + @Resource DirMapper dirMapper; + + @Resource + RedisService redisService; @Override public Integer insert(DirEntity dirEntity) { + clearCache(); return dirMapper.insert(dirEntity); } @Override public Integer inserts(List<DirEntity> dirEntity) { + clearCache(); return dirMapper.inserts(dirEntity); } @Override public Integer deleteDir(int id) { + clearCache(); return dirMapper.deleteDir(id); } @Override public Integer deleteDirs(List<Integer> ids) { + clearCache(); return dirMapper.deleteDirs(ids); } @Override public Integer update(DirEntity dirEntity) { + clearCache(); return dirMapper.update(dirEntity); } @Override public Integer updates(List<DirEntity> dirEntity) { + clearCache(); return dirMapper.updates(dirEntity); } @@ -60,26 +80,107 @@ @Override public List<DirEntity> selectDirAll() { - return dirMapper.selectDirAll(); + String key = RedisCacheKey.dataDirKey("selectDirAll"); + List<DirEntity> list = redisService.getListByKey(key); + if (null == list) { + list = dirMapper.selectDirAll(); + redisService.saveListByKey(key, list); + } + + return list; } @Override public List<DirEntity> selectDirRoot() { - return dirMapper.selectDirRoot(); + String key = RedisCacheKey.dataDirKey("selectDirRoot"); + List<DirEntity> list = redisService.getListByKey(key); + if (null == list) { + list = dirMapper.selectDirRoot(); + redisService.saveListByKey(key, list); + } + + return list; } @Override - public List<DirEntity> selectProject() { - return dirMapper.selectProject(); + public List<DirEntity> selectProject(String name) { + name = StringHelper.getLikeUpperStr(name); + + return dirMapper.selectProject(name); } @Override public List<DirEntity> selectRecursiveById(Integer id) { - return dirMapper.selectRecursiveById(id); + List<DirEntity> list = dirMapper.selectRecursiveById(id); + + return null == list ? new ArrayList<>() : list; } @Override public List<DirEntity> selectDirsForPrj() { - return dirMapper.selectDirsForPrj(); + String key = RedisCacheKey.dataDirKey("selectDirsForPrj"); + List<DirEntity> list = redisService.getListByKey(key); + if (null == list) { + list = dirMapper.selectDirsForPrj(); + redisService.saveListByKey(key, list); + } + + return list; + } + + @Override + public Integer selectMaxOrderNum() { + return dirMapper.selectMaxOrderNum(); + } + + @Override + public DirEntity selectDirByName(String name, Integer pid) { + return dirMapper.selectDirByName(name, pid); + } + + @Override + public String selectNameByCode(String code) { + return dirMapper.selectNameByCode(code); + } + + /** + * 娓呴櫎缂撳瓨 + */ + public void clearCache() { + String key = RedisCacheKey.dataDirKey(""); + redisService.clearKeys(key); + } + + /** + * 鍒涘缓鏁版嵁鐩綍 + */ + public String createDirs(int id) throws Exception { + List<DirEntity> list = selectRecursiveById(id); + if (null == list || list.isEmpty()) { + return null; + } + + String tempPath = pathHelper.getTempPath(); + for (DirEntity dir : list) { + String path = tempPath + File.separator + dir.getFullName(); + File f = new File(path); + if (f.exists() && f.isDirectory()) { + continue; + } + + f.mkdirs(); + } + + File file = new File(tempPath + File.separator + list.get(0).getName()); + if (!file.exists() || !file.isDirectory()) { + file.mkdirs(); + } + + String zipFile = tempPath + File.separator + list.get(0).getName() + ".zip"; + ZipFile zip = Zip4jHelper.createZipFile(zipFile, null); + ZipParameters params = Zip4jHelper.getZipParams(false); + zip.addFolder(file, params); + + return zipFile; } } -- Gitblit v1.9.3