package com.ard.route.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import com.ard.common.annotation.DataScope; import com.ard.common.utils.DateUtils; import com.ard.common.utils.SecurityUtils; import com.ard.common.utils.uuid.IdUtils; import com.ard.route.domain.ArdRouteFile; import com.ard.route.mapper.ArdRouteFileMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ard.route.mapper.ArdRouteFolderMapper; import com.ard.route.domain.ArdRouteFolder; import com.ard.route.service.IArdRouteFolderService; import org.springframework.transaction.annotation.Transactional; /** * 文件夹Service业务层处理 * * @author xia * @date 2025-10-18 */ @Service public class ArdRouteFolderServiceImpl implements IArdRouteFolderService { @Autowired private ArdRouteFolderMapper ardRouteFolderMapper; @Autowired private ArdRouteFileMapper ardRouteFileMapper; /** * 查询文件夹 * * @param id 文件夹主键 * @return 文件夹 */ @Override public ArdRouteFolder selectArdRouteFolderById(String id) { ArdRouteFolder ardRouteFolder = ardRouteFolderMapper.selectArdRouteFolderById(id); ardRouteFolder.setArdRouteFileLs(getArdRouteFiles(id)); return ardRouteFolder; } /** * 查询文件夹列表 * * @param ardRouteFolder 文件夹 * @return 文件夹 */ @Override @DataScope(deptAlias = "d", userAlias = "u") public List selectArdRouteFolderList(ArdRouteFolder ardRouteFolder) { List list = ardRouteFolderMapper.selectArdRouteFolderList(ardRouteFolder); for (ArdRouteFolder routeFolder : list) { routeFolder.setArdRouteFileLs(getArdRouteFiles(routeFolder.getId())); } return list; } /** * 查询文件列表 */ private List getArdRouteFiles(String folderId) { ArdRouteFile ardRouteFile = new ArdRouteFile(); ardRouteFile.setFolderId(folderId); return ardRouteFileMapper.selectArdRouteFileList(ardRouteFile); } /** * 新增文件夹 * * @param ardRouteFolder 文件夹 * @return 结果 */ @Override public int insertArdRouteFolder(ArdRouteFolder ardRouteFolder) { ardRouteFolder.setId(IdUtils.simpleUUID()); ardRouteFolder.setCreateTime(DateUtils.getNowDate()); return ardRouteFolderMapper.insertArdRouteFolder(ardRouteFolder); } /** * 修改文件夹 * * @param ardRouteFolder 文件夹 * @return 结果 */ @Override public int updateArdRouteFolder(ArdRouteFolder ardRouteFolder) { ardRouteFolder.setUpdateTime(DateUtils.getNowDate()); return ardRouteFolderMapper.updateArdRouteFolder(ardRouteFolder); } /** * 批量删除文件夹 * * @param ids 需要删除的文件夹主键 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) public Map deleteArdRouteFolderByIds(String[] ids) { Map result = new HashMap<>(); int fileAdd = 0; // 删除文件夹的同时也删除文件夹下的所有文件 for (String folderId : ids) { ardRouteFileMapper.deleteArdRouteFileByFolderId(folderId); fileAdd ++; } result.put("file", fileAdd); int folderCount = ardRouteFolderMapper.deleteArdRouteFolderByIds(ids); result.put("folder", folderCount); return result; } /** * 删除文件夹信息 * * @param id 文件夹主键 * @return 结果 */ @Override public int deleteArdRouteFolderById(String id) { return ardRouteFolderMapper.deleteArdRouteFolderById(id); } }