package com.ard.route.service.impl; import java.util.List; import com.ard.common.utils.DateUtils; import com.ard.common.utils.file.FileUtils; import com.ard.common.utils.uuid.IdUtils; import com.ard.oss.model.MinioUploadResult; import com.ard.oss.service.impl.OssServiceContext; import com.ard.route.domain.route.ArdRouteInformation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ard.route.mapper.ArdRouteInformationMapper; import com.ard.route.service.IArdRouteInformationService; import org.springframework.web.multipart.MultipartFile; import static com.ard.route.util.ToolUtils.extractFilePath; import static com.ard.route.util.ToolUtils.getFileNameWithoutExtension; /** * 航线(kmz)Service业务层处理 * * @author xia * @date 2025-10-23 */ @Service public class ArdRouteInformationServiceImpl implements IArdRouteInformationService { @Autowired private ArdRouteInformationMapper ardRouteInformationMapper; @Autowired private OssServiceContext ossService; /** * 查询航线(kmz) * * @param id 航线(kmz)主键 * @return 航线(kmz) */ @Override public ArdRouteInformation selectArdRouteInformationById(String id) { return ardRouteInformationMapper.selectArdRouteInformationById(id); } /** * 查询航线(kmz)列表 * * @param ardRouteInformation 航线(kmz) * @return 航线(kmz) */ @Override public List selectArdRouteInformationList(ArdRouteInformation ardRouteInformation) { return ardRouteInformationMapper.selectArdRouteInformationList(ardRouteInformation); } /** * 新增航线(kmz) * * @param ardRouteInformation 航线(kmz) * @return 结果 */ @Override public int insertArdRouteInformation(ArdRouteInformation ardRouteInformation) { ardRouteInformation.setId(IdUtils.simpleUUID()); ardRouteInformation.setCreateTime(DateUtils.getNowDate()); return ardRouteInformationMapper.insertArdRouteInformation(ardRouteInformation); } /** * 修改航线(kmz) * * @param ardRouteInformation 航线(kmz) * @return 结果 */ @Override public int updateArdRouteInformation(ArdRouteInformation ardRouteInformation) { ardRouteInformation.setUpdateTime(DateUtils.getNowDate()); return ardRouteInformationMapper.updateArdRouteInformation(ardRouteInformation); } /** * 批量删除航线(kmz) * * @param ids 需要删除的航线(kmz)主键 * @return 结果 */ @Override public int deleteArdRouteInformationByIds(String[] ids) { // 删除航线(kmz)文件 for (String id : ids) { ArdRouteInformation information = ardRouteInformationMapper.selectArdRouteInformationById(id); ossService.deleteObject("kmz", information.getMinioUpPath()); } return ardRouteInformationMapper.deleteArdRouteInformationByIds(ids); } /** * 删除航线(kmz)信息 * * @param id 航线(kmz)主键 * @return 结果 */ @Override public int deleteArdRouteInformationById(String id) { return ardRouteInformationMapper.deleteArdRouteInformationById(id); } /** * 导入航线(kmz)文件 * * @param file 文件 * @return 结果 */ @Override public MinioUploadResult uploadArdRouteInformation(MultipartFile file) { try { String url = ossService.upload("kmz",file); ArdRouteInformation information = new ArdRouteInformation(); information.setFileName(file.getOriginalFilename()); information.setFileNameNew(getFileNameWithoutExtension(url)); information.setMinioUpPath(extractFilePath(url)); information.setUpPath(url); information.setUpFileSize((double) file.getSize()); insertArdRouteInformation(information); return MinioUploadResult.builder() .url(url) .newFileName(FileUtils.getName(url)) .originalFilename(file.getOriginalFilename()) .build(); }catch (Exception e){ return null; } } }