feat(后端): 联调修改
parent
f95d382c30
commit
725932dfc2
|
@ -1,20 +1,24 @@
|
||||||
package com.unisinsight.project.controller;
|
package com.unisinsight.project.controller;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.unisinsight.project.entity.req.DeviceReq;
|
||||||
import com.unisinsight.project.entity.req.DeviceUserReq;
|
import com.unisinsight.project.entity.req.DeviceUserReq;
|
||||||
import com.unisinsight.project.entity.res.ImageRes;
|
import com.unisinsight.project.entity.req.LoginReq;
|
||||||
import com.unisinsight.project.exception.BaseErrorCode;
|
import com.unisinsight.project.exception.BaseErrorCode;
|
||||||
import com.unisinsight.project.exception.Result;
|
import com.unisinsight.project.exception.Result;
|
||||||
import com.unisinsight.project.service.ClientService;
|
import com.unisinsight.project.service.ClientService;
|
||||||
|
import com.unisinsight.project.service.DeviceService;
|
||||||
import com.unisinsight.project.service.DeviceUserMappingService;
|
import com.unisinsight.project.service.DeviceUserMappingService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
@ -35,52 +39,77 @@ public class ClientController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DeviceUserMappingService deviceUserMappingService;
|
private DeviceUserMappingService deviceUserMappingService;
|
||||||
|
@Resource
|
||||||
|
private DeviceService deviceService;
|
||||||
|
|
||||||
@ApiOperation(value = "用户认证")
|
@ApiOperation(value = "用户认证")
|
||||||
@PostMapping("/auth")
|
@PostMapping("/authentication")
|
||||||
public Result<List<ImageRes>> authentication(@RequestParam("deviceId") String deviceId) {
|
public Result<?> authentication(@RequestBody LoginReq loginReq) {
|
||||||
if (Objects.isNull(deviceId)) {
|
if (Objects.isNull(loginReq)) {
|
||||||
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
||||||
}
|
}
|
||||||
log.info("用户认证请求参数为:{}", deviceId);
|
log.info("用户认证请求参数为:{}", JSONUtil.toJsonStr(loginReq));
|
||||||
return Result.successResult();
|
DeviceReq deviceReq = new DeviceReq();
|
||||||
|
deviceReq.setDeviceId(loginReq.getDeviceId());
|
||||||
|
deviceReq.setDeviceName("默认终端");
|
||||||
|
deviceReq.setDeviceGroupId(3L);
|
||||||
|
deviceReq.setDeviceGroupName("默认终端分组");
|
||||||
|
return deviceService.insert(deviceReq);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "用户登录")
|
@ApiOperation(value = "用户登录")
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
public Result<?> loginUser(@RequestParam("deviceId") String deviceId,
|
public Result<?> loginUser(@RequestBody LoginReq loginReq) {
|
||||||
@RequestParam("username") String username,
|
if (Objects.isNull(loginReq)) {
|
||||||
@RequestParam("password") String password) {
|
|
||||||
if (Objects.isNull(deviceId) || Objects.isNull(username) || Objects.isNull(password)) {
|
|
||||||
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
||||||
}
|
}
|
||||||
log.info("用户登录请求参数为,deviceId:{},username:{},password:{}", deviceId, username, password);
|
log.info("用户登录请求参数为:{}", JSONUtil.toJsonStr(loginReq));
|
||||||
DeviceUserReq deviceUserReq = new DeviceUserReq();
|
DeviceUserReq deviceUserReq = new DeviceUserReq();
|
||||||
deviceUserReq.setDeviceId(deviceId);
|
deviceUserReq.setDeviceId(loginReq.getDeviceId());
|
||||||
deviceUserReq.setUserName(username);
|
deviceUserReq.setUserName(loginReq.getUsername());
|
||||||
deviceUserReq.setPassword(password);
|
deviceUserReq.setPassword(loginReq.getPassword());
|
||||||
return deviceUserMappingService.loginUser(deviceUserReq);
|
//todo 后面再调
|
||||||
|
// Result<?> result = deviceUserMappingService.loginUser(deviceUserReq);
|
||||||
|
HashMap<String, Object> hashMap = new HashMap<>();
|
||||||
|
hashMap.put("token", "123456");
|
||||||
|
return Result.successResult(hashMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取镜像列表")
|
@ApiOperation(value = "获取镜像列表")
|
||||||
@PostMapping("/getImageList")
|
@PostMapping("/getImageList")
|
||||||
public Result<?> getImageList(@RequestParam("deviceId") String deviceId,
|
public Result<?> getImageList(@RequestBody LoginReq loginReq) {
|
||||||
@RequestParam("token") String token) {
|
if (Objects.isNull(loginReq)) {
|
||||||
if (Objects.isNull(deviceId) || Objects.isNull(token)) {
|
|
||||||
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
||||||
}
|
}
|
||||||
log.info("获取镜像列表请求参数为,deviceId:{},token:{}", deviceId, token);
|
log.info("获取镜像列表请求参数为:{}", JSONUtil.toJsonStr(loginReq));
|
||||||
|
|
||||||
return clientService.getImageList(deviceId, token);
|
// Result<?> imageList = clientService.getImageList(loginReq.getDeviceId(), loginReq.getToken());
|
||||||
|
List<HashMap<String, Object>> hashMaps = new ArrayList<>();
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
map.put("name", "ubuntu-20.04.6-desktop-amd64.iso");
|
||||||
|
map.put("torrent", "https://releases.ubuntu.com/20.04.6/ubuntu-20.04.6-desktop-amd64.iso.torrent");
|
||||||
|
hashMaps.add(map);
|
||||||
|
HashMap<String, Object> map1 = new HashMap<>();
|
||||||
|
map1.put("name", "uos_nbd_20250806.qcow2");
|
||||||
|
map1.put("torrent", "http://10.100.51.86:8114/api/vdi/file/down/win10_v2307_uefi_demo.vhdx.torrent");
|
||||||
|
hashMaps.add(map1);
|
||||||
|
HashMap<String, Object> map2 = new HashMap<>();
|
||||||
|
map2.put("name", "win10_v2307_uefi_demo.vhdx");
|
||||||
|
map2.put("torrent", "http://10.100.51.86:8114/api/vdi/file/down/win10_v2307_uefi_demo.vhdx.torrent");
|
||||||
|
hashMaps.add(map2);
|
||||||
|
|
||||||
|
HashMap<String, Object> hashMap = new HashMap<>();
|
||||||
|
hashMap.put("list", hashMaps);
|
||||||
|
return Result.successResult(hashMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "版本更新")
|
@ApiOperation(value = "版本更新")
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
public Result<?> getImageUpdate(@RequestParam("deviceId") String deviceId) {
|
public Result<?> getImageUpdate(@RequestBody LoginReq loginReq) {
|
||||||
if (Objects.isNull(deviceId)) {
|
if (Objects.isNull(loginReq)) {
|
||||||
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
||||||
}
|
}
|
||||||
log.info("获取镜像列表请求参数为,deviceId:{}", deviceId);
|
log.info("版本更新请求参数为:{}", JSONUtil.toJsonStr(loginReq));
|
||||||
HashMap<String, Object> hashMap = new HashMap<>();
|
HashMap<String, Object> hashMap = new HashMap<>();
|
||||||
hashMap.put("version", "1.0.0");
|
hashMap.put("version", "1.0.0");
|
||||||
hashMap.put("url", "https://intent-bathhouse.name");
|
hashMap.put("url", "https://intent-bathhouse.name");
|
||||||
|
|
|
@ -1,8 +1,13 @@
|
||||||
package com.unisinsight.project.controller;
|
package com.unisinsight.project.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.unisinsight.project.entity.dao.DeviceImageMapping;
|
||||||
import com.unisinsight.project.entity.req.DeviceImageMappingReq;
|
import com.unisinsight.project.entity.req.DeviceImageMappingReq;
|
||||||
import com.unisinsight.project.entity.res.DeviceImageMappingRes;
|
import com.unisinsight.project.entity.res.DeviceImageMappingRes;
|
||||||
|
import com.unisinsight.project.entity.res.ListReq;
|
||||||
import com.unisinsight.project.exception.BaseErrorCode;
|
import com.unisinsight.project.exception.BaseErrorCode;
|
||||||
import com.unisinsight.project.exception.Result;
|
import com.unisinsight.project.exception.Result;
|
||||||
import com.unisinsight.project.service.DeviceImageMappingService;
|
import com.unisinsight.project.service.DeviceImageMappingService;
|
||||||
|
@ -17,6 +22,8 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description:
|
* @description:
|
||||||
|
@ -34,12 +41,50 @@ public class DeviceImageMappingController {
|
||||||
|
|
||||||
@ApiOperation(value = "终端镜像映射新增")
|
@ApiOperation(value = "终端镜像映射新增")
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
public Result<?> insert(@RequestBody DeviceImageMappingReq deviceImageMappingReq) {
|
public Result<?> insert(@RequestBody ListReq<DeviceImageMappingReq> deviceImageMappingReq) {
|
||||||
if (Objects.isNull(deviceImageMappingReq)) {
|
if (Objects.isNull(deviceImageMappingReq.getData())) {
|
||||||
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
||||||
}
|
}
|
||||||
log.info("终端镜像映射新增请求参数为:{}", JSONUtil.toJsonStr(deviceImageMappingReq));
|
log.info("终端镜像映射新增请求参数为:{}", JSONUtil.toJsonStr(deviceImageMappingReq));
|
||||||
return deviceImageMappingService.insert(deviceImageMappingReq);
|
|
||||||
|
List<DeviceImageMappingReq> reqData = deviceImageMappingReq.getData();
|
||||||
|
List<DeviceImageMappingReq> addList = reqData.stream().filter(e -> Objects.isNull(e.getId())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
QueryWrapper<DeviceImageMapping> wrapper = new QueryWrapper<>();
|
||||||
|
wrapper.lambda().eq(DeviceImageMapping::getDeviceId, reqData.get(0).getDeviceId());
|
||||||
|
List<DeviceImageMapping> list = deviceImageMappingService.list(wrapper);
|
||||||
|
|
||||||
|
if (CollectionUtil.isNotEmpty(list)) {
|
||||||
|
Set<Long> requestIds = reqData.stream()
|
||||||
|
.map(DeviceImageMappingReq::getId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
List<Long> idsToDelete = list.stream()
|
||||||
|
.map(DeviceImageMapping::getId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.filter(id -> !requestIds.contains(id))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (CollectionUtil.isNotEmpty(idsToDelete)) {
|
||||||
|
deviceImageMappingService.removeByIds(idsToDelete);
|
||||||
|
log.info("删除了 {} 条不匹配的旧数据,ID列表: {}", idsToDelete.size(), idsToDelete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CollectionUtil.isNotEmpty(addList)) {
|
||||||
|
List<DeviceImageMapping> deviceImageMappings = BeanUtil.copyToList(addList, DeviceImageMapping.class);
|
||||||
|
List<DeviceImageMapping> deviceImageMappingList = deviceImageMappings.stream().peek(e -> {
|
||||||
|
e.setCreateUser("admin");
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
boolean insert = deviceImageMappingService.saveBatch(deviceImageMappingList);
|
||||||
|
log.info("终端镜像映射新增insert:{}", insert);
|
||||||
|
if (!insert) {
|
||||||
|
return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.successResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "终端镜像映射查询")
|
@ApiOperation(value = "终端镜像映射查询")
|
||||||
|
|
|
@ -1,8 +1,13 @@
|
||||||
package com.unisinsight.project.controller;
|
package com.unisinsight.project.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.unisinsight.project.entity.dao.DeviceUserMapping;
|
||||||
import com.unisinsight.project.entity.req.DeviceUserMappingReq;
|
import com.unisinsight.project.entity.req.DeviceUserMappingReq;
|
||||||
import com.unisinsight.project.entity.res.DeviceUserMappingRes;
|
import com.unisinsight.project.entity.res.DeviceUserMappingRes;
|
||||||
|
import com.unisinsight.project.entity.res.ListReq;
|
||||||
import com.unisinsight.project.exception.BaseErrorCode;
|
import com.unisinsight.project.exception.BaseErrorCode;
|
||||||
import com.unisinsight.project.exception.Result;
|
import com.unisinsight.project.exception.Result;
|
||||||
import com.unisinsight.project.service.DeviceUserMappingService;
|
import com.unisinsight.project.service.DeviceUserMappingService;
|
||||||
|
@ -17,6 +22,8 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: DeviceUserMappingController
|
* @description: DeviceUserMappingController
|
||||||
|
@ -34,12 +41,48 @@ public class DeviceUserMappingController {
|
||||||
|
|
||||||
@ApiOperation(value = "终端用户映射新增")
|
@ApiOperation(value = "终端用户映射新增")
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
public Result<?> insert(@RequestBody DeviceUserMappingReq deviceUserMappingReq) {
|
public Result<?> insert(@RequestBody ListReq<DeviceUserMappingReq> deviceUserMappingReq) {
|
||||||
if (Objects.isNull(deviceUserMappingReq)) {
|
if (Objects.isNull(deviceUserMappingReq.getData())) {
|
||||||
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
return Result.errorResult(BaseErrorCode.PARAMETERS_INVALID);
|
||||||
}
|
}
|
||||||
log.info("终端用户映射新增请求参数为:{}", JSONUtil.toJsonStr(deviceUserMappingReq));
|
log.info("终端用户映射新增请求参数为:{}", JSONUtil.toJsonStr(deviceUserMappingReq));
|
||||||
return deviceUserMappingService.insert(deviceUserMappingReq);
|
List<DeviceUserMappingReq> userMappingReqData = deviceUserMappingReq.getData();
|
||||||
|
List<DeviceUserMappingReq> addList = userMappingReqData.stream().filter(e -> Objects.isNull(e.getId())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
QueryWrapper<DeviceUserMapping> wrapper = new QueryWrapper<>();
|
||||||
|
wrapper.lambda().eq(DeviceUserMapping::getDeviceId, userMappingReqData.get(0).getDeviceId());
|
||||||
|
List<DeviceUserMapping> list = deviceUserMappingService.list(wrapper);
|
||||||
|
|
||||||
|
if (CollectionUtil.isNotEmpty(list)) {
|
||||||
|
Set<Long> requestIds = userMappingReqData.stream()
|
||||||
|
.map(DeviceUserMappingReq::getId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
List<Long> idsToDelete = list.stream()
|
||||||
|
.map(DeviceUserMapping::getId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.filter(id -> !requestIds.contains(id))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (CollectionUtil.isNotEmpty(idsToDelete)) {
|
||||||
|
deviceUserMappingService.removeByIds(idsToDelete);
|
||||||
|
log.info("删除了 {} 条不匹配的旧数据,ID列表: {}", idsToDelete.size(), idsToDelete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CollectionUtil.isNotEmpty(addList)) {
|
||||||
|
List<DeviceUserMapping> deviceUserMappings = BeanUtil.copyToList(addList, DeviceUserMapping.class);
|
||||||
|
List<DeviceUserMapping> deviceUserMapping = deviceUserMappings.stream().peek(e -> {
|
||||||
|
e.setCreateUser("admin");
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
boolean insert = deviceUserMappingService.saveBatch(deviceUserMapping);
|
||||||
|
log.info("终端用户映射新增insert:{}", insert);
|
||||||
|
if (!insert) {
|
||||||
|
return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.successResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "终端用户映射查询")
|
@ApiOperation(value = "终端用户映射查询")
|
||||||
|
@ -53,5 +96,4 @@ public class DeviceUserMappingController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
package com.unisinsight.project.controller;
|
package com.unisinsight.project.controller;
|
||||||
|
|
||||||
import com.unisinsight.project.entity.dao.Image;
|
import com.unisinsight.project.entity.dao.Image;
|
||||||
|
import com.unisinsight.project.exception.BaseErrorCode;
|
||||||
|
import com.unisinsight.project.exception.Result;
|
||||||
import com.unisinsight.project.mapper.ImageMapper;
|
import com.unisinsight.project.mapper.ImageMapper;
|
||||||
import com.unisinsight.project.util.DigestUtil;
|
import com.unisinsight.project.util.DigestUtil;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
@ -168,6 +171,21 @@ public class FileChunkController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/cancel/upload")
|
||||||
|
@ApiOperation(value = "取消上传文件")
|
||||||
|
public Result<?> cancelUpload(@RequestParam("file_id") String fileId) {
|
||||||
|
if (ObjectUtils.isEmpty(fileId)) {
|
||||||
|
return Result.errorResult(BaseErrorCode.PARAMETERS_EMPTY);
|
||||||
|
}
|
||||||
|
log.info("取消上传,清理临时文件: {}", fileId);
|
||||||
|
try {
|
||||||
|
cleanupTempFiles(fileId);
|
||||||
|
} catch (IOException ex) {
|
||||||
|
log.error("清理临时文件失败,fileId:{}, {}", fileId, ex.getMessage(), ex);
|
||||||
|
}
|
||||||
|
return Result.successResult();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询文件上传状态
|
* 查询文件上传状态
|
||||||
*
|
*
|
||||||
|
|
|
@ -67,8 +67,8 @@ public class UserController {
|
||||||
@ApiOperation(value = "用户删除")
|
@ApiOperation(value = "用户删除")
|
||||||
@PostMapping("/delete")
|
@PostMapping("/delete")
|
||||||
public Result<?> deleteUser(@RequestBody DeleteIdReq deleteIdReq) {
|
public Result<?> deleteUser(@RequestBody DeleteIdReq deleteIdReq) {
|
||||||
if (Objects.isNull(deleteIdReq)) {
|
if (Objects.isNull(deleteIdReq.getId())) {
|
||||||
return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR);
|
return Result.errorResult(BaseErrorCode.PARAMETERS_INVALID);
|
||||||
}
|
}
|
||||||
log.info("用户删除请求参数为:{}", JSONUtil.toJsonStr(deleteIdReq));
|
log.info("用户删除请求参数为:{}", JSONUtil.toJsonStr(deleteIdReq));
|
||||||
return userService.delete(deleteIdReq);
|
return userService.delete(deleteIdReq);
|
||||||
|
|
|
@ -84,7 +84,7 @@ public class DeviceUserMapping implements Serializable {
|
||||||
* 类型: 1-用户,2-用户组
|
* 类型: 1-用户,2-用户组
|
||||||
*/
|
*/
|
||||||
@TableField(value = "type")
|
@TableField(value = "type")
|
||||||
private String type;
|
private Integer type;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class Image implements Serializable {
|
||||||
private String imageName;
|
private String imageName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 镜像类型
|
* 镜像类型:1:VHD 2:VHDX 3:QCOW2
|
||||||
*/
|
*/
|
||||||
@TableField(value = "image_type")
|
@TableField(value = "image_type")
|
||||||
private Integer imageType;
|
private Integer imageType;
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class DeviceUserMappingReq implements Serializable {
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("类型: 1-用户,2-用户组")
|
@ApiModelProperty("类型: 1-用户,2-用户组")
|
||||||
@JsonProperty("type")
|
@JsonProperty("type")
|
||||||
private String type;
|
private Integer type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 描述
|
* 描述
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class ImageReq implements Serializable {
|
||||||
private String imageName;
|
private String imageName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 镜像类型
|
* 镜像类型:1:VHD 2:VHDX 3:QCOW2
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("镜像类型")
|
@ApiModelProperty("镜像类型")
|
||||||
@JsonProperty("image_type")
|
@JsonProperty("image_type")
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.unisinsight.project.entity.req;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description:
|
||||||
|
* @author: rdpnr_puzhi
|
||||||
|
* @create: 2025/08/11
|
||||||
|
*/
|
||||||
|
@ApiModel("客户端请求类")
|
||||||
|
@Data
|
||||||
|
public class LoginReq {
|
||||||
|
|
||||||
|
@ApiModelProperty("设备id")
|
||||||
|
@JsonProperty("device_id")
|
||||||
|
private String deviceId;
|
||||||
|
|
||||||
|
@ApiModelProperty("用户名")
|
||||||
|
@JsonProperty("username")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
@ApiModelProperty("密码")
|
||||||
|
@JsonProperty("password")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@ApiModelProperty("token")
|
||||||
|
@JsonProperty("token")
|
||||||
|
private String token;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -32,6 +32,13 @@ public class DeviceImageMappingRes implements Serializable {
|
||||||
@JsonProperty("device_group_id")
|
@JsonProperty("device_group_id")
|
||||||
private Long deviceGroupId;
|
private Long deviceGroupId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分组名称
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("分组名称")
|
||||||
|
@JsonProperty("device_group_name")
|
||||||
|
private String deviceGroupName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 镜像ID
|
* 镜像ID
|
||||||
*/
|
*/
|
||||||
|
@ -39,6 +46,13 @@ public class DeviceImageMappingRes implements Serializable {
|
||||||
@JsonProperty("image_id")
|
@JsonProperty("image_id")
|
||||||
private Long imageId;
|
private Long imageId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 镜像名称
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("镜像名称")
|
||||||
|
@JsonProperty("image_name")
|
||||||
|
private String imageName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 还原方式
|
* 还原方式
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -36,6 +36,13 @@ public class DeviceUserMappingRes implements Serializable {
|
||||||
@JsonProperty("device_group_id")
|
@JsonProperty("device_group_id")
|
||||||
private Long deviceGroupId;
|
private Long deviceGroupId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分组名称
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("分组名称")
|
||||||
|
@JsonProperty("device_group_name")
|
||||||
|
private String deviceGroupName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户分组ID
|
* 用户分组ID
|
||||||
*/
|
*/
|
||||||
|
@ -49,13 +56,20 @@ public class DeviceUserMappingRes implements Serializable {
|
||||||
@ApiModelProperty("用户ID")
|
@ApiModelProperty("用户ID")
|
||||||
@JsonProperty("user_id")
|
@JsonProperty("user_id")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
/**
|
||||||
|
* 用户名
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "用户名")
|
||||||
|
@JsonProperty("user_name")
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 类型: 1-用户,2-用户组
|
* 类型: 1-用户,2-用户组
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("类型: 1-用户,2-用户组")
|
@ApiModelProperty("类型: 1-用户,2-用户组")
|
||||||
@JsonProperty("type")
|
@JsonProperty("type")
|
||||||
private String type;
|
private Integer type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 描述
|
* 描述
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.unisinsight.project.entity.res;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description:
|
||||||
|
* @author: rdpnr_puzhi
|
||||||
|
* @create: 2025/08/11
|
||||||
|
*/
|
||||||
|
@ApiModel("list请求类")
|
||||||
|
@Data
|
||||||
|
public class ListReq<T> {
|
||||||
|
|
||||||
|
@ApiModelProperty("数据列表")
|
||||||
|
@JsonProperty("data")
|
||||||
|
private List<T> data;
|
||||||
|
|
||||||
|
}
|
|
@ -12,7 +12,6 @@ import com.unisinsight.project.exception.Result;
|
||||||
*/
|
*/
|
||||||
public interface DeviceImageMappingService extends IService<DeviceImageMapping> {
|
public interface DeviceImageMappingService extends IService<DeviceImageMapping> {
|
||||||
|
|
||||||
Result<?> insert(DeviceImageMappingReq deviceImageMappingReq);
|
|
||||||
|
|
||||||
Result select(DeviceImageMappingReq deviceImageMappingReq);
|
Result select(DeviceImageMappingReq deviceImageMappingReq);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.unisinsight.project.service;
|
package com.unisinsight.project.service;
|
||||||
|
|
||||||
import com.unisinsight.project.entity.dao.DeviceUserMapping;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.unisinsight.project.entity.dao.DeviceUserMapping;
|
||||||
import com.unisinsight.project.entity.req.DeviceUserMappingReq;
|
import com.unisinsight.project.entity.req.DeviceUserMappingReq;
|
||||||
import com.unisinsight.project.entity.req.DeviceUserReq;
|
import com.unisinsight.project.entity.req.DeviceUserReq;
|
||||||
import com.unisinsight.project.exception.Result;
|
import com.unisinsight.project.exception.Result;
|
||||||
|
@ -13,7 +13,6 @@ import com.unisinsight.project.exception.Result;
|
||||||
*/
|
*/
|
||||||
public interface DeviceUserMappingService extends IService<DeviceUserMapping> {
|
public interface DeviceUserMappingService extends IService<DeviceUserMapping> {
|
||||||
|
|
||||||
Result<?> insert(DeviceUserMappingReq deviceUserMappingReq);
|
|
||||||
|
|
||||||
Result select(DeviceUserMappingReq deviceUserMappingReq);
|
Result select(DeviceUserMappingReq deviceUserMappingReq);
|
||||||
|
|
||||||
|
|
|
@ -4,20 +4,25 @@ import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.unisinsight.project.entity.dao.DeviceImageMapping;
|
import com.unisinsight.project.entity.dao.DeviceImageMapping;
|
||||||
|
import com.unisinsight.project.entity.dao.Image;
|
||||||
|
import com.unisinsight.project.entity.dao.UserDeviceGroup;
|
||||||
import com.unisinsight.project.entity.req.DeviceImageMappingReq;
|
import com.unisinsight.project.entity.req.DeviceImageMappingReq;
|
||||||
import com.unisinsight.project.entity.res.DeviceImageMappingRes;
|
import com.unisinsight.project.entity.res.DeviceImageMappingRes;
|
||||||
import com.unisinsight.project.exception.BaseErrorCode;
|
|
||||||
import com.unisinsight.project.exception.Result;
|
import com.unisinsight.project.exception.Result;
|
||||||
import com.unisinsight.project.mapper.DeviceImageMappingMapper;
|
import com.unisinsight.project.mapper.DeviceImageMappingMapper;
|
||||||
|
import com.unisinsight.project.mapper.ImageMapper;
|
||||||
|
import com.unisinsight.project.mapper.UserDeviceGroupMapper;
|
||||||
import com.unisinsight.project.service.DeviceImageMappingService;
|
import com.unisinsight.project.service.DeviceImageMappingService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author rdpnr_puzhi
|
* @author rdpnr_puzhi
|
||||||
|
@ -32,18 +37,11 @@ public class DeviceImageMappingServiceImpl extends ServiceImpl<DeviceImageMappin
|
||||||
@Resource
|
@Resource
|
||||||
private DeviceImageMappingMapper deviceImageMappingMapper;
|
private DeviceImageMappingMapper deviceImageMappingMapper;
|
||||||
|
|
||||||
@Override
|
@Resource
|
||||||
public Result<?> insert(DeviceImageMappingReq deviceImageMappingReq) {
|
private ImageMapper imageMapper;
|
||||||
DeviceImageMapping deviceImageMapping = BeanUtil.copyProperties(deviceImageMappingReq, DeviceImageMapping.class);
|
@Resource
|
||||||
deviceImageMapping.setCreateUser("admin");
|
private UserDeviceGroupMapper groupMapper;
|
||||||
int insert = deviceImageMappingMapper.insert(deviceImageMapping);
|
|
||||||
log.info("终端镜像映射新增insert:{}", insert);
|
|
||||||
if (insert == 1) {
|
|
||||||
return Result.successResult();
|
|
||||||
} else {
|
|
||||||
return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result<?> select(DeviceImageMappingReq deviceImageMappingReq) {
|
public Result<?> select(DeviceImageMappingReq deviceImageMappingReq) {
|
||||||
|
@ -61,6 +59,35 @@ public class DeviceImageMappingServiceImpl extends ServiceImpl<DeviceImageMappin
|
||||||
return Result.successResult();
|
return Result.successResult();
|
||||||
} else {
|
} else {
|
||||||
List<DeviceImageMappingRes> deviceImageMappingRes = BeanUtil.copyToList(deviceUserMappings, DeviceImageMappingRes.class);
|
List<DeviceImageMappingRes> deviceImageMappingRes = BeanUtil.copyToList(deviceUserMappings, DeviceImageMappingRes.class);
|
||||||
|
List<Long> imageIds = deviceImageMappingRes.stream().map(DeviceImageMappingRes::getImageId).collect(Collectors.toList());
|
||||||
|
if (CollectionUtil.isNotEmpty(imageIds)) {
|
||||||
|
LambdaQueryWrapper<Image> imageLambdaQueryWrapper = new QueryWrapper<Image>().lambda().eq(Image::getId, imageIds);
|
||||||
|
List<Image> images = imageMapper.selectList(imageLambdaQueryWrapper);
|
||||||
|
if (CollectionUtil.isNotEmpty(images)) {
|
||||||
|
deviceImageMappingRes.forEach(deviceImage -> {
|
||||||
|
images.forEach(image -> {
|
||||||
|
if (ObjectUtil.isNotEmpty(deviceImage.getImageId()) && image.getId().equals(deviceImage.getImageId())) {
|
||||||
|
deviceImage.setImageName(image.getImageName());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<Long> groupIdList = deviceImageMappingRes.stream().map(DeviceImageMappingRes::getDeviceGroupId).collect(Collectors.toList());
|
||||||
|
if (CollectionUtil.isNotEmpty(groupIdList)) {
|
||||||
|
LambdaQueryWrapper<UserDeviceGroup> groupLambdaQueryWrapper = new QueryWrapper<UserDeviceGroup>().lambda().eq(UserDeviceGroup::getId, groupIdList);
|
||||||
|
List<UserDeviceGroup> userDeviceGroups = groupMapper.selectList(groupLambdaQueryWrapper);
|
||||||
|
if (CollectionUtil.isNotEmpty(userDeviceGroups)) {
|
||||||
|
deviceImageMappingRes.forEach(deviceImage -> {
|
||||||
|
userDeviceGroups.forEach(userDeviceGroup -> {
|
||||||
|
if (ObjectUtil.isNotEmpty(deviceImage.getImageId()) && userDeviceGroup.getId().equals(deviceImage.getImageId())) {
|
||||||
|
deviceImage.setDeviceGroupName(userDeviceGroup.getName());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return Result.successResult(deviceImageMappingRes);
|
return Result.successResult(deviceImageMappingRes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -87,7 +88,7 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device>
|
||||||
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(deviceReq.getDeviceName())) {
|
if (StringUtils.isNotBlank(deviceReq.getDeviceName())) {
|
||||||
queryWrapper.lambda().eq(Device::getDeviceName, deviceReq.getDeviceName());
|
queryWrapper.lambda().like(Device::getDeviceName, deviceReq.getDeviceName());
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(deviceReq.getDeviceGroupName())) {
|
if (StringUtils.isNotBlank(deviceReq.getDeviceGroupName())) {
|
||||||
queryWrapper.lambda().eq(Device::getDeviceGroupName, deviceReq.getDeviceGroupName());
|
queryWrapper.lambda().eq(Device::getDeviceGroupName, deviceReq.getDeviceGroupName());
|
||||||
|
@ -96,10 +97,10 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device>
|
||||||
queryWrapper.lambda().eq(Device::getDeviceGroupId, deviceReq.getDeviceGroupId());
|
queryWrapper.lambda().eq(Device::getDeviceGroupId, deviceReq.getDeviceGroupId());
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(deviceReq.getIpAddr())) {
|
if (StringUtils.isNotBlank(deviceReq.getIpAddr())) {
|
||||||
queryWrapper.lambda().like(Device::getIpAddr, deviceReq.getIpAddr());
|
queryWrapper.lambda().eq(Device::getIpAddr, deviceReq.getIpAddr());
|
||||||
}
|
}
|
||||||
if (ObjectUtils.isNotEmpty(deviceReq.getDeviceType())) {
|
if (ObjectUtils.isNotEmpty(deviceReq.getDeviceType())) {
|
||||||
queryWrapper.lambda().like(Device::getDeviceType, deviceReq.getDeviceType());
|
queryWrapper.lambda().eq(Device::getDeviceType, deviceReq.getDeviceType());
|
||||||
}
|
}
|
||||||
|
|
||||||
IPage<Device> userPage = deviceMapper.selectPage(page, queryWrapper);
|
IPage<Device> userPage = deviceMapper.selectPage(page, queryWrapper);
|
||||||
|
@ -110,12 +111,13 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device>
|
||||||
} else {
|
} else {
|
||||||
PageResult<DeviceRes> convert = PageResult.convertIPage(userPage, DeviceRes.class);
|
PageResult<DeviceRes> convert = PageResult.convertIPage(userPage, DeviceRes.class);
|
||||||
List<DeviceRes> deviceResList = convert.getData();
|
List<DeviceRes> deviceResList = convert.getData();
|
||||||
|
List<Long> deviceIdList = deviceResList.stream().distinct().map(DeviceRes::getDeviceGroupId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
QueryWrapper<UserDeviceGroup> wrapper = new QueryWrapper<>();
|
QueryWrapper<UserDeviceGroup> wrapper = new QueryWrapper<>();
|
||||||
wrapper.lambda().eq(UserDeviceGroup::getType, 2);
|
wrapper.lambda().in(UserDeviceGroup::getId, deviceIdList);
|
||||||
List<UserDeviceGroup> userDeviceGroups = groupMapper.selectList(wrapper);
|
List<UserDeviceGroup> userDeviceGroups = groupMapper.selectList(wrapper);
|
||||||
List<DeviceRes> resList = deviceResList.stream().distinct().peek(device -> {
|
List<DeviceRes> resList = deviceResList.stream().distinct().peek(device -> {
|
||||||
for (UserDeviceGroup userDeviceGroup : userDeviceGroups) {
|
for (UserDeviceGroup userDeviceGroup : userDeviceGroups) {
|
||||||
if (device.getDeviceGroupId().equals(userDeviceGroup.getId())) {
|
if (!ObjectUtils.isEmpty(device.getDeviceGroupId()) && device.getDeviceGroupId().equals(userDeviceGroup.getId())) {
|
||||||
device.setDeviceGroupName(userDeviceGroup.getName());
|
device.setDeviceGroupName(userDeviceGroup.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,22 +8,23 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.unisinsight.project.entity.dao.DeviceUserMapping;
|
import com.unisinsight.project.entity.dao.DeviceUserMapping;
|
||||||
import com.unisinsight.project.entity.dao.User;
|
import com.unisinsight.project.entity.dao.User;
|
||||||
|
import com.unisinsight.project.entity.dao.UserDeviceGroup;
|
||||||
import com.unisinsight.project.entity.req.DeviceUserMappingReq;
|
import com.unisinsight.project.entity.req.DeviceUserMappingReq;
|
||||||
import com.unisinsight.project.entity.req.DeviceUserReq;
|
import com.unisinsight.project.entity.req.DeviceUserReq;
|
||||||
import com.unisinsight.project.entity.res.DeviceUserMappingRes;
|
import com.unisinsight.project.entity.res.DeviceUserMappingRes;
|
||||||
import com.unisinsight.project.exception.BaseErrorCode;
|
import com.unisinsight.project.exception.BaseErrorCode;
|
||||||
import com.unisinsight.project.exception.Result;
|
import com.unisinsight.project.exception.Result;
|
||||||
import com.unisinsight.project.mapper.DeviceUserMappingMapper;
|
import com.unisinsight.project.mapper.DeviceUserMappingMapper;
|
||||||
|
import com.unisinsight.project.mapper.UserDeviceGroupMapper;
|
||||||
import com.unisinsight.project.mapper.UserMapper;
|
import com.unisinsight.project.mapper.UserMapper;
|
||||||
import com.unisinsight.project.service.DeviceUserMappingService;
|
import com.unisinsight.project.service.DeviceUserMappingService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -41,27 +42,22 @@ public class DeviceUserMappingServiceImpl extends ServiceImpl<DeviceUserMappingM
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private UserMapper userMapper;
|
private UserMapper userMapper;
|
||||||
|
@Resource
|
||||||
|
private UserDeviceGroupMapper groupMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result<?> insert(DeviceUserMappingReq deviceUserMappingReq) {
|
public boolean saveBatch(Collection<DeviceUserMapping> entityList) {
|
||||||
DeviceUserMapping deviceUserMapping = BeanUtil.copyProperties(deviceUserMappingReq, DeviceUserMapping.class);
|
return super.saveBatch(entityList);
|
||||||
deviceUserMapping.setCreateUser("admin");
|
|
||||||
int insert = deviceUserMappingMapper.insert(deviceUserMapping);
|
|
||||||
log.info("终端用户映射新增insert:{}", insert);
|
|
||||||
if (insert == 1) {
|
|
||||||
return Result.successResult();
|
|
||||||
} else {
|
|
||||||
return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result<?> select(DeviceUserMappingReq deviceUserMappingReq) {
|
public Result<?> select(DeviceUserMappingReq deviceUserMappingReq) {
|
||||||
DeviceUserMapping deviceUserMapping = BeanUtil.copyProperties(deviceUserMappingReq, DeviceUserMapping.class);
|
DeviceUserMapping deviceUserMapping = BeanUtil.copyProperties(deviceUserMappingReq, DeviceUserMapping.class);
|
||||||
QueryWrapper<DeviceUserMapping> wrapper = new QueryWrapper<>();
|
QueryWrapper<DeviceUserMapping> wrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
wrapper.lambda().eq(DeviceUserMapping::getDeviceId, deviceUserMapping.getDeviceId());
|
wrapper.lambda().eq(DeviceUserMapping::getDeviceId, deviceUserMapping.getDeviceId());
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(deviceUserMapping.getType())) {
|
if (ObjectUtil.isNotEmpty(deviceUserMapping.getType())) {
|
||||||
wrapper.lambda().eq(DeviceUserMapping::getType, deviceUserMapping.getType());
|
wrapper.lambda().eq(DeviceUserMapping::getType, deviceUserMapping.getType());
|
||||||
}
|
}
|
||||||
|
@ -74,7 +70,68 @@ public class DeviceUserMappingServiceImpl extends ServiceImpl<DeviceUserMappingM
|
||||||
return Result.successResult();
|
return Result.successResult();
|
||||||
} else {
|
} else {
|
||||||
List<DeviceUserMappingRes> deviceUserMappingRes = BeanUtil.copyToList(deviceUserMappings, DeviceUserMappingRes.class);
|
List<DeviceUserMappingRes> deviceUserMappingRes = BeanUtil.copyToList(deviceUserMappings, DeviceUserMappingRes.class);
|
||||||
return Result.successResult(deviceUserMappingRes);
|
if (ObjectUtil.isEmpty(deviceUserMappingReq.getType())) {
|
||||||
|
List<Long> userList = deviceUserMappingRes.stream().distinct().map(DeviceUserMappingRes::getUserId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
|
userList = new ArrayList<>(new HashSet<>(userList));
|
||||||
|
if (CollectionUtil.isNotEmpty(userList)) {
|
||||||
|
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
|
||||||
|
userQueryWrapper.lambda().in(User::getId, userList);
|
||||||
|
List<User> users = userMapper.selectList(userQueryWrapper);
|
||||||
|
deviceUserMappingRes = deviceUserMappingRes.stream().distinct().peek(device -> {
|
||||||
|
for (User user : users) {
|
||||||
|
if (!ObjectUtils.isEmpty(device.getUserId()) && device.getUserId().equals(user.getId())) {
|
||||||
|
device.setUserName(user.getUserName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Long> deviceList = deviceUserMappingRes.stream().distinct().map(DeviceUserMappingRes::getDeviceGroupId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
|
deviceList = new ArrayList<>(new HashSet<>(deviceList));
|
||||||
|
if (CollectionUtil.isNotEmpty(deviceList)) {
|
||||||
|
QueryWrapper<UserDeviceGroup> groupQueryWrapper = new QueryWrapper<>();
|
||||||
|
groupQueryWrapper.lambda().in(UserDeviceGroup::getId, deviceList);
|
||||||
|
List<UserDeviceGroup> userDeviceGroups = groupMapper.selectList(groupQueryWrapper);
|
||||||
|
deviceUserMappingRes = deviceUserMappingRes.stream().distinct().peek(device -> {
|
||||||
|
for (UserDeviceGroup userDeviceGroup : userDeviceGroups) {
|
||||||
|
if (!ObjectUtils.isEmpty(device.getDeviceGroupId()) && device.getDeviceGroupId().equals(userDeviceGroup.getId())) {
|
||||||
|
device.setDeviceGroupName(userDeviceGroup.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.successResult(deviceUserMappingRes);
|
||||||
|
} else if (deviceUserMappingReq.getType() == 1) {
|
||||||
|
List<Long> userList = deviceUserMappingRes.stream().distinct().map(DeviceUserMappingRes::getUserId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
|
userList = new ArrayList<>(new HashSet<>(userList));
|
||||||
|
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
|
||||||
|
userQueryWrapper.lambda().in(User::getId, userList);
|
||||||
|
List<User> users = userMapper.selectList(userQueryWrapper);
|
||||||
|
List<DeviceUserMappingRes> collect = deviceUserMappingRes.stream().distinct().peek(device -> {
|
||||||
|
for (User user : users) {
|
||||||
|
if (!ObjectUtils.isEmpty(device.getUserId()) && device.getUserId().equals(user.getId())) {
|
||||||
|
device.setUserName(user.getUserName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
return Result.successResult(collect);
|
||||||
|
} else {
|
||||||
|
List<Long> deviceList = deviceUserMappingRes.stream().distinct().map(DeviceUserMappingRes::getDeviceGroupId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
|
deviceList = new ArrayList<>(new HashSet<>(deviceList));
|
||||||
|
QueryWrapper<UserDeviceGroup> groupQueryWrapper = new QueryWrapper<>();
|
||||||
|
groupQueryWrapper.lambda().eq(UserDeviceGroup::getType, 1);
|
||||||
|
groupQueryWrapper.lambda().in(UserDeviceGroup::getId, deviceList);
|
||||||
|
List<UserDeviceGroup> userDeviceGroups = groupMapper.selectList(groupQueryWrapper);
|
||||||
|
List<DeviceUserMappingRes> collect = deviceUserMappingRes.stream().distinct().peek(device -> {
|
||||||
|
for (UserDeviceGroup userDeviceGroup : userDeviceGroups) {
|
||||||
|
if (!ObjectUtils.isEmpty(device.getDeviceGroupId()) && device.getDeviceGroupId().equals(userDeviceGroup.getId())) {
|
||||||
|
device.setDeviceGroupName(userDeviceGroup.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
return Result.successResult(collect);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -90,7 +147,7 @@ public class DeviceUserMappingServiceImpl extends ServiceImpl<DeviceUserMappingM
|
||||||
log.info("用户登录查询映射结果:{}", JSONUtil.toJsonStr(deviceUserMappings));
|
log.info("用户登录查询映射结果:{}", JSONUtil.toJsonStr(deviceUserMappings));
|
||||||
List<User> users = new ArrayList<>();
|
List<User> users = new ArrayList<>();
|
||||||
|
|
||||||
List<Long> userIdList = deviceUserMappings.stream().map(DeviceUserMapping::getUserId).collect(Collectors.toList());
|
List<Long> userIdList = deviceUserMappings.stream().map(DeviceUserMapping::getUserId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
log.info("用户登录查询用户id结果:{}", JSONUtil.toJsonStr(userIdList));
|
log.info("用户登录查询用户id结果:{}", JSONUtil.toJsonStr(userIdList));
|
||||||
if (CollectionUtil.isNotEmpty(userIdList)) {
|
if (CollectionUtil.isNotEmpty(userIdList)) {
|
||||||
QueryWrapper<User> groupWrapper = new QueryWrapper<>();
|
QueryWrapper<User> groupWrapper = new QueryWrapper<>();
|
||||||
|
@ -105,7 +162,7 @@ public class DeviceUserMappingServiceImpl extends ServiceImpl<DeviceUserMappingM
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
List<Long> groupList = deviceUserMappings.stream().map(DeviceUserMapping::getUserGroupId).collect(Collectors.toList());
|
List<Long> groupList = deviceUserMappings.stream().map(DeviceUserMapping::getUserGroupId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
log.info("用户登录查询用户组id结果:{}", JSONUtil.toJsonStr(groupList));
|
log.info("用户登录查询用户组id结果:{}", JSONUtil.toJsonStr(groupList));
|
||||||
if (CollectionUtil.isNotEmpty(groupList)) {
|
if (CollectionUtil.isNotEmpty(groupList)) {
|
||||||
QueryWrapper<User> groupWrapper = new QueryWrapper<>();
|
QueryWrapper<User> groupWrapper = new QueryWrapper<>();
|
||||||
|
|
|
@ -44,14 +44,11 @@ public class ImageServiceImpl extends ServiceImpl<ImageMapper, Image>
|
||||||
Page<Image> page = new Page<>(imageReq.getPageNum(), imageReq.getPageSize());
|
Page<Image> page = new Page<>(imageReq.getPageNum(), imageReq.getPageSize());
|
||||||
QueryWrapper<Image> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<Image> queryWrapper = new QueryWrapper<>();
|
||||||
|
|
||||||
if (ObjectUtils.isNotEmpty(imageReq.getId())) {
|
|
||||||
queryWrapper.lambda().eq(Image::getId, imageReq.getId());
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(imageReq.getImageName())) {
|
if (StringUtils.isNotBlank(imageReq.getImageName())) {
|
||||||
queryWrapper.lambda().like(Image::getImageName, imageReq.getImageName());
|
queryWrapper.lambda().like(Image::getImageName, imageReq.getImageName());
|
||||||
}
|
}
|
||||||
if (ObjectUtils.isNotEmpty(imageReq.getImageType())) {
|
if (ObjectUtils.isNotEmpty(imageReq.getImageType())) {
|
||||||
queryWrapper.lambda().like(Image::getImageType, imageReq.getImageType());
|
queryWrapper.lambda().eq(Image::getImageType, imageReq.getImageType());
|
||||||
}
|
}
|
||||||
|
|
||||||
IPage<Image> imageIPage = imageMapper.selectPage(page, queryWrapper);
|
IPage<Image> imageIPage = imageMapper.selectPage(page, queryWrapper);
|
||||||
|
|
|
@ -53,8 +53,8 @@ public class UserDeviceGroupServiceImpl extends ServiceImpl<UserDeviceGroupMappe
|
||||||
if (ObjectUtils.isNotEmpty(userDeviceGroup)) {
|
if (ObjectUtils.isNotEmpty(userDeviceGroup)) {
|
||||||
group.setParentId(userDeviceGroup.getId());
|
group.setParentId(userDeviceGroup.getId());
|
||||||
group.setParentName(userDeviceGroup.getName());
|
group.setParentName(userDeviceGroup.getName());
|
||||||
group.setPath(group.getId().toString());
|
group.setPath(userDeviceGroup.getId().toString());
|
||||||
group.setIndex(group.getId().toString());
|
group.setIndex(userDeviceGroup.getId().toString());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
UserDeviceGroup groupParent = groupMapper.selectById(group.getParentId());
|
UserDeviceGroup groupParent = groupMapper.selectById(group.getParentId());
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -94,10 +95,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
|
||||||
queryWrapper.lambda().like(User::getUserName, userReq.getUserName());
|
queryWrapper.lambda().like(User::getUserName, userReq.getUserName());
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(userReq.getIdentityNo())) {
|
if (StringUtils.isNotBlank(userReq.getIdentityNo())) {
|
||||||
queryWrapper.lambda().like(User::getIdentityNo, userReq.getIdentityNo());
|
queryWrapper.lambda().eq(User::getIdentityNo, userReq.getIdentityNo());
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(userReq.getCellPhone())) {
|
if (StringUtils.isNotBlank(userReq.getCellPhone())) {
|
||||||
queryWrapper.lambda().like(User::getCellPhone, userReq.getCellPhone());
|
queryWrapper.lambda().eq(User::getCellPhone, userReq.getCellPhone());
|
||||||
}
|
}
|
||||||
|
|
||||||
IPage<User> userPage = userMapper.selectPage(page, queryWrapper);
|
IPage<User> userPage = userMapper.selectPage(page, queryWrapper);
|
||||||
|
@ -108,12 +109,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User>
|
||||||
} else {
|
} else {
|
||||||
PageResult<UserRes> convert = PageResult.convertIPage(userPage, UserRes.class);
|
PageResult<UserRes> convert = PageResult.convertIPage(userPage, UserRes.class);
|
||||||
List<UserRes> userResList = convert.getData();
|
List<UserRes> userResList = convert.getData();
|
||||||
|
List<Long> collect = userResList.stream().distinct().map(UserRes::getUserGroupId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
QueryWrapper<UserDeviceGroup> wrapper = new QueryWrapper<>();
|
QueryWrapper<UserDeviceGroup> wrapper = new QueryWrapper<>();
|
||||||
wrapper.lambda().eq(UserDeviceGroup::getType, 1);
|
wrapper.lambda().in(UserDeviceGroup::getId, collect);
|
||||||
List<UserDeviceGroup> userDeviceGroups = groupMapper.selectList(wrapper);
|
List<UserDeviceGroup> userDeviceGroups = groupMapper.selectList(wrapper);
|
||||||
List<UserRes> resList = userResList.stream().distinct().peek(user -> {
|
List<UserRes> resList = userResList.stream().distinct().peek(user -> {
|
||||||
for (UserDeviceGroup userDeviceGroup : userDeviceGroups) {
|
for (UserDeviceGroup userDeviceGroup : userDeviceGroups) {
|
||||||
if (user.getUserGroupId().equals(userDeviceGroup.getId())) {
|
if (!ObjectUtils.isEmpty(user.getUserGroupId()) && user.getUserGroupId().equals(userDeviceGroup.getId())) {
|
||||||
user.setUserGroupName(userDeviceGroup.getName());
|
user.setUserGroupName(userDeviceGroup.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
-- 数据初始化
|
||||||
|
INSERT INTO "public"."user_device_group" ("id", "name", "type", "path", "deleted")
|
||||||
|
VALUES (1, '用户顶级组织a', '1', '1', 0),
|
||||||
|
(2, '终端顶级组织b', '2', '2', 0)
|
||||||
|
ON CONFLICT (id) DO NOTHING;
|
||||||
|
|
||||||
|
INSERT INTO "public"."user_device_group" ("id", "name", "parent_id", "parent_name", "index", "type", "path", "deleted")
|
||||||
|
VALUES (3, '默认终端分组', 2, '终端顶级组织', '3', 2, '2', 0)
|
||||||
|
ON CONFLICT (id) DO NOTHING;
|
||||||
|
|
||||||
|
-- 更新序列
|
||||||
|
SELECT setval('user_device_group_id_seq', (SELECT COALESCE(MAX(id), 0) FROM "public"."user_device_group"));
|
Loading…
Reference in New Issue