feat:增加批量移动接口,优化查询接口逻辑
This commit is contained in:
parent
c767572a9f
commit
7c77837cf5
|
|
@ -2,6 +2,7 @@ package com.ruoyi.airline.controller;
|
||||||
|
|
||||||
import com.ruoyi.airline.api.domain.AirlineMarkerVO;
|
import com.ruoyi.airline.api.domain.AirlineMarkerVO;
|
||||||
import com.ruoyi.airline.controller.convert.AirlineMarkerControllerConvert;
|
import com.ruoyi.airline.controller.convert.AirlineMarkerControllerConvert;
|
||||||
|
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
||||||
import com.ruoyi.airline.service.api.IAirlineMarkerService;
|
import com.ruoyi.airline.service.api.IAirlineMarkerService;
|
||||||
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
||||||
import com.ruoyi.common.core.web.controller.BaseController;
|
import com.ruoyi.common.core.web.controller.BaseController;
|
||||||
|
|
@ -24,28 +25,16 @@ import java.util.List;
|
||||||
* @author 拓恒
|
* @author 拓恒
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/marker")
|
@RequestMapping("/markerGroup")
|
||||||
@Tag(name = "标注管理")
|
@Tag(name = "标注管理")
|
||||||
public class AirlineMarkerController extends BaseController {
|
public class AirlineMarkerController extends BaseController {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(AirlineMarkerController.class);
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IAirlineMarkerService iAirlineMarkerService;
|
private IAirlineMarkerService iAirlineMarkerService;
|
||||||
|
|
||||||
/**
|
@Autowired
|
||||||
* 获取标注列表
|
private IAirlineMarkerGroupInfoService iAirlineMarkerGroupInfoService;
|
||||||
*/
|
|
||||||
@GetMapping("/list")
|
|
||||||
@Operation(summary = "获取标注列表")
|
|
||||||
public TableDataInfo list(AirlineMarkerVO airlineMarkerVO) {
|
|
||||||
startPage();
|
|
||||||
airlineMarkerVO.setCreateBy(SecurityUtils.getUserId().toString());
|
|
||||||
AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(airlineMarkerVO);
|
|
||||||
List<AirlineMarkerDTO> list = iAirlineMarkerService.selectMarkerList(dto);
|
|
||||||
List<AirlineMarkerVO> result = AirlineMarkerControllerConvert.fromList(list);
|
|
||||||
return getDataTable(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增标注
|
* 新增标注
|
||||||
|
|
@ -56,7 +45,7 @@ public class AirlineMarkerController extends BaseController {
|
||||||
marker.setCreateBy(SecurityUtils.getUserId().toString());
|
marker.setCreateBy(SecurityUtils.getUserId().toString());
|
||||||
marker.setUpdateBy(SecurityUtils.getUserId().toString());
|
marker.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||||
AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(marker);
|
AirlineMarkerDTO dto = AirlineMarkerControllerConvert.to(marker);
|
||||||
return toAjax(iAirlineMarkerService.insertMarker(dto));
|
return toAjax(iAirlineMarkerGroupInfoService.insertMarker(dto));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -68,18 +57,7 @@ public class AirlineMarkerController extends BaseController {
|
||||||
AirlineMarkerDTO dto = new AirlineMarkerDTO();
|
AirlineMarkerDTO dto = new AirlineMarkerDTO();
|
||||||
dto.setId(id);
|
dto.setId(id);
|
||||||
dto.setUpdateBy(SecurityUtils.getUserId().toString());
|
dto.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||||
return toAjax(iAirlineMarkerService.deleteMarker(dto));
|
return toAjax(iAirlineMarkerGroupInfoService.deleteMarker(dto));
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取标注详情
|
|
||||||
*/
|
|
||||||
@GetMapping("/{groupId}")
|
|
||||||
@Operation(summary = "按照空域分组查询所有的标准信息")
|
|
||||||
public AjaxResult getInfo(@PathVariable Long groupId) {
|
|
||||||
List<AirlineMarkerDTO> dto = iAirlineMarkerService.selectMarkerById(groupId);
|
|
||||||
List<AirlineMarkerVO> result = AirlineMarkerControllerConvert.fromList(dto);
|
|
||||||
return success(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -107,10 +85,65 @@ public class AirlineMarkerController extends BaseController {
|
||||||
if (markerIds == null || markerIds.isEmpty()) {
|
if (markerIds == null || markerIds.isEmpty()) {
|
||||||
return error("没有需要删除的标注");
|
return error("没有需要删除的标注");
|
||||||
}
|
}
|
||||||
int result = iAirlineMarkerService.batchDeleteMarker(markerIds);
|
int result = iAirlineMarkerGroupInfoService.batchDeleteMarker(markerIds);
|
||||||
if (result > 0) {
|
if (result > 0) {
|
||||||
return success("删除成功,共删除 " + result + " 个标注");
|
return success("删除成功,共删除 " + result + " 个标注");
|
||||||
}
|
}
|
||||||
return error("删除失败");
|
return error("删除失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户下所有可用标注
|
||||||
|
*/
|
||||||
|
@GetMapping("/user-available")
|
||||||
|
@Operation(summary = "获取用户下所有可用标注")
|
||||||
|
public AjaxResult getUserAvailableMarkers() {
|
||||||
|
List<AirlineMarkerDTO> dtoList = iAirlineMarkerGroupInfoService.selectUserAvailableMarkers();
|
||||||
|
List<AirlineMarkerVO> result = AirlineMarkerControllerConvert.fromList(dtoList);
|
||||||
|
return success(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取全部可用标注
|
||||||
|
*/
|
||||||
|
@GetMapping("/all-available")
|
||||||
|
@Operation(summary = "获取全部可用标注")
|
||||||
|
public AjaxResult getAllAvailableMarkers() {
|
||||||
|
List<AirlineMarkerDTO> dtoList = iAirlineMarkerGroupInfoService.selectAllAvailableMarkers();
|
||||||
|
List<AirlineMarkerVO> result = AirlineMarkerControllerConvert.fromList(dtoList);
|
||||||
|
return success(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取标注详情
|
||||||
|
*/
|
||||||
|
@GetMapping("/{groupId}")
|
||||||
|
@Operation(summary = "按照空域分组查询所有的标准信息")
|
||||||
|
public AjaxResult getInfo(@PathVariable Long groupId) {
|
||||||
|
List<AirlineMarkerDTO> dto = iAirlineMarkerGroupInfoService.selectMarkersByGroupId(groupId);
|
||||||
|
List<AirlineMarkerVO> result = AirlineMarkerControllerConvert.fromList(dto);
|
||||||
|
return success(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量移动分组的接口
|
||||||
|
*/
|
||||||
|
@PostMapping("/move/{targetGroupId}")
|
||||||
|
@Operation(summary = "批量移动标注到指定分组")
|
||||||
|
public AjaxResult batchMoveToGroup(@RequestBody List<Long> markerIds, @PathVariable("targetGroupId") Long targetGroupId) {
|
||||||
|
if (targetGroupId == null) {
|
||||||
|
return error("目标分组ID不能为空");
|
||||||
|
}
|
||||||
|
if (markerIds == null || markerIds.isEmpty()) {
|
||||||
|
return error("没有需要移动的标注");
|
||||||
|
}
|
||||||
|
int result = iAirlineMarkerGroupInfoService.batchMoveMarkersToGroup(markerIds, targetGroupId);
|
||||||
|
if (result > 0) {
|
||||||
|
return success("移动成功,共移动 " + result + " 个标注");
|
||||||
|
}
|
||||||
|
return error("移动失败");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.ruoyi.airline.service.api;
|
package com.ruoyi.airline.service.api;
|
||||||
|
|
||||||
|
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
||||||
import com.ruoyi.airline.service.dto.AirlineMarkerGroupInfoDTO;
|
import com.ruoyi.airline.service.dto.AirlineMarkerGroupInfoDTO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -11,13 +12,31 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface IAirlineMarkerGroupInfoService {
|
public interface IAirlineMarkerGroupInfoService {
|
||||||
|
|
||||||
int insertMarkerGroupInfo(AirlineMarkerGroupInfoDTO groupInfo);
|
int insertMarker(AirlineMarkerDTO dto);
|
||||||
|
|
||||||
int deleteMarkerGroupInfo(Long groupId, Long markerId);
|
int deleteMarker(AirlineMarkerDTO dto);
|
||||||
|
|
||||||
List<AirlineMarkerGroupInfoDTO> selectMarkerGroupInfoList(AirlineMarkerGroupInfoDTO dto);
|
int batchDeleteMarker(List<Long> markerIds);
|
||||||
|
|
||||||
List<Long> selectMarkerIdsByGroupId(Long groupId);
|
List<AirlineMarkerDTO> selectMarkersByGroupId(Long groupId);
|
||||||
|
|
||||||
int deleteByMarkerId(Long markerId);
|
/**
|
||||||
|
* 获取用户下所有可用标注
|
||||||
|
* @return 标注列表
|
||||||
|
*/
|
||||||
|
List<AirlineMarkerDTO> selectUserAvailableMarkers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取全部可用标注
|
||||||
|
* @return 标注列表
|
||||||
|
*/
|
||||||
|
List<AirlineMarkerDTO> selectAllAvailableMarkers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量移动标注到指定分组
|
||||||
|
* @param markerIds 标注ID列表
|
||||||
|
* @param targetGroupId 目标分组ID
|
||||||
|
* @return 移动成功的数量
|
||||||
|
*/
|
||||||
|
int batchMoveMarkersToGroup(List<Long> markerIds, Long targetGroupId);
|
||||||
}
|
}
|
||||||
|
|
@ -11,16 +11,7 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface IAirlineMarkerService {
|
public interface IAirlineMarkerService {
|
||||||
|
|
||||||
int insertMarker(AirlineMarkerDTO marker);
|
|
||||||
|
|
||||||
int updateMarker(AirlineMarkerDTO marker);
|
int updateMarker(AirlineMarkerDTO marker);
|
||||||
|
|
||||||
int deleteMarker(AirlineMarkerDTO dto);
|
|
||||||
|
|
||||||
List<AirlineMarkerDTO> selectMarkerList(AirlineMarkerDTO dto);
|
|
||||||
|
|
||||||
List<AirlineMarkerDTO> selectMarkerById(Long id);
|
|
||||||
|
|
||||||
|
|
||||||
int batchDeleteMarker(List<Long> markerIds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,19 @@
|
||||||
package com.ruoyi.airline.service.impl;
|
package com.ruoyi.airline.service.impl;
|
||||||
|
|
||||||
|
import com.ruoyi.airline.domain.api.IAirlineMarkerDomain;
|
||||||
import com.ruoyi.airline.domain.api.IAirlineMarkerGroupInfoDomain;
|
import com.ruoyi.airline.domain.api.IAirlineMarkerGroupInfoDomain;
|
||||||
|
import com.ruoyi.airline.domain.model.AirlineMarker;
|
||||||
import com.ruoyi.airline.domain.model.AirlineMarkerGroupInfo;
|
import com.ruoyi.airline.domain.model.AirlineMarkerGroupInfo;
|
||||||
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
||||||
import com.ruoyi.airline.service.convert.AirlineMarkerGroupInfoServiceConvert;
|
import com.ruoyi.airline.service.convert.AirlineMarkerServiceConvert;
|
||||||
import com.ruoyi.airline.service.dto.AirlineMarkerGroupInfoDTO;
|
import com.ruoyi.airline.service.dto.AirlineMarkerDTO;
|
||||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -26,35 +29,194 @@ public class AirlineMarkerGroupInfoServiceImpl implements IAirlineMarkerGroupInf
|
||||||
@Autowired
|
@Autowired
|
||||||
private IAirlineMarkerGroupInfoDomain iAirlineMarkerGroupInfoDomain;
|
private IAirlineMarkerGroupInfoDomain iAirlineMarkerGroupInfoDomain;
|
||||||
|
|
||||||
@Override
|
@Autowired
|
||||||
public int insertMarkerGroupInfo(AirlineMarkerGroupInfoDTO groupInfo) {
|
private IAirlineMarkerDomain iAirlineMarkerDomain;
|
||||||
AirlineMarkerGroupInfo model = AirlineMarkerGroupInfoServiceConvert.to(groupInfo);
|
|
||||||
return iAirlineMarkerGroupInfoDomain.insertMarkerGroupInfo(model);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int deleteMarkerGroupInfo(Long groupId, Long markerId) {
|
public int insertMarker(AirlineMarkerDTO dto) {
|
||||||
|
AirlineMarker model = AirlineMarkerServiceConvert.to(dto);
|
||||||
|
int result = iAirlineMarkerDomain.insertMarker(model);
|
||||||
|
|
||||||
|
// 处理分组关系
|
||||||
|
if (result > 0 && dto.getGroupId() != null) {
|
||||||
|
AirlineMarkerGroupInfo groupInfo = new AirlineMarkerGroupInfo();
|
||||||
|
groupInfo.setGroupId(dto.getGroupId());
|
||||||
|
groupInfo.setMarkerId(model.getId());
|
||||||
|
groupInfo.setCreateBy(dto.getCreateBy());
|
||||||
|
groupInfo.setUpdateBy(dto.getUpdateBy());
|
||||||
|
iAirlineMarkerGroupInfoDomain.insertMarkerGroupInfo(groupInfo);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int deleteMarker(AirlineMarkerDTO dto) {
|
||||||
|
AirlineMarker marker = AirlineMarkerServiceConvert.to(dto);
|
||||||
|
// 先删除分组关系
|
||||||
AirlineMarkerGroupInfo model = new AirlineMarkerGroupInfo();
|
AirlineMarkerGroupInfo model = new AirlineMarkerGroupInfo();
|
||||||
model.setGroupId(groupId);
|
// model.setGroupId(dto.getGroupId());
|
||||||
model.setMarkerId(markerId);
|
model.setMarkerId(dto.getId());
|
||||||
String userId = SecurityUtils.getUserId().toString();
|
String userId = SecurityUtils.getUserId().toString();
|
||||||
model.setDeletedBy(userId);
|
model.setDeletedBy(userId);
|
||||||
return iAirlineMarkerGroupInfoDomain.deleteMarkerGroupInfo(model);
|
iAirlineMarkerGroupInfoDomain.deleteMarkerGroupInfo(model);
|
||||||
|
|
||||||
|
// 再置失效
|
||||||
|
return iAirlineMarkerDomain.deleteMarker(marker);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int batchDeleteMarker(List<Long> markerIds) {
|
||||||
|
if (markerIds == null || markerIds.isEmpty()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int deletedCount = 0;
|
||||||
|
for (Long markerId : markerIds) {
|
||||||
|
|
||||||
|
// 先删除分组关系
|
||||||
|
AirlineMarkerGroupInfo model = new AirlineMarkerGroupInfo();
|
||||||
|
model.setMarkerId(markerId);
|
||||||
|
String userId = SecurityUtils.getUserId().toString();
|
||||||
|
model.setDeletedBy(userId);
|
||||||
|
iAirlineMarkerGroupInfoDomain.deleteMarkerGroupInfo(model);
|
||||||
|
|
||||||
|
// 再置失效
|
||||||
|
AirlineMarker marker = new AirlineMarker();
|
||||||
|
marker.setId(markerId);
|
||||||
|
marker.setUpdateBy(SecurityUtils.getUserId().toString());
|
||||||
|
int result = iAirlineMarkerDomain.deleteMarker(marker);
|
||||||
|
if (result > 0) {
|
||||||
|
deletedCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return deletedCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AirlineMarkerGroupInfoDTO> selectMarkerGroupInfoList(AirlineMarkerGroupInfoDTO dto) {
|
public List<AirlineMarkerDTO> selectMarkersByGroupId(Long groupId) {
|
||||||
AirlineMarkerGroupInfo model = AirlineMarkerGroupInfoServiceConvert.to(dto);
|
// 先获取该分组下的所有标注ID
|
||||||
return AirlineMarkerGroupInfoServiceConvert.fromList(iAirlineMarkerGroupInfoDomain.selectMarkerGroupInfoList(model));
|
List<Long> markerIds = iAirlineMarkerGroupInfoDomain.selectMarkerIdsByGroupId(groupId);
|
||||||
|
if (markerIds == null || markerIds.isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
// 根据ID列表查询标注详情
|
||||||
|
List<AirlineMarker> markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds);
|
||||||
|
// 转换为DTO并返回
|
||||||
|
return AirlineMarkerServiceConvert.fromList(markers);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Long> selectMarkerIdsByGroupId(Long groupId) {
|
public List<AirlineMarkerDTO> selectUserAvailableMarkers() {
|
||||||
return iAirlineMarkerGroupInfoDomain.selectMarkerIdsByGroupId(groupId);
|
// 先获取所有未被删除的标注分组关系
|
||||||
|
AirlineMarkerGroupInfo groupInfo = new AirlineMarkerGroupInfo();
|
||||||
|
// 只查询未被删除的记录(deletedBy 为 null)
|
||||||
|
List<AirlineMarkerGroupInfo> groupInfos = iAirlineMarkerGroupInfoDomain.selectMarkerGroupInfoList(groupInfo);
|
||||||
|
|
||||||
|
if (groupInfos == null || groupInfos.isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取标注ID列表
|
||||||
|
List<Long> markerIds = groupInfos.stream()
|
||||||
|
.map(AirlineMarkerGroupInfo::getMarkerId)
|
||||||
|
.distinct()
|
||||||
|
.collect(java.util.stream.Collectors.toList());
|
||||||
|
|
||||||
|
if (markerIds.isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据标注ID列表查询标注详情
|
||||||
|
List<AirlineMarker> markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds);
|
||||||
|
|
||||||
|
if (markers == null || markers.isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 过滤出当前用户创建的且启用的标注
|
||||||
|
String currentUserId = SecurityUtils.getUserId().toString();
|
||||||
|
List<AirlineMarkerDTO> availableMarkers = new ArrayList<>();
|
||||||
|
for (AirlineMarker airlineMarker : markers) {
|
||||||
|
if (currentUserId.equals(airlineMarker.getCreateBy()) && airlineMarker.getStatus() == 1) {
|
||||||
|
availableMarkers.add(AirlineMarkerServiceConvert.from(airlineMarker));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return availableMarkers;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int deleteByMarkerId(Long markerId) {
|
public List<AirlineMarkerDTO> selectAllAvailableMarkers() {
|
||||||
return iAirlineMarkerGroupInfoDomain.deleteByMarkerId(markerId);
|
// 先获取所有未被删除的标注分组关系
|
||||||
|
AirlineMarkerGroupInfo groupInfo = new AirlineMarkerGroupInfo();
|
||||||
|
// 只查询未被删除的记录(deletedBy 为 null)
|
||||||
|
List<AirlineMarkerGroupInfo> groupInfos = iAirlineMarkerGroupInfoDomain.selectMarkerGroupInfoList(groupInfo);
|
||||||
|
|
||||||
|
if (groupInfos == null || groupInfos.isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取标注ID列表
|
||||||
|
List<Long> markerIds = groupInfos.stream()
|
||||||
|
.map(AirlineMarkerGroupInfo::getMarkerId)
|
||||||
|
.distinct()
|
||||||
|
.collect(java.util.stream.Collectors.toList());
|
||||||
|
|
||||||
|
if (markerIds.isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据标注ID列表查询标注详情
|
||||||
|
List<AirlineMarker> markers = iAirlineMarkerDomain.selectMarkerListByIds(markerIds);
|
||||||
|
|
||||||
|
if (markers == null || markers.isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 过滤出启用的标注
|
||||||
|
List<AirlineMarkerDTO> availableMarkers = new ArrayList<>();
|
||||||
|
for (AirlineMarker airlineMarker : markers) {
|
||||||
|
if (airlineMarker.getStatus() == 1) {
|
||||||
|
availableMarkers.add(AirlineMarkerServiceConvert.from(airlineMarker));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return availableMarkers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int batchMoveMarkersToGroup(List<Long> markerIds, Long targetGroupId) {
|
||||||
|
if (markerIds == null || markerIds.isEmpty() || targetGroupId == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int movedCount = 0;
|
||||||
|
String currentUserId = SecurityUtils.getUserId().toString();
|
||||||
|
|
||||||
|
for (Long markerId : markerIds) {
|
||||||
|
// 先删除旧的分组关系
|
||||||
|
AirlineMarkerGroupInfo oldGroupInfo = new AirlineMarkerGroupInfo();
|
||||||
|
oldGroupInfo.setMarkerId(markerId);
|
||||||
|
oldGroupInfo.setDeletedBy(currentUserId);
|
||||||
|
iAirlineMarkerGroupInfoDomain.deleteMarkerGroupInfo(oldGroupInfo);
|
||||||
|
|
||||||
|
// 然后创建新的分组关系
|
||||||
|
AirlineMarkerGroupInfo newGroupInfo = new AirlineMarkerGroupInfo();
|
||||||
|
newGroupInfo.setGroupId(targetGroupId);
|
||||||
|
newGroupInfo.setMarkerId(markerId);
|
||||||
|
newGroupInfo.setCreateBy(currentUserId);
|
||||||
|
newGroupInfo.setUpdateBy(currentUserId);
|
||||||
|
|
||||||
|
int result = iAirlineMarkerGroupInfoDomain.insertMarkerGroupInfo(newGroupInfo);
|
||||||
|
if (result > 0) {
|
||||||
|
movedCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return movedCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
package com.ruoyi.airline.service.impl;
|
package com.ruoyi.airline.service.impl;
|
||||||
|
|
||||||
import com.ruoyi.airline.domain.api.IAirlineMarkerDomain;
|
import com.ruoyi.airline.domain.api.IAirlineMarkerDomain;
|
||||||
|
import com.ruoyi.airline.domain.api.IAirlineMarkerGroupInfoDomain;
|
||||||
import com.ruoyi.airline.domain.model.AirlineMarker;
|
import com.ruoyi.airline.domain.model.AirlineMarker;
|
||||||
|
import com.ruoyi.airline.domain.model.AirlineMarkerGroupInfo;
|
||||||
import com.ruoyi.airline.service.api.IAirlineMarkerService;
|
import com.ruoyi.airline.service.api.IAirlineMarkerService;
|
||||||
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
import com.ruoyi.airline.service.api.IAirlineMarkerGroupInfoService;
|
||||||
import com.ruoyi.airline.service.convert.AirlineMarkerServiceConvert;
|
import com.ruoyi.airline.service.convert.AirlineMarkerServiceConvert;
|
||||||
|
|
@ -29,26 +31,7 @@ public class AirlineMarkerServiceImpl implements IAirlineMarkerService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private IAirlineMarkerDomain iAirlineMarkerDomain;
|
private IAirlineMarkerDomain iAirlineMarkerDomain;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IAirlineMarkerGroupInfoService iAirlineMarkerGroupInfoService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int insertMarker(AirlineMarkerDTO dto) {
|
|
||||||
AirlineMarker model = AirlineMarkerServiceConvert.to(dto);
|
|
||||||
int result = iAirlineMarkerDomain.insertMarker(model);
|
|
||||||
|
|
||||||
// 处理分组关系
|
|
||||||
if (result > 0 && dto.getGroupId() != null) {
|
|
||||||
AirlineMarkerGroupInfoDTO groupInfo = new AirlineMarkerGroupInfoDTO();
|
|
||||||
groupInfo.setGroupId(dto.getGroupId());
|
|
||||||
groupInfo.setMarkerId(model.getId());
|
|
||||||
groupInfo.setCreateBy(dto.getCreateBy());
|
|
||||||
groupInfo.setUpdateBy(dto.getUpdateBy());
|
|
||||||
iAirlineMarkerGroupInfoService.insertMarkerGroupInfo(groupInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int updateMarker(AirlineMarkerDTO dto) {
|
public int updateMarker(AirlineMarkerDTO dto) {
|
||||||
|
|
@ -56,64 +39,5 @@ public class AirlineMarkerServiceImpl implements IAirlineMarkerService {
|
||||||
return iAirlineMarkerDomain.updateMarker(model);
|
return iAirlineMarkerDomain.updateMarker(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int deleteMarker(AirlineMarkerDTO dto) {
|
|
||||||
AirlineMarker marker = AirlineMarkerServiceConvert.to(dto);
|
|
||||||
// 先删除分组关系
|
|
||||||
iAirlineMarkerGroupInfoService.deleteMarkerGroupInfo(dto.getGroupId(), dto.getId());
|
|
||||||
// 再置失效
|
|
||||||
return iAirlineMarkerDomain.deleteMarker(marker);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<AirlineMarkerDTO> selectMarkerList(AirlineMarkerDTO dto) {
|
|
||||||
// TODO 需要修改为查所有生效的
|
|
||||||
AirlineMarker marker = AirlineMarkerServiceConvert.to(dto);
|
|
||||||
List<AirlineMarker> airlineMarker = iAirlineMarkerDomain.selectMarkerList(marker);
|
|
||||||
return AirlineMarkerServiceConvert.fromList(airlineMarker);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<AirlineMarkerDTO> selectMarkerById(Long groupId) {
|
|
||||||
AirlineMarkerGroupInfoDTO groupInfoDTO = new AirlineMarkerGroupInfoDTO();
|
|
||||||
groupInfoDTO.setGroupId(groupId);
|
|
||||||
List<AirlineMarkerGroupInfoDTO> groupInfos = iAirlineMarkerGroupInfoService.selectMarkerGroupInfoList(groupInfoDTO);
|
|
||||||
List<AirlineMarkerDTO> result= new ArrayList<>();
|
|
||||||
for (AirlineMarkerGroupInfoDTO groupInfo : groupInfos) {
|
|
||||||
AirlineMarker model = iAirlineMarkerDomain.selectMarkerById(groupInfo.getMarkerId());
|
|
||||||
AirlineMarkerDTO dto = AirlineMarkerServiceConvert.from(model);
|
|
||||||
dto.setGroupId(groupId);
|
|
||||||
result.add(dto);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int batchDeleteMarker(List<Long> markerIds) {
|
|
||||||
if (markerIds == null || markerIds.isEmpty()) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int deletedCount = 0;
|
|
||||||
for (Long markerId : markerIds) {
|
|
||||||
|
|
||||||
// 先删除分组关系
|
|
||||||
iAirlineMarkerGroupInfoService.deleteByMarkerId(markerId);
|
|
||||||
|
|
||||||
// 再置失效
|
|
||||||
AirlineMarker marker = new AirlineMarker();
|
|
||||||
marker.setId(markerId);
|
|
||||||
marker.setUpdateBy(SecurityUtils.getUserId().toString());
|
|
||||||
int result = iAirlineMarkerDomain.deleteMarker(marker);
|
|
||||||
if (result > 0) {
|
|
||||||
deletedCount++;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return deletedCount;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue