From 3ed1ee554992a205b75e15d5f00127151277246f Mon Sep 17 00:00:00 2001 From: rdpnr_puzhi <13060209078@163.com> Date: Wed, 13 Aug 2025 16:24:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=90=8E=E7=AB=AF):=20=E8=81=94=E8=B0=83?= =?UTF-8?q?=E4=BF=AE=E6=94=B910?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DeviceImageMappingController.java | 13 ++++++++- .../DeviceUserMappingController.java | 13 ++++++++- .../project/entity/res/ListReq.java | 8 ++++++ .../service/impl/ClientServiceImpl.java | 28 +++++++++++-------- .../impl/DeviceUserMappingServiceImpl.java | 14 ++++++++-- 5 files changed, 59 insertions(+), 17 deletions(-) diff --git a/nex-be/src/main/java/com/unisinsight/project/controller/DeviceImageMappingController.java b/nex-be/src/main/java/com/unisinsight/project/controller/DeviceImageMappingController.java index 90c4451..d649df0 100644 --- a/nex-be/src/main/java/com/unisinsight/project/controller/DeviceImageMappingController.java +++ b/nex-be/src/main/java/com/unisinsight/project/controller/DeviceImageMappingController.java @@ -14,6 +14,7 @@ import com.unisinsight.project.service.DeviceImageMappingService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -47,10 +48,20 @@ public class DeviceImageMappingController { } log.info("终端镜像映射新增请求参数为:{}", JSONUtil.toJsonStr(deviceImageMappingReq)); + QueryWrapper wrapper = new QueryWrapper<>(); + if (CollectionUtil.isEmpty(deviceImageMappingReq.getData()) && ObjectUtils.isNotEmpty(deviceImageMappingReq.getDeviceId())) { + wrapper.lambda().eq(DeviceImageMapping::getDeviceId, deviceImageMappingReq.getDeviceId()); + List list = deviceImageMappingService.list(wrapper); + List collect = list.stream().map(DeviceImageMapping::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(collect)) { + boolean removedByIds = deviceImageMappingService.removeByIds(collect); + log.info("终端镜像映射新增接口删除了 {} 条旧数据,ID列表: {}", removedByIds, collect); + } + return Result.successResult(); + } List reqData = deviceImageMappingReq.getData(); List addList = reqData.stream().distinct().filter(e -> Objects.isNull(e.getId())).collect(Collectors.toList()); - QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(DeviceImageMapping::getDeviceId, reqData.get(0).getDeviceId()); List list = deviceImageMappingService.list(wrapper); diff --git a/nex-be/src/main/java/com/unisinsight/project/controller/DeviceUserMappingController.java b/nex-be/src/main/java/com/unisinsight/project/controller/DeviceUserMappingController.java index 99accc7..9d39f03 100644 --- a/nex-be/src/main/java/com/unisinsight/project/controller/DeviceUserMappingController.java +++ b/nex-be/src/main/java/com/unisinsight/project/controller/DeviceUserMappingController.java @@ -14,6 +14,7 @@ import com.unisinsight.project.service.DeviceUserMappingService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -46,10 +47,20 @@ public class DeviceUserMappingController { return Result.errorResult(BaseErrorCode.PARAMETERS_INVALID); } log.info("终端用户映射新增请求参数为:{}", JSONUtil.toJsonStr(deviceUserMappingReq)); + QueryWrapper wrapper = new QueryWrapper<>(); + if (CollectionUtil.isEmpty(deviceUserMappingReq.getData()) && ObjectUtils.isNotEmpty(deviceUserMappingReq.getDeviceId())) { + wrapper.lambda().eq(DeviceUserMapping::getDeviceId, deviceUserMappingReq.getDeviceId()); + List list = deviceUserMappingService.list(wrapper); + List collect = list.stream().map(DeviceUserMapping::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(collect)) { + boolean removedByIds = deviceUserMappingService.removeByIds(collect); + log.info("终端用户映射新增接口删除了 {} 条旧数据,ID列表: {}", removedByIds, collect); + } + return Result.successResult(); + } List userMappingReqData = deviceUserMappingReq.getData(); List addList = userMappingReqData.stream().distinct().filter(e -> Objects.isNull(e.getId())).collect(Collectors.toList()); - QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(DeviceUserMapping::getDeviceId, userMappingReqData.get(0).getDeviceId()); List list = deviceUserMappingService.list(wrapper); diff --git a/nex-be/src/main/java/com/unisinsight/project/entity/res/ListReq.java b/nex-be/src/main/java/com/unisinsight/project/entity/res/ListReq.java index ea22a18..321c585 100644 --- a/nex-be/src/main/java/com/unisinsight/project/entity/res/ListReq.java +++ b/nex-be/src/main/java/com/unisinsight/project/entity/res/ListReq.java @@ -20,4 +20,12 @@ public class ListReq { @JsonProperty("data") private List data; + /** + * 序列号 + */ + @ApiModelProperty("序列号") + @JsonProperty("device_id") + private String deviceId; + + } diff --git a/nex-be/src/main/java/com/unisinsight/project/service/impl/ClientServiceImpl.java b/nex-be/src/main/java/com/unisinsight/project/service/impl/ClientServiceImpl.java index db5c29e..c68772d 100644 --- a/nex-be/src/main/java/com/unisinsight/project/service/impl/ClientServiceImpl.java +++ b/nex-be/src/main/java/com/unisinsight/project/service/impl/ClientServiceImpl.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.unisinsight.project.entity.dao.DeviceImageMapping; import com.unisinsight.project.entity.dao.Image; import com.unisinsight.project.entity.res.ImageRes; -import com.unisinsight.project.exception.BaseErrorCode; import com.unisinsight.project.exception.Result; import com.unisinsight.project.mapper.DeviceImageMappingMapper; import com.unisinsight.project.mapper.ImageMapper; @@ -18,6 +17,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -44,12 +44,13 @@ public class ClientServiceImpl implements ClientService { @Override public Result getImageList(String deviceId, String token) { - + HashMap hashMap = new HashMap<>(); QueryWrapper deviceImageMappingQueryWrapper = new QueryWrapper<>(); deviceImageMappingQueryWrapper.lambda().eq(DeviceImageMapping::getDeviceId, deviceId); List deviceImageMappings = deviceImageMappingMapper.selectList(deviceImageMappingQueryWrapper); if (CollectionUtil.isEmpty(deviceImageMappings)) { - return Result.errorResultMessage(BaseErrorCode.PARAMS_CHK_ERROR, "请先配置终端镜像"); + hashMap.put("list", new ArrayList<>()); + return Result.successResult(hashMap); } List imageIdList = deviceImageMappings.stream().map(DeviceImageMapping::getImageId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(imageIdList)) { @@ -59,25 +60,28 @@ public class ClientServiceImpl implements ClientService { log.info("用户登录查询镜像结果:{}", JSONUtil.toJsonStr(images)); List imageRes = BeanUtil.copyToList(images, ImageRes.class); List> collect = imageRes.stream().distinct().map(e -> { - HashMap hashMap = new HashMap<>(); + HashMap map = new HashMap<>(); if (StringUtils.isNotBlank(e.getImageName())) { - hashMap.put("name", e.getImageName()); + map.put("name", e.getImageName()); } if (StringUtils.isNotBlank(e.getBtPath())) { if (e.getBtPath().contains("http://") || e.getBtPath().contains("https://")) { - hashMap.put("torrent", e.getBtPath()); + map.put("torrent", e.getBtPath()); } else { String fileName = e.getBtPath().substring(Math.max(e.getBtPath().lastIndexOf("\\"), e.getBtPath().lastIndexOf("/")) + 1); - hashMap.put("torrent", btUrl + "/api/vdi/file/down/" + fileName); + map.put("torrent", btUrl + "/api/vdi/file/down/" + fileName); } } - return hashMap; + return map; }).collect(Collectors.toList()); - HashMap hashMap = new HashMap<>(); - hashMap.put("list", collect); - return Result.successResult(hashMap); + + if (CollectionUtil.isNotEmpty(collect)) { + hashMap.put("list", collect); + } else { + hashMap.put("list", new ArrayList<>()); + } } - return Result.successResult(); + return Result.successResult(hashMap); } } diff --git a/nex-be/src/main/java/com/unisinsight/project/service/impl/DeviceUserMappingServiceImpl.java b/nex-be/src/main/java/com/unisinsight/project/service/impl/DeviceUserMappingServiceImpl.java index 8e9dcaf..deba327 100644 --- a/nex-be/src/main/java/com/unisinsight/project/service/impl/DeviceUserMappingServiceImpl.java +++ b/nex-be/src/main/java/com/unisinsight/project/service/impl/DeviceUserMappingServiceImpl.java @@ -119,12 +119,20 @@ public class DeviceUserMappingServiceImpl extends ServiceImpl loginUser(DeviceUserReq deviceUserReq) { + + QueryWrapper userQueryWrapper = new QueryWrapper<>(); + userQueryWrapper.lambda().in(User::getUserName, deviceUserReq.getUserName()); + List userList1 = userMapper.selectList(userQueryWrapper); + log.info("登录查询用户结果:{}", JSONUtil.toJsonStr(userList1)); + if (CollectionUtil.isEmpty(userList1)) { + return Result.errorResultMessage(BaseErrorCode.PARAMS_CHK_ERROR, "用户不存在"); + } QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(DeviceUserMapping::getDeviceId, deviceUserReq.getDeviceId()); List deviceUserMappings = deviceUserMappingMapper.selectList(wrapper); log.info("用户登录查询映射结果:{}", JSONUtil.toJsonStr(deviceUserMappings)); - List users = new ArrayList<>(); + List users = new ArrayList<>(); List userIdList = deviceUserMappings.stream().map(DeviceUserMapping::getUserId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); log.info("用户登录查询用户id结果:{}", JSONUtil.toJsonStr(userIdList)); if (CollectionUtil.isNotEmpty(userIdList)) { @@ -152,11 +160,11 @@ public class DeviceUserMappingServiceImpl extends ServiceImpl