From f27bfc33a2b1e1c03733cce007d2f55397f32611 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=A4=A7?= <1504665037@qq.com> Date: Thu, 29 Jan 2026 17:49:03 +0800 Subject: [PATCH] =?UTF-8?q?fit:=E8=88=AA=E7=BA=BF=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E5=88=86=E7=BB=84=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AirlineFileGroupInfoController.java | 21 ++++++++++++++++++ .../api/IAirlineFileGroupInfoDomain.java | 10 +++++++++ .../impl/AirlineFileGroupInfoDomainImpl.java | 5 +++++ .../mapper/AirlineFileGroupInfoMapper.java | 10 +++++++++ .../api/IAirlineFileGroupInfoService.java | 10 +++++++++ .../impl/AirlineFileServiceGroupInfoImpl.java | 22 +++++++++++++++++++ .../airline/AirlineFileGroupInfoMapper.xml | 13 +++++++++++ 7 files changed, 91 insertions(+) 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