package com.ard.route.service.impl; import java.util.Arrays; 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.uuid.IdUtils; import com.ard.route.domain.route.ArdRouteFile; import com.ard.route.domain.route.ArdRouteInformation; import com.ard.route.mapper.ArdRouteFileMapper; import com.ard.route.mapper.ArdRouteInformationMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ard.route.mapper.ArdRouteFolderMapper; import com.ard.route.domain.route.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 ArdRouteInformationMapper ardRouteInformationMapper; /** * 查询分组 * * @param id 分组主键 * @return 分组 */ @Override public ArdRouteFolder selectArdRouteFolderById(String id) { ArdRouteFolder ardRouteFolder = ardRouteFolderMapper.selectArdRouteFolderById(id); ardRouteFolder.setArdRouteInformationLs(ardRouteInformationMapper.selectArdRouteInformationByFolderId(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.setArdRouteInformationLs(ardRouteInformationMapper.selectArdRouteInformationByFolderId(routeFolder.getId())); } return list; } /** * 新增分组 * * @param ardRouteFolder 分组 * @return 结果 */ @Override public int insertArdRouteFolder(ArdRouteFolder ardRouteFolder) { ardRouteFolder.setId(IdUtils.simpleUUID()); ardRouteFolder.setCreateTime(DateUtils.getNowDate()); // 获取当前数据条数 int count = ardRouteFolderMapper.selectArdRouteFolderList(null).size(); ardRouteFolder.setSerialNumber(count + 1); return ardRouteFolderMapper.insertArdRouteFolder(ardRouteFolder); } /** * 修改分组 * * @param ardRouteFolder 分组 * @return 结果 */ @Override public int updateArdRouteFolder(ArdRouteFolder ardRouteFolder) { // 不能修改默认分组 if ("0".equals(ardRouteFolder.getId())) { throw new RuntimeException("不能修改默认分组"); } ardRouteFolder.setUpdateTime(DateUtils.getNowDate()); return ardRouteFolderMapper.updateArdRouteFolder(ardRouteFolder); } /** * 批量删除分组 * * @param ids 需要删除的分组主键 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) public Map deleteArdRouteFolderByIds(String[] ids) { // 检查是否包含默认分组,不能删除默认分组 for (String id : ids) { if ("0".equals(id)) { throw new RuntimeException("不能删除默认分组"); } } Map result = new HashMap<>(); try { // 先删除航线信息 int informationCount = ardRouteInformationMapper.deleteRouteInformationByFolderIds(ids); result.put("informationCount", informationCount); // 再删除分组 int folderCount = ardRouteFolderMapper.deleteArdRouteFolderByIds(ids); result.put("folderCount", folderCount); return result; } catch (Exception e) { throw e; // 抛出异常让事务回滚 } } /** * 删除分组信息 * * @param id 分组主键 * @return 结果 */ @Override public int deleteArdRouteFolderById(String id) { return ardRouteFolderMapper.deleteArdRouteFolderById(id); } }