feat(nex-be): 更新镜像类型并添加通知功能

- 修改 Linux 镜像类型为 qcow2,Windows 镜像类型为 vhd
- 在设备镜像映射新增操作中添加发送通知的功能
master
chenhao 2025-09-05 09:37:52 +08:00
parent eda99f0711
commit 258e65fd1b
2 changed files with 11 additions and 3 deletions

View File

@ -5,16 +5,20 @@ import cn.hutool.core.collection.CollectionUtil;
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.LambdaQueryWrapper;
import com.unisinsight.project.entity.dao.DeviceImageMapping; import com.unisinsight.project.entity.dao.DeviceImageMapping;
import com.unisinsight.project.entity.enums.GrpcTypeEnum;
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.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.grpc.generate.NotificationMessage;
import com.unisinsight.project.grpc.service.SendNotificationService;
import com.unisinsight.project.service.DeviceImageMappingService; import com.unisinsight.project.service.DeviceImageMappingService;
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.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -39,7 +43,8 @@ public class DeviceImageMappingController {
@Resource @Resource
private DeviceImageMappingService deviceImageMappingService; private DeviceImageMappingService deviceImageMappingService;
@Autowired
private SendNotificationService notificationService;
@ApiOperation(value = "终端镜像映射新增") @ApiOperation(value = "终端镜像映射新增")
@PostMapping("/add") @PostMapping("/add")
public Result<?> insert(@RequestBody ListReq<DeviceImageMappingReq> deviceImageMappingReq) { public Result<?> insert(@RequestBody ListReq<DeviceImageMappingReq> deviceImageMappingReq) {
@ -95,7 +100,10 @@ public class DeviceImageMappingController {
return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500); return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500);
} }
} }
//发送消息
notificationService.sendNotification(deviceImageMappingReq.getDeviceId(), NotificationMessage.newBuilder()
.setType(GrpcTypeEnum.IMAGE_UPDATE.getType())
.setContent(GrpcTypeEnum.IMAGE_UPDATE.getDesc()).build());
return Result.successResult(); return Result.successResult();
} }

View File

@ -298,7 +298,7 @@ public class ImageVirtualMachinesServiceImpl extends ServiceImpl<ImageVirtualMac
String diskPath = vmInfo.getDiskPath(); String diskPath = vmInfo.getDiskPath();
String type = "linux".equalsIgnoreCase(imageVirtualMachines.getOsVersion()) ? "vhd" : "qcow2"; String type = "linux".equalsIgnoreCase(imageVirtualMachines.getOsVersion()) ? "qcow2" : "vhd";
// 根据虚拟机信息调用远程虚拟机信息 // 根据虚拟机信息调用远程虚拟机信息
String fileName = imageVirtualMachines.getOsVersion() + "_desktop_" + System.currentTimeMillis(); String fileName = imageVirtualMachines.getOsVersion() + "_desktop_" + System.currentTimeMillis();