feat:存储池和网络管理的增删改查

master
汤全昆 2025-08-27 18:03:15 +08:00
parent d54cb15b91
commit 8665390bbc
13 changed files with 813 additions and 0 deletions

View File

@ -0,0 +1,55 @@
package com.unisinsight.project.controller;
import com.unisinsight.project.entity.req.DeleteIdReq;
import com.unisinsight.project.entity.req.StoragePoolReq;
import com.unisinsight.project.entity.res.PageResult;
import com.unisinsight.project.entity.res.StoragePoolRes;
import com.unisinsight.project.exception.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
/**
*
*/
@RestController
@RequestMapping("/api/nex/v1/network")
@Slf4j
@Api(tags = "网络管理类")
public class NetworkManageController {
@ApiOperation(value = "分页查询镜像")
@PostMapping("/select/page")
public Result<PageResult<StoragePoolRes>> selectPage(@RequestBody StoragePoolReq storagePoolReq) {
return null;
}
@ApiOperation(value = "新增")
@PostMapping("/add")
public Result<?> insertImageVirtualMachines(@RequestBody StoragePoolReq storagePoolReq) {
return null;
}
@ApiOperation(value = "修改状态")
@PostMapping("/update")
public Result<?> updateUser(@RequestBody StoragePoolReq storagePoolReq) {
return null;
}
@ApiOperation(value = "删除")
@PostMapping("/delete")
public Result<?> delete(@RequestBody DeleteIdReq deleteIdReq) {
return null;
}
@ApiOperation(value = "同步状态")
@GetMapping("/synchStatus")
public Result<?> synchStatus() {
return null;
}
}

View File

@ -0,0 +1,63 @@
package com.unisinsight.project.controller;
import cn.hutool.json.JSONUtil;
import com.unisinsight.project.entity.req.DeleteIdReq;
import com.unisinsight.project.entity.req.ImageVirtualMachinesReq;
import com.unisinsight.project.entity.req.StoragePoolReq;
import com.unisinsight.project.entity.res.ImageVirtualMachinesRes;
import com.unisinsight.project.entity.res.PageResult;
import com.unisinsight.project.entity.res.StoragePoolRes;
import com.unisinsight.project.exception.BaseErrorCode;
import com.unisinsight.project.exception.Result;
import com.unisinsight.project.service.ImageVirtualMachinesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Objects;
/**
*
*/
@RestController
@RequestMapping("/api/nex/v1/storage")
@Slf4j
@Api(tags = "存储池类")
public class StoragePoolController {
@ApiOperation(value = "分页查询镜像")
@PostMapping("/select/page")
public Result<PageResult<StoragePoolRes>> selectPage(@RequestBody StoragePoolReq storagePoolReq) {
return null;
}
@ApiOperation(value = "新增")
@PostMapping("/add")
public Result<?> insertImageVirtualMachines(@RequestBody StoragePoolReq storagePoolReq) {
return null;
}
@ApiOperation(value = "修改状态")
@PostMapping("/update")
public Result<?> updateUser(@RequestBody StoragePoolReq storagePoolReq) {
return null;
}
@ApiOperation(value = "删除")
@PostMapping("/delete")
public Result<?> delete(@RequestBody DeleteIdReq deleteIdReq) {
return null;
}
@ApiOperation(value = "同步状态")
@GetMapping("/synchStatus")
public Result<?> synchStatus() {
return null;
}
}

View File

@ -0,0 +1,112 @@
package com.unisinsight.project.entity.dao;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
/**
*
*
* @author ch
* @since 2025-08-25
*/
@TableName("network_manage")
@Data
public class NetworkManage {
/**
* ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
*
*/
@TableField("name")
private String name;
/**
*
*/
@TableField("type")
private String type;
/**
*
*/
@TableField("bridge_name")
private String bridgeName;
/**
* IP
*/
@TableField("ip_range")
private String ipRange;
/**
*
*/
@TableField("gateway")
private String gateway;
/**
*
*/
@TableField("netmask")
private String netmask;
/**
* DHCP
*/
@TableField("dhcp_enabled")
private Short dhcpEnabled;
/**
* DHCP
*/
@TableField("dhcp_start")
private String dhcpStart;
/**
* DHCP
*/
@TableField("dhcp_end")
private String dhcpEnd;
/**
* VLAN ID
*/
@TableField("vlan_id")
private String vlanId;
/**
*
*/
@TableField("status")
private Short status;
/**
*
*/
@TableField("create_user")
private String createUser;
/**
*
*/
@TableField("create_time")
private Date createTime;
/**
*
*/
@TableField("update_time")
private Date updateTime;
/**
*
*/
@TableField("description")
private String description;
}

View File

