package com.ruoyi.manage.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.utils.file.FileUploadUtils; import com.ruoyi.framework.config.ServerConfig; import com.ruoyi.manage.domain.vo.SysFileManageVO; import com.ruoyi.manage.mapper.SysFileMapper; import com.ruoyi.manage.domain.SysFileManage; import com.ruoyi.manage.service.SysFileService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; /** *

* 文件管理表 服务实现类 *

* * @author sunjiawei * @since 2025-05-21 */ @Service public class SysFileServiceImpl extends ServiceImpl implements SysFileService { @Autowired private SysFileMapper sysFileMapper; @Autowired private ServerConfig serverConfig; //查询所有数据列表 @Override public List listAll(){ return sysFileMapper.selectList(null); } //单文件上传 @Override public Integer saveFile(MultipartFile file,SysFileManage sysFileManage) throws Exception{ // 上传文件路径 String filePath = RuoYiConfig.getUploadPath(); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file); sysFileManage.setFilePath(fileName); sysFileManage.setSize(FileUploadUtils.getFileSize(file)); return sysFileMapper.insert(sysFileManage); } //单独数据插入\ @Override public Integer saveData(SysFileManage sysFileManage) throws Exception{ return sysFileMapper.insert(sysFileManage); } //批量插入 // Integer saveBatch(List sysFileManages); //条件查询 @Override public List queryData(SysFileManageVO vo){ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); String name = vo.getName(); String type = vo.getType(); if(name!=null && !name.trim().isEmpty()){ lambdaQueryWrapper.like(SysFileManage::getName,name); } if(type!=null){ lambdaQueryWrapper.like(SysFileManage::getType,type); } return sysFileMapper.selectList(lambdaQueryWrapper); } //批量删除 @Override public List deleteBatch(List ids){ List failedToDelete = new ArrayList<>(); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); for (String id : ids){ SysFileManage sysFileManage = sysFileMapper.selectById(id); String name = sysFileManage.getName(); String filePath = sysFileManage.getFilePath(); String realFilePath = filePath.replaceFirst("/profile",RuoYiConfig.getProfile()); String realFileName = name + realFilePath.substring(realFilePath.indexOf("_") + 1); if(judgmentOS()){ realFilePath = realFilePath.replace("/","\\"); } boolean success = FileUploadUtils.deleteFile(realFilePath); if(!success){ failedToDelete.add(realFileName); }else { lambdaQueryWrapper.eq(SysFileManage::getFilePath,filePath); sysFileMapper.delete(lambdaQueryWrapper); } } return failedToDelete; } //查询总数 @Override public Long queryCount(){ return sysFileMapper.selectCount(null); } //判断当前系统是否是windows public boolean judgmentOS(){ boolean flag = false; String osName = System.getProperty("os.name").toLowerCase(); if(osName.contains("win")){ flag = true; } return flag; } }