| | |
| | | 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.ArdRouteFolder; |
| | | import com.ard.route.domain.route.ArdRouteFolder; |
| | | import com.ard.route.service.IArdRouteFolderService; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | /** |
| | | * 文件夹Service业务层处理 |
| | |
| | | @Autowired |
| | | private ArdRouteFolderMapper ardRouteFolderMapper; |
| | | |
| | | @Autowired |
| | | private ArdRouteInformationMapper ardRouteInformationMapper; |
| | | |
| | | /** |
| | | * 查询文件夹 |
| | | * 查询分组 |
| | | * |
| | | * @param id 文件夹主键 |
| | | * @return 文件夹 |
| | | * @param id 分组主键 |
| | | * @return 分组 |
| | | */ |
| | | @Override |
| | | public ArdRouteFolder selectArdRouteFolderById(String id) { |
| | | return ardRouteFolderMapper.selectArdRouteFolderById(id); |
| | | ArdRouteFolder ardRouteFolder = ardRouteFolderMapper.selectArdRouteFolderById(id); |
| | | ArdRouteInformation ardRouteInformation = new ArdRouteInformation(); |
| | | ardRouteInformation.setFolderId(id); |
| | | ardRouteFolder.setArdRouteInformationLs(ardRouteInformationMapper.selectArdRouteInformationList(ardRouteInformation)); |
| | | return ardRouteFolder; |
| | | } |
| | | |
| | | /** |
| | | * 查询文件夹列表 |
| | | * 查询分组列表 |
| | | * |
| | | * @param ardRouteFolder 文件夹 |
| | | * @return 文件夹 |
| | | * @param ardRouteFolder 分组 |
| | | * @return 分组 |
| | | */ |
| | | @Override |
| | | @DataScope(deptAlias = "d", userAlias = "u") |
| | | public List<ArdRouteFolder> selectArdRouteFolderList(ArdRouteFolder ardRouteFolder) { |
| | | return ardRouteFolderMapper.selectArdRouteFolderList(ardRouteFolder); |
| | | List<ArdRouteFolder> list = ardRouteFolderMapper.selectArdRouteFolderList(ardRouteFolder); |
| | | for (ArdRouteFolder routeFolder : list) { |
| | | routeFolder.setArdRouteInformationLs(getArdRouteInformation(routeFolder.getId())); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 新增文件夹 |
| | | * 查询文件列表 |
| | | */ |
| | | private List<ArdRouteInformation> getArdRouteInformation(String folderId) { |
| | | ArdRouteInformation ardRouteInformation = new ArdRouteInformation(); |
| | | ardRouteInformation.setFolderId(folderId); |
| | | return ardRouteInformationMapper.selectArdRouteInformationList(ardRouteInformation); |
| | | } |
| | | |
| | | /** |
| | | * 新增分组 |
| | | * |
| | | * @param ardRouteFolder 文件夹 |
| | | * @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 文件夹 |
| | | * @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 需要删除的文件夹主键 |
| | | * @param ids 需要删除的分组主键 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteArdRouteFolderByIds(String[] ids) { |
| | | return ardRouteFolderMapper.deleteArdRouteFolderByIds(ids); |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Map<String, Integer> deleteArdRouteFolderByIds(String[] ids) { |
| | | // 检查是否包含默认分组,不能删除默认分组 |
| | | for (String id : ids) { |
| | | if ("0".equals(id)) { |
| | | throw new RuntimeException("不能删除默认分组"); |
| | | } |
| | | } |
| | | |
| | | Map<String, Integer> 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 文件夹主键 |
| | | * @param id 分组主键 |
| | | * @return 结果 |
| | | */ |
| | | @Override |