package com.ard.route.service.impl;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
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.ArdRouteGroup;
|
import com.ard.route.domain.vo.ArdRouteGroupVo;
|
import com.ard.route.mapper.ArdRouteGroupMapper;
|
import com.ard.route.mapper.ArdRouteInfoMapper;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.ard.route.service.IArdRouteGroupService;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* 文件夹Service业务层处理
|
*
|
* @author xia
|
* @date 2025-10-18
|
*/
|
@Service
|
public class ArdRouteGroupServiceImpl implements IArdRouteGroupService {
|
|
@Autowired
|
private ArdRouteGroupMapper ardRouteGroupMapper;
|
|
@Autowired
|
private ArdRouteInfoMapper ardRouteInfoMapper;
|
|
/**
|
* 查询分组
|
*
|
* @param id 分组主键
|
* @return 分组
|
*/
|
@Override
|
public ArdRouteGroup selectArdRouteGroupById(String id) {
|
ArdRouteGroup ardRouteGroup = ardRouteGroupMapper.selectArdRouteGroupById(id);
|
ardRouteGroup.setArdRouteInfoLS(ardRouteInfoMapper.selectArdRouteInfoByGroupId(id));
|
return ardRouteGroup;
|
}
|
|
/**
|
* 查询分组列表
|
*
|
* @param ardRouteGroup 分组
|
* @return 分组
|
*/
|
@Override
|
@DataScope(deptAlias = "d", userAlias = "u")
|
public List<ArdRouteGroup> selectArdRouteGroupList(ArdRouteGroup ardRouteGroup) {
|
List<ArdRouteGroup> list = ardRouteGroupMapper.selectArdRouteGroupList(ardRouteGroup);
|
for (ArdRouteGroup routeGroup : list) {
|
routeGroup.setArdRouteInfoLS(ardRouteInfoMapper.selectArdRouteInfoByGroupId(routeGroup.getId()));
|
}
|
return list;
|
}
|
|
/**
|
* 新增分组
|
*
|
* @param ardRouteGroup 分组
|
* @return 结果
|
*/
|
@Override
|
public int insertArdRouteGroup(ArdRouteGroup ardRouteGroup) {
|
ardRouteGroup.setId(IdUtils.simpleUUID());
|
ardRouteGroup.setCreateTime(DateUtils.getNowDate());
|
// 获取当前数据条数
|
int count = ardRouteGroupMapper.selectArdRouteGroupList(null).size();
|
ardRouteGroup.setSerialNumber(count + 1);
|
return ardRouteGroupMapper.insertArdRouteGroup(ardRouteGroup);
|
}
|
|
/**
|
* 修改分组
|
*
|
* @param ardRouteGroup 分组
|
* @return 结果
|
*/
|
@Override
|
public int updateArdRouteGroup(ArdRouteGroup ardRouteGroup) {
|
// 不能修改默认分组
|
if ("0".equals(ardRouteGroup.getId())) {
|
throw new RuntimeException("不能修改默认分组");
|
}
|
ardRouteGroup.setUpdateTime(DateUtils.getNowDate());
|
return ardRouteGroupMapper.updateArdRouteGroup(ardRouteGroup);
|
}
|
|
/**
|
* 批量删除分组
|
*
|
* @param ids 需要删除的分组主键
|
* @return 结果
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Map<String, Integer> deleteArdRouteGroupByIds(String[] ids) {
|
// 检查是否包含默认分组,不能删除默认分组
|
for (String id : ids) {
|
if ("0".equals(id)) {
|
throw new RuntimeException("不能删除默认分组");
|
}
|
}
|
|
Map<String, Integer> result = new HashMap<>();
|
try {
|
// 先删除航线信息
|
int informationCount = ardRouteInfoMapper.deleteRouteInforByGroupIds(ids);
|
result.put("infoCount", informationCount);
|
|
// 再删除分组
|
int groupCount = ardRouteGroupMapper.deleteArdRouteGroupByIds(ids);
|
result.put("groupCount", groupCount);
|
|
return result;
|
} catch (Exception e) {
|
throw e; // 抛出异常让事务回滚
|
}
|
}
|
|
/**
|
* 删除分组信息
|
*
|
* @param id 分组主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteArdRouteGroupById(String id) {
|
return ardRouteGroupMapper.deleteArdRouteGroupById(id);
|
}
|
|
/**
|
* 分组列表
|
*
|
* @param ardRouteGroup 分组
|
* @return 分组集合
|
*/
|
@Override
|
public List<ArdRouteGroupVo> selectGroupList(ArdRouteGroup ardRouteGroup) {
|
return ardRouteGroupMapper.selectArdRouteGroupList(ardRouteGroup).stream()
|
.map(entity -> {
|
ArdRouteGroupVo vo = new ArdRouteGroupVo();
|
BeanUtils.copyProperties(entity, vo);
|
return vo;
|
})
|
.collect(Collectors.toList());
|
}
|
|
}
|