package com.ruoyi.airline.service.impl; import com.ruoyi.airline.domain.api.IAirlineFileGroupInfoDomain; import com.ruoyi.airline.domain.model.AirlineFileGroupInfo; import com.ruoyi.airline.service.api.IAirlineFileGroupInfoService; import com.ruoyi.airline.service.api.IAirlineFileService; import com.ruoyi.airline.service.convert.AirlineFileGroupInfoServiceConvert; import com.ruoyi.airline.service.dto.AirlineFileDTO; 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 AirlineFileServiceGroupInfoImpl implements IAirlineFileGroupInfoService { private static final Logger log = LoggerFactory.getLogger(AirlineFileServiceGroupInfoImpl.class); @Autowired private IAirlineFileService iAirlineFileService; @Autowired private IAirlineFileGroupInfoDomain iAirlineFileGroupInfoDomain; @Override public List selectGroupInfoListById(Long groupId) { List models = iAirlineFileGroupInfoDomain.selectGroupInfoListById(groupId); models.forEach(model -> { model.setAirlineFile(iAirlineFileService.selectById(model.getAirlineId())); }); return AirlineFileGroupInfoServiceConvert.toDtoList(models); } @Override public Long save(AirlineFileGroupInfoDTO dto) throws BaseException { AirlineFileDTO result = iAirlineFileService.save(dto.getAirlineFileDTO()); dto.setAirlineId(result.getId()); // 保存分组信息 AirlineFileGroupInfo model = AirlineFileGroupInfoServiceConvert.toModel(dto); // 检查唯一性:同一个分组下不能有相同的航线 boolean exists = iAirlineFileGroupInfoDomain.existsByGroupIdAndAirlineId(model.getGroupId(), model.getAirlineId()); if (exists) { throw new BaseException("该航线已存在于当前分组中"); } return iAirlineFileGroupInfoDomain.save(model); } }