@ -0,0 +1,79 @@
package com.unisinsight.project.entity.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
*
*
* @author ch
* @since 2025-08-25 11:42:52
*/
@TableName(value = "storage_pool")
@Data
@ApiModel(description = "存储池实体类")
public class StoragePool {
/**
* ID
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "主键ID")
private Long id;
/**
*
*/
@TableField("name")
@ApiModelProperty(value = "存储池名称")
private String name;
/**
*
*/
@TableField("type")
@ApiModelProperty(value = "存储池类型")
private String type;
/**
*
*/
@TableField("status")
@ApiModelProperty(value = "状态")
private Short status;
/**
*
*/
@TableField("description")
@ApiModelProperty(value = "描述信息")
private String description;
/**
*
*/
@TableField("create_time")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@TableField("update_time")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
*
*/
@TableField("create_user")
@ApiModelProperty(value = "创建用户")
private String createUser;
}

View File

@ -0,0 +1,50 @@
package com.unisinsight.project.entity.req;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.unisinsight.project.entity.dao.StoragePool;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
*
* @author ch
* @since 2025-08-25 11:42:52
*/
@Data
@ApiModel("存储池")
public class StoragePoolReq {
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("路劲")
private String path;
/**
* : 1-2-
**/
@ApiModelProperty("状态")
private String status;
/**
*
*/
@ApiModelProperty(value = "查询页", notes = "分页查询时再传")
@JsonProperty("page_num")
private Integer pageNum;
/**
*
*/
@ApiModelProperty(value = "每页数量", notes = "分页查询时再传")
@JsonProperty("page_size")
private Integer pageSize;
}

View File

@ -0,0 +1,77 @@
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.io.Serializable;
/**
* (ImageVirtualMachines)
*
* @author ch
* @since 2025-08-25 11:42:57
*/
@Data
@ApiModel("镜像虚拟机")
public class StoragePoolRes implements Serializable {
@JsonProperty("id")
@ApiModelProperty("ID")
private Long id;
@JsonProperty("name")
@ApiModelProperty("名称")
private String name;
@JsonProperty("type")
@ApiModelProperty("类型")
private String type;
@JsonProperty("path")
@ApiModelProperty("路劲")
private String path;
/**
* : 1-2-
**/
@JsonProperty("image_status")
@ApiModelProperty("状态")
private String status;
/**
*
**/
@JsonProperty("create_time")
@ApiModelProperty("创建时间")
private String createTime;
/**
*
**/
@JsonProperty("create_user")
@ApiModelProperty("创建人")
private String createUser;
/**
*
**/
@JsonProperty("update_time")
@ApiModelProperty("更新时间")
private String updateTime;
/**
*
**/
@JsonProperty("update_user")
@ApiModelProperty("更新人")
private String updateUser;
/**
*
**/
@JsonProperty("description")
@ApiModelProperty("描述")
private String description;
}

View File

@ -0,0 +1,9 @@
package com.unisinsight.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.unisinsight.project.entity.dao.NetworkManage;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface NetworkManageMapper extends BaseMapper<NetworkManage> {
}

View File

@ -0,0 +1,9 @@
package com.unisinsight.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.unisinsight.project.entity.dao.StoragePool;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StoragePoolMapper extends BaseMapper<StoragePool> {
}

View File

@ -0,0 +1,65 @@
package com.unisinsight.project.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.unisinsight.project.entity.dao.NetworkManage;
import java.util.List;
/**
*
*/
public interface NetworkManageService {
/**
*
*
* @param networkManage
* @return NetworkManage
*/
NetworkManage addNetworkManage(NetworkManage networkManage);
/**
* ID
*
* @param networkManage
* @return boolean
*/
boolean updateNetworkManage(NetworkManage networkManage);
/**
* ID
*
* @param id ID
* @return boolean
*/
boolean deleteNetworkManage(Integer id);
/**
* ID
*
* @param id ID
* @return NetworkManage
*/
NetworkManage getNetworkManageById(Integer id);
/**
*
*
* @param name
* @param type
* @param status
* @return List<NetworkManage>
*/
List<NetworkManage> listNetworkManages(String name, String type, Short status);
/**
*
*
* @param currentPage
* @param pageSize
* @param name
* @param type
* @param status
* @return Page<NetworkManage>
*/
Page<NetworkManage> pageNetworkManages(Integer currentPage, Integer pageSize, String name, String type, Short status);
}

View File

@ -0,0 +1,55 @@
package com.unisinsight.project.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.unisinsight.project.entity.dao.StoragePool;
import com.unisinsight.project.entity.req.StoragePoolReq;
/**
*
*/
public interface StoragePoolService {
/**
*
*
* @param storagePool
* @return StoragePool
*/
StoragePool addStoragePool(StoragePool storagePool);
/**
* ID
*
* @param storagePool
* @return boolean
*/
boolean updateStoragePool(StoragePool storagePool);
/**
* ID
*
* @param id ID
* @return boolean
*/
boolean deleteStoragePool(Long id);
/**
* ID
*
* @param id ID
* @return StoragePool
*/
StoragePool getStoragePoolById(Long id);
/**
*
*
* @param currentPage
* @param pageSize
* @param name
* @param type
* @param status
* @return Page<StoragePool>
*/
Page<StoragePool> pageStoragePools(StoragePoolReq storagePoolReq);
}

View File

