package com.ruoyi.airline.service.impl; import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.ruoyi.airline.domain.api.IAirlineFileDomain; import com.ruoyi.airline.domain.api.IAirlineFileGroupDomain; import com.ruoyi.airline.domain.api.IAirlineFileGroupInfoDomain; import com.ruoyi.airline.domain.model.AirlineFile; import com.ruoyi.airline.domain.model.AirlineFileGroup; import com.ruoyi.airline.domain.model.AirlineFileGroupInfo; import com.ruoyi.airline.service.api.IAirlineFileGroupService; import com.ruoyi.airline.service.convert.AirlineFileGroupInfoServiceConvert; import com.ruoyi.airline.service.convert.AirlineFileGroupServiceConvert; import com.ruoyi.airline.service.convert.AirlineFileServiceConvert; import com.ruoyi.airline.service.dto.AirlineFileGroupDTO; import com.ruoyi.airline.service.dto.AirlineFileGroupInfoDTO; import com.ruoyi.common.core.exception.base.BaseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * 航线文件Service实现类 * * @author ruoyi * @date 2026-01-17 */ @Service public class AirlineFileServiceGroupImpl implements IAirlineFileGroupService { private static final Logger log = LoggerFactory.getLogger(AirlineFileServiceGroupImpl.class); @Autowired private IAirlineFileGroupDomain iAirlineFileGroupDomain; @Autowired private IAirlineFileGroupInfoDomain iAirlineFileGroupInfoDomain; @Autowired private IAirlineFileDomain iAirlineFileDomain; @Override public int deletegroupById(Long userId, Long groupId) { // 1、删除航线信息 AirlineFileGroupInfoDTO dto = new AirlineFileGroupInfoDTO(); dto.setGroupId(groupId); AirlineFileGroupInfo model = AirlineFileGroupInfoServiceConvert.toModel(dto); int result = iAirlineFileGroupInfoDomain.deleteGroupInfo(model); if (result > 0) { // 2、删除分组 AirlineFileGroup model2 = new AirlineFileGroup(); model2.setGroupId(groupId); model2.setUserId(userId); return iAirlineFileGroupDomain.deletegroup(model2); } // TODO 增加事务机制 throw new BaseException("删除航线失败"); } @Override public boolean checkGroupNameUnique(AirlineFileGroupDTO group) { AirlineFileGroup model = AirlineFileGroupServiceConvert.toModel(group); return iAirlineFileGroupDomain.checkgroupNameUnique(model); } @Override public int updateGroup(AirlineFileGroupDTO group) { AirlineFileGroup model = AirlineFileGroupServiceConvert.toModel(group); return iAirlineFileGroupDomain.updateGroup(model); } @Override public int insertGroup(AirlineFileGroupDTO group) { AirlineFileGroup model = AirlineFileGroupServiceConvert.toModel(group); return iAirlineFileGroupDomain.insertGroup(model); } /** * 查询分组列表 * * @param group * @return */ @Override public List selectGroupList(AirlineFileGroupDTO group) { AirlineFileGroup model = AirlineFileGroupServiceConvert.toModel(group); return AirlineFileGroupServiceConvert.toDTOList(iAirlineFileGroupDomain.selectGroupList(model)); } /** * 根据分组ID 查询 分组下所有的 航线文件。 * * @param groupId 分组id * @return */ @Override public AirlineFileGroupDTO selectAirLineListsByGroupId(Long userId, Long groupId) { AirlineFileGroupDTO dto = new AirlineFileGroupDTO(); dto.setUserId(userId); dto.setGroupId(groupId); List airlineFileGroupInfoDTOS = iAirlineFileGroupInfoDomain.selectGroupInfoListById(groupId); if (!CollectionUtils.isEmpty(airlineFileGroupInfoDTOS)) { List ids = airlineFileGroupInfoDTOS.stream().map(AirlineFileGroupInfo::getAirlineId).toList(); List airlineFileDTOS = iAirlineFileDomain.selectFileListByIds(ids); dto.setGroupInfos(AirlineFileServiceConvert.toDTOList(airlineFileDTOS)); } return dto; } }