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.uuid.IdUtils; import com.ard.route.domain.route.ArdRouteGrouping; import com.ard.route.mapper.ArdRouteGroupingMapper; import com.ard.route.mapper.ArdRouteInforMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ard.route.service.IArdRouteGroupingService; import org.springframework.transaction.annotation.Transactional; /** * 文件夹Service业务层处理 * * @author xia * @date 2025-10-18 */ @Service public class ArdRouteGroupingServiceImpl implements IArdRouteGroupingService { @Autowired private ArdRouteGroupingMapper ardRouteGroupingMapper; @Autowired private ArdRouteInforMapper ardRouteInforMapper; /** * 查询分组 * * @param id 分组主键 * @return 分组 */ @Override public ArdRouteGrouping selectArdRouteGroupingById(String id) { ArdRouteGrouping ardRouteGrouping = ardRouteGroupingMapper.selectArdRouteGroupingById(id); ardRouteGrouping.setArdRouteInforLS(ardRouteInforMapper.selectArdRouteInforByGroupingId(id)); return ardRouteGrouping; } /** * 查询分组列表 * * @param ardRouteGrouping 分组 * @return 分组 */ @Override @DataScope(deptAlias = "d", userAlias = "u") public List selectArdRouteGroupingList(ArdRouteGrouping ardRouteGrouping) { List list = ardRouteGroupingMapper.selectArdRouteGroupingList(ardRouteGrouping); for (ArdRouteGrouping routeGrouping : list) { routeGrouping.setArdRouteInforLS(ardRouteInforMapper.selectArdRouteInforByGroupingId(routeGrouping.getId())); } return list; } /** * 新增分组 * * @param ardRouteGrouping 分组 * @return 结果 */ @Override public int insertArdRouteGrouping(ArdRouteGrouping ardRouteGrouping) { ardRouteGrouping.setId(IdUtils.simpleUUID()); ardRouteGrouping.setCreateTime(DateUtils.getNowDate()); // 获取当前数据条数 int count = ardRouteGroupingMapper.selectArdRouteGroupingList(null).size(); ardRouteGrouping.setSerialNumber(count + 1); return ardRouteGroupingMapper.insertArdRouteGrouping(ardRouteGrouping); } /** * 修改分组 * * @param ardRouteGrouping 分组 * @return 结果 */ @Override public int updateArdRouteGrouping(ArdRouteGrouping ardRouteGrouping) { // 不能修改默认分组 if ("0".equals(ardRouteGrouping.getId())) { throw new RuntimeException("不能修改默认分组"); } ardRouteGrouping.setUpdateTime(DateUtils.getNowDate()); return ardRouteGroupingMapper.updateArdRouteGrouping(ardRouteGrouping); } /** * 批量删除分组 * * @param ids 需要删除的分组主键 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) public Map deleteArdRouteGroupingByIds(String[] ids) { // 检查是否包含默认分组,不能删除默认分组 for (String id : ids) { if ("0".equals(id)) { throw new RuntimeException("不能删除默认分组"); } } Map result = new HashMap<>(); try { // 先删除航线信息 int informationCount = ardRouteInforMapper.deleteRouteInforByGroupingIds(ids); result.put("informationCount", informationCount); // 再删除分组 int groupingCount = ardRouteGroupingMapper.deleteArdRouteGroupingByIds(ids); result.put("groupingCount", groupingCount); return result; } catch (Exception e) { throw e; // 抛出异常让事务回滚 } } /** * 删除分组信息 * * @param id 分组主键 * @return 结果 */ @Override public int deleteArdRouteGroupingById(String id) { return ardRouteGroupingMapper.deleteArdRouteGroupingById(id); } }