diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoController.java b/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoController.java index a466512..98ac84c 100644 --- a/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoController.java +++ b/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoController.java @@ -172,5 +172,26 @@ public class AirlineFileGroupInfoController extends BaseController { throw new BaseException("移动失败"); } + @PostMapping("/move/{groupId}/{newGroupId}") + @Operation(summary = "批量移动分组详情到新分组") + public AjaxResult batchMove(@RequestBody List airlines, @PathVariable("groupId") Long groupId, @PathVariable("newGroupId") Long newGroupId) throws BaseException { + if (groupId == null) { + throw new BaseException("原分组ID不能为空"); + } + if (newGroupId == null) { + throw new BaseException("新分组ID不能为空"); + } + if (CollectionUtils.isEmpty(airlines)) { + throw new BaseException("没有需要移动的航线"); + } + Long result = iAirlineFileGroupInfoService.batchMoveGroupInfo( + airlines, groupId, newGroupId + ); + if (result > 0) { + return success(result); + } + throw new BaseException("移动失败"); + } + } diff --git a/src/main/java/com/ruoyi/airline/domain/api/IAirlineFileGroupInfoDomain.java b/src/main/java/com/ruoyi/airline/domain/api/IAirlineFileGroupInfoDomain.java index bba9718..10fe3fc 100644 --- a/src/main/java/com/ruoyi/airline/domain/api/IAirlineFileGroupInfoDomain.java +++ b/src/main/java/com/ruoyi/airline/domain/api/IAirlineFileGroupInfoDomain.java @@ -50,4 +50,14 @@ public interface IAirlineFileGroupInfoDomain { * @return 结果 */ Long deleteGroupInfoBatch(List airLineIds, Long groupId); + + /** + * 批量移动分组详情到新分组 + * + * @param oldGroupId 原分组ID + * @param newGroupId 新分组ID + * @param airLineIds 航线ID列表 + * @return 结果 + */ + Long batchMoveGroupInfo(Long oldGroupId, Long newGroupId, List airLineIds); } diff --git a/src/main/java/com/ruoyi/airline/domain/impl/AirlineFileGroupInfoDomainImpl.java b/src/main/java/com/ruoyi/airline/domain/impl/AirlineFileGroupInfoDomainImpl.java index 3499bb7..f701617 100644 --- a/src/main/java/com/ruoyi/airline/domain/impl/AirlineFileGroupInfoDomainImpl.java +++ b/src/main/java/com/ruoyi/airline/domain/impl/AirlineFileGroupInfoDomainImpl.java @@ -63,4 +63,9 @@ public class AirlineFileGroupInfoDomainImpl implements IAirlineFileGroupInfoDoma public Long deleteGroupInfoBatch(List airLineIds, Long groupId) { return airlineFileGroupInfoMapper.deleteGroupInfoBatch(airLineIds, groupId); } + + @Override + public Long batchMoveGroupInfo(Long oldGroupId, Long newGroupId, List airLineIds) { + return airlineFileGroupInfoMapper.batchUpdateGroupId(oldGroupId, newGroupId, airLineIds); + } } diff --git a/src/main/java/com/ruoyi/airline/mapper/AirlineFileGroupInfoMapper.java b/src/main/java/com/ruoyi/airline/mapper/AirlineFileGroupInfoMapper.java index 157257a..876ec6d 100644 --- a/src/main/java/com/ruoyi/airline/mapper/AirlineFileGroupInfoMapper.java +++ b/src/main/java/com/ruoyi/airline/mapper/AirlineFileGroupInfoMapper.java @@ -45,4 +45,14 @@ public interface AirlineFileGroupInfoMapper { * @return 影响的行数 */ Long deleteGroupInfoBatch(List airLineIds, Long groupId); + + /** + * 批量更新分组ID,将航线文件从一个分组移动到另一个分组 + * + * @param oldGroupId 原分组ID + * @param newGroupId 新分组ID + * @param airLineIds 航线文件ID列表 + * @return 影响的行数 + */ + Long batchUpdateGroupId(Long oldGroupId, Long newGroupId, List airLineIds); } diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineFileGroupInfoService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineFileGroupInfoService.java index 03be456..f57114c 100644 --- a/src/main/java/com/ruoyi/airline/service/api/IAirlineFileGroupInfoService.java +++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineFileGroupInfoService.java @@ -35,4 +35,14 @@ public interface IAirlineFileGroupInfoService { * @throws BaseException */ Long deleteGroupInfoBatch(List airLineIds, Long groupId) throws BaseException; + + /** + * 批量移动分组详情到新分组 + * @param airLineIds 航线ID列表 + * @param groupId 原分组ID + * @param newGroupId 新分组ID + * @return + * @throws BaseException + */ + Long batchMoveGroupInfo(List airLineIds, Long groupId, Long newGroupId) throws BaseException; } diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceGroupInfoImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceGroupInfoImpl.java index 98917ed..9e7ebc9 100644 --- a/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceGroupInfoImpl.java +++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceGroupInfoImpl.java @@ -111,4 +111,26 @@ public class AirlineFileServiceGroupInfoImpl implements IAirlineFileGroupInfoSer // 调用domain层批量删除方法 return iAirlineFileGroupInfoDomain.deleteGroupInfoBatch(airLineIds, groupId); } + + @Override + public Long batchMoveGroupInfo(List airLineIds, Long groupId, Long newGroupId) throws BaseException { + // 检查参数 + if (groupId == null || newGroupId == null || airLineIds == null || airLineIds.isEmpty()) { + throw new BaseException("原分组ID、新分组ID和航线ID列表不能为空"); + } + + // 为每个航线生成新的文件名并更新 + for (Long airlineId : airLineIds) { + AirlineFileDTO airlineFile = iAirlineFileService.selectById(airlineId); + if (airlineFile != null) { + String name = airlineFile.getName(); + name = iAirlineFileService.getNewFileNameLikeByGroupId(name, newGroupId); + airlineFile.setName(name); + iAirlineFileService.update(airlineFile); + } + } + + // 调用domain层批量移动方法 + return iAirlineFileGroupInfoDomain.batchMoveGroupInfo(groupId, newGroupId, airLineIds); + } } \ No newline at end of file diff --git a/src/main/resources/mapper/airline/AirlineFileGroupInfoMapper.xml b/src/main/resources/mapper/airline/AirlineFileGroupInfoMapper.xml index ee1aca0..a118959 100644 --- a/src/main/resources/mapper/airline/AirlineFileGroupInfoMapper.xml +++ b/src/main/resources/mapper/airline/AirlineFileGroupInfoMapper.xml @@ -88,4 +88,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{airlineId} + + + + update airline_file_group_info + set group_id = #{newGroupId}, + update_time = now() + where del_flag = 0 + and group_id = #{oldGroupId} + and airline_id in + + #{airlineId} + + \ No newline at end of file diff --git a/src/main/resources/mapper/airline/AirlineFileMapper.xml b/src/main/resources/mapper/airline/AirlineFileMapper.xml index 6b4565d..5abd366 100644 --- a/src/main/resources/mapper/airline/AirlineFileMapper.xml +++ b/src/main/resources/mapper/airline/AirlineFileMapper.xml @@ -59,18 +59,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update airline_file - set name = #{name}, - air_vendor = #{airVendor}, - air_type = #{airType}, - file_name = #{fileName}, - file_url = #{fileUrl}, - type = #{type}, - source = #{source}, - status = #{status}, - file_md5 = #{fileMd5}, - update_by = #{updateBy}, + + name = #{name}, + + air_vendor = #{airVendor}, + + + air_type = #{airType}, + + + file_name = #{fileName}, + + + file_url = #{fileUrl}, + + + type = #{type}, + + + source = #{source}, + + + status = #{status}, + + + file_md5 = #{fileMd5}, + + + update_by = #{updateBy}, + update_time = now(), - remark = #{remark} + + remark = #{remark}, + + where id = #{id} \ No newline at end of file