@ -0,0 +1,132 @@
package com.unisinsight.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.unisinsight.project.entity.dao.NetworkManage;
import com.unisinsight.project.mapper.NetworkManageMapper;
import com.unisinsight.project.service.NetworkManageService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
*
*/
@Service
public class NetworkManageServiceImpl extends ServiceImpl<NetworkManageMapper, NetworkManage> implements NetworkManageService {
/**
*
*
* @param networkManage
* @return NetworkManage
*/
@Override
@Transactional(rollbackFor = Exception.class)
public NetworkManage addNetworkManage(NetworkManage networkManage) {
networkManage.setCreateTime(new Date());
networkManage.setUpdateTime(new Date());
this.save(networkManage);
return networkManage;
}
/**
* ID
*
* @param networkManage
* @return boolean
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateNetworkManage(NetworkManage networkManage) {
NetworkManage existing = this.getById(networkManage.getId());
if (existing == null) {
return false;
}
networkManage.setUpdateTime(new Date());
return this.updateById(networkManage);
}
/**
* ID
*
* @param id ID
* @return boolean
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteNetworkManage(Integer id) {
return this.removeById(id);
}
/**
* ID
*
* @param id ID
* @return NetworkManage
*/
@Override
public NetworkManage getNetworkManageById(Integer id) {
return this.getById(id);
}
/**
*
*
* @param name
* @param type
* @param status
* @return List<NetworkManage>
*/
@Override
public List<NetworkManage> listNetworkManages(String name, String type, Short status) {
QueryWrapper<NetworkManage> queryWrapper = new QueryWrapper<>();
// 添加查询条件
if (name != null && !name.isEmpty()) {
queryWrapper.like("name", name);
}
if (type != null && !type.isEmpty()) {
queryWrapper.eq("type", type);
}
if (status != null) {
queryWrapper.eq("status", status);
}
queryWrapper.orderByDesc("create_time");
return this.list(queryWrapper);
}
/**
*
*
* @param currentPage
* @param pageSize
* @param name
* @param type
* @param status
* @return Page<NetworkManage>
*/
@Override
public Page<NetworkManage> pageNetworkManages(Integer currentPage, Integer pageSize, String name, String type, Short status) {
Page<NetworkManage> page = new Page<>(currentPage, pageSize);
QueryWrapper<NetworkManage> queryWrapper = new QueryWrapper<>();
// 添加查询条件
if (name != null && !name.isEmpty()) {
queryWrapper.like("name", name);
}
if (type != null && !type.isEmpty()) {
queryWrapper.eq("type", type);
}
if (status != null) {
queryWrapper.eq("status", status);
}
queryWrapper.orderByDesc("create_time");
return this.page(page, queryWrapper);
}
}

View File

@ -0,0 +1,105 @@
package com.unisinsight.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.unisinsight.project.entity.dao.StoragePool;
import com.unisinsight.project.entity.req.StoragePoolReq;
import com.unisinsight.project.mapper.StoragePoolMapper;
import com.unisinsight.project.service.StoragePoolService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
/**
*
*/
@Service
public class StoragePoolServiceImpl extends ServiceImpl<StoragePoolMapper, StoragePool> implements StoragePoolService {
/**
*
*
* @param storagePool
* @return StoragePool
*/
@Override
@Transactional(rollbackFor = Exception.class)
public StoragePool addStoragePool(StoragePool storagePool) {
storagePool.setCreateTime(new Date());
storagePool.setUpdateTime(new Date());
this.save(storagePool);
return storagePool;
}
/**
* ID
*
* @param storagePool
* @return boolean
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateStoragePool(StoragePool storagePool) {
StoragePool existing = this.getById(storagePool.getId());
if (existing == null) {
return false;
}
storagePool.setUpdateTime(new Date());
return this.updateById(storagePool);
}
/**
* ID
*
* @param id ID
* @return boolean
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteStoragePool(Long id) {
return this.removeById(id);
}
/**
* ID
*
* @param id ID
* @return StoragePool
*/
@Override
public StoragePool getStoragePoolById(Long id) {
return this.getById(id);
}
/**
*
*
* @param currentPage
* @param pageSize
* @param name
* @param type
* @param status
* @return Page<StoragePool>
*/
@Override
public Page<StoragePool> pageStoragePools(StoragePoolReq storagePoolReq) {
Page<StoragePool> page = new Page<>(storagePoolReq.getPageNum(), storagePoolReq.getPageSize());
QueryWrapper<StoragePool> queryWrapper = new QueryWrapper<>();
// 添加查询条件
if (storagePoolReq.getName() != null && !storagePoolReq.getName().isEmpty()) {
queryWrapper.like("name", storagePoolReq.getName());
}
if (storagePoolReq.getType() != null && !storagePoolReq.getType().isEmpty()) {
queryWrapper.eq("type", storagePoolReq.getType());
}
if (storagePoolReq.getStatus() != null) {
queryWrapper.eq("status", storagePoolReq.getStatus());
}
queryWrapper.orderByDesc("create_time");
return this.page(page, queryWrapper);
}
}

View File

@ -27,6 +27,8 @@ spring:
init: init:
mode: always mode: always
data-locations: classpath*:db/*.sql data-locations: classpath*:db/*.sql
jackson:
property-naming-strategy: SNAKE_CASE
knife4j: knife4j:
production: false production: false