0620 ljc 云资源管理模块编写
This commit is contained in:
parent
c9f72c1621
commit
6b0e4889b7
@ -0,0 +1,103 @@
|
|||||||
|
package cd.casic.ci.api;
|
||||||
|
|
||||||
|
|
||||||
|
import cd.casic.ci.process.dto.req.cloudResource.CloudResourceQueryReq;
|
||||||
|
import cd.casic.ci.process.dto.req.cloudResource.CloudResourceReq;
|
||||||
|
import cd.casic.ci.process.dto.resp.cloudResource.CloudResourceFindResp;
|
||||||
|
import cd.casic.ci.process.process.service.cloudResource.CloudResourceService;
|
||||||
|
import cd.casic.framework.commons.pojo.CommonResult;
|
||||||
|
import cd.casic.framework.commons.pojo.PageResult;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
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.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName cloudResource
|
||||||
|
* @Author hopeli
|
||||||
|
* @Date 2025/5/10 10:57
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/cloudResource")
|
||||||
|
public class CloudResourceController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CloudResourceService cloudResourceService;
|
||||||
|
|
||||||
|
@PostMapping(path="/createCloudResource")
|
||||||
|
public CommonResult<String> createCloudResource(@RequestBody @Valid CloudResourceReq req){
|
||||||
|
|
||||||
|
String resourceId = cloudResourceService.createCloudResource(req);
|
||||||
|
|
||||||
|
return CommonResult.success(resourceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @PostMapping(path="/deleteResource")
|
||||||
|
// public CommonResult<Void> deleteResource(@RequestBody @Valid BaseIdReq req){
|
||||||
|
//
|
||||||
|
// resourceManagerService.deleteResource(req.getId());
|
||||||
|
//
|
||||||
|
// return CommonResult.success();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @PostMapping(path="/findResourceList")
|
||||||
|
// public CommonResult<List<ResourceFindResp>> findResourceList(@RequestBody @Valid ResourceQueryReq req){
|
||||||
|
//
|
||||||
|
// List<ResourceFindResp> ResourceFindRespList = resourceManagerService.findResourceList(req);
|
||||||
|
//
|
||||||
|
// return CommonResult.success(ResourceFindRespList);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @PostMapping(path="/updateResource")
|
||||||
|
// public CommonResult<Void> updateResource(@RequestBody @NotNull @Valid ResourceReq resourceReq){
|
||||||
|
//
|
||||||
|
// resourceManagerService.updateResource(resourceReq);
|
||||||
|
//
|
||||||
|
// return CommonResult.success();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
|
||||||
|
@PostMapping(path="/findCloudResourcePage")
|
||||||
|
public CommonResult<PageResult<CloudResourceFindResp>> findCloudResourcePage(@RequestBody @NotNull @Valid CloudResourceQueryReq req){
|
||||||
|
|
||||||
|
PageResult<CloudResourceFindResp> respPage = cloudResourceService.findCloudResourcePage(req);
|
||||||
|
return CommonResult.success(respPage);
|
||||||
|
}
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @PostMapping(path="/findResourceById")
|
||||||
|
// public CommonResult<ResourceFindResp> findResourceById(@RequestBody @Valid BaseIdReq req){
|
||||||
|
//
|
||||||
|
// ResourceFindResp resp = resourceManagerService.findResourceById(req.getId());
|
||||||
|
//
|
||||||
|
// return CommonResult.success(resp);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @PostMapping(path="/findResourceListByType")
|
||||||
|
// public CommonResult<TaskResourceFindResp> findResourceListByType(@RequestBody @Valid ResourceQueryReq req){
|
||||||
|
//
|
||||||
|
// TaskResourceFindResp ResourceFindResp = resourceManagerService.findResourceListByType(req);
|
||||||
|
//
|
||||||
|
// return CommonResult.success(ResourceFindResp);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @PostMapping(path="/findResourceListForObjectByType")
|
||||||
|
// public CommonResult<List> findResourceListForObjectByType(@RequestBody @Valid ResourceQueryReq req){
|
||||||
|
//
|
||||||
|
// List resp = resourceManagerService.findResourceListForObjectByType(req);
|
||||||
|
//
|
||||||
|
// return CommonResult.success(resp);
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package cd.casic.ci.process.dto.req.cloudResource;
|
||||||
|
|
||||||
|
import cd.casic.framework.commons.pojo.PageParam;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CloudResourceQueryReq extends PageParam {
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private List<String> idList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人用户id
|
||||||
|
*/
|
||||||
|
private String creator;
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
package cd.casic.ci.process.dto.req.cloudResource;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CloudResourceReq {
|
||||||
|
/** 虚拟机类型 */
|
||||||
|
private String vmType;
|
||||||
|
|
||||||
|
/** 虚拟机名称 */
|
||||||
|
private String vmName;
|
||||||
|
|
||||||
|
/** 到期释放时间 */
|
||||||
|
private String expirationTime;
|
||||||
|
|
||||||
|
/** 数量 */
|
||||||
|
private String sum;
|
||||||
|
|
||||||
|
/** 平台 */
|
||||||
|
private String platform;
|
||||||
|
|
||||||
|
/** CPU架构 */
|
||||||
|
private String cpuFramework;
|
||||||
|
|
||||||
|
/** GPU配置状态 */
|
||||||
|
private String gpuStatus;
|
||||||
|
|
||||||
|
/** CPU内核数量 */
|
||||||
|
private String cpuCoreSum;
|
||||||
|
|
||||||
|
/** 内存 */
|
||||||
|
private String internalStorage;
|
||||||
|
|
||||||
|
/** 操作系统 */
|
||||||
|
private String os;
|
||||||
|
|
||||||
|
/** 系统盘类型 */
|
||||||
|
private String systemDiskType;
|
||||||
|
|
||||||
|
/** 系统盘内存大小 */
|
||||||
|
private String systemDiskInternalStorage;
|
||||||
|
|
||||||
|
/** 管理员账号 */
|
||||||
|
private String managerAccount;
|
||||||
|
|
||||||
|
/** 管理员密码 */
|
||||||
|
private String managerPassword;
|
||||||
|
|
||||||
|
/** 安全组 */
|
||||||
|
private String securityGroup;
|
||||||
|
|
||||||
|
/** 调度策略 */
|
||||||
|
private String schedulingPolicy;
|
||||||
|
|
||||||
|
/** 引导方式 */
|
||||||
|
private String bootMethod;
|
||||||
|
|
||||||
|
/** 备份机 */
|
||||||
|
private String backup;
|
||||||
|
|
||||||
|
/** 反亲和组 */
|
||||||
|
private String antiAffinityGroup;
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
package cd.casic.ci.process.dto.resp.cloudResource;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CloudResourceFindResp {
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/** 虚拟机类型 */
|
||||||
|
private String vmType;
|
||||||
|
|
||||||
|
/** 虚拟机名称 */
|
||||||
|
private String vmName;
|
||||||
|
|
||||||
|
/** 到期释放时间 */
|
||||||
|
private String expirationTime;
|
||||||
|
|
||||||
|
/** 数量 */
|
||||||
|
private String sum;
|
||||||
|
|
||||||
|
/** 平台 */
|
||||||
|
private String platform;
|
||||||
|
|
||||||
|
/** CPU架构 */
|
||||||
|
private String cpuFramework;
|
||||||
|
|
||||||
|
/** GPU配置状态 */
|
||||||
|
private String gpuStatus;
|
||||||
|
|
||||||
|
/** CPU内核数量 */
|
||||||
|
private String cpuCoreSum;
|
||||||
|
|
||||||
|
/** 内存 */
|
||||||
|
private String internalStorage;
|
||||||
|
|
||||||
|
/** 操作系统 */
|
||||||
|
private String os;
|
||||||
|
|
||||||
|
/** 系统盘类型 */
|
||||||
|
private String systemDiskType;
|
||||||
|
|
||||||
|
/** 系统盘内存大小 */
|
||||||
|
private String systemDiskInternalStorage;
|
||||||
|
|
||||||
|
/** 管理员账号 */
|
||||||
|
private String managerAccount;
|
||||||
|
|
||||||
|
/** 管理员密码 */
|
||||||
|
private String managerPassword;
|
||||||
|
|
||||||
|
/** 安全组 */
|
||||||
|
private String securityGroup;
|
||||||
|
|
||||||
|
/** 调度策略 */
|
||||||
|
private String schedulingPolicy;
|
||||||
|
|
||||||
|
/** 引导方式 */
|
||||||
|
private String bootMethod;
|
||||||
|
|
||||||
|
/** 备份机 */
|
||||||
|
private String backup;
|
||||||
|
|
||||||
|
/** 反亲和组 */
|
||||||
|
private String antiAffinityGroup;
|
||||||
|
|
||||||
|
//创建人id
|
||||||
|
private String creator;
|
||||||
|
|
||||||
|
//创建人姓名
|
||||||
|
private String creatorName;
|
||||||
|
|
||||||
|
//最后修改人id
|
||||||
|
private String updater;
|
||||||
|
|
||||||
|
//最后修改人姓名
|
||||||
|
private String updaterName;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package cd.casic.ci.process.process.converter;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.dto.req.cloudResource.CloudResourceReq;
|
||||||
|
import cd.casic.ci.process.dto.resp.cloudResource.CloudResourceFindResp;
|
||||||
|
import cd.casic.ci.process.process.dataObject.cloudResource.CloudResource;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author HopeLi
|
||||||
|
* @version v1.0
|
||||||
|
* @ClassName PipelineConverter
|
||||||
|
* @Date: 2025/5/13 14:39
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
@Mapper(componentModel = "spring")
|
||||||
|
public interface CloudResourceConverter {
|
||||||
|
CloudResourceConverter INSTANCE = Mappers.getMapper(CloudResourceConverter.class);
|
||||||
|
|
||||||
|
CloudResourceFindResp toResp(CloudResource req);
|
||||||
|
List<CloudResourceFindResp> toRespList(List<CloudResource> cloudResources);
|
||||||
|
|
||||||
|
|
||||||
|
CloudResource toBean(CloudResourceReq req);
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package cd.casic.ci.process.process.dao.cloudResource;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.process.dataObject.cloudResource.CloudResource;
|
||||||
|
import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author HopeLi
|
||||||
|
* @version v1.0
|
||||||
|
* @ClassName PipResourceDao
|
||||||
|
* @Date: 2025/5/13 14:39
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
public interface CloudResourceDao extends BaseMapperX<CloudResource> {
|
||||||
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
package cd.casic.ci.process.process.dataObject.cloudResource;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName PipResourceTmp
|
||||||
|
* @Author hopeli
|
||||||
|
* @Date 2025/31 21:40
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("cloud_resource")
|
||||||
|
public class CloudResource extends PipBaseElement {
|
||||||
|
/** 虚拟机类型 */
|
||||||
|
private String vmType;
|
||||||
|
|
||||||
|
/** 虚拟机名称 */
|
||||||
|
private String vmName;
|
||||||
|
|
||||||
|
/** 到期释放时间 */
|
||||||
|
private String expirationTime;
|
||||||
|
|
||||||
|
/** 数量 */
|
||||||
|
private String sum;
|
||||||
|
|
||||||
|
/** 平台 */
|
||||||
|
private String platform;
|
||||||
|
|
||||||
|
/** CPU架构 */
|
||||||
|
private String cpuFramework;
|
||||||
|
|
||||||
|
/** GPU配置状态 */
|
||||||
|
private String gpuStatus;
|
||||||
|
|
||||||
|
/** CPU内核数量 */
|
||||||
|
private String cpuCoreSum;
|
||||||
|
|
||||||
|
/** 内存 */
|
||||||
|
private String internalStorage;
|
||||||
|
|
||||||
|
/** 操作系统 */
|
||||||
|
private String os;
|
||||||
|
|
||||||
|
/** 系统盘类型 */
|
||||||
|
private String systemDiskType;
|
||||||
|
|
||||||
|
/** 系统盘内存大小 */
|
||||||
|
private String systemDiskInternalStorage;
|
||||||
|
|
||||||
|
/** 管理员账号 */
|
||||||
|
private String managerAccount;
|
||||||
|
|
||||||
|
/** 管理员密码 */
|
||||||
|
private String managerPassword;
|
||||||
|
|
||||||
|
/** 安全组 */
|
||||||
|
private String securityGroup;
|
||||||
|
|
||||||
|
/** 调度策略 */
|
||||||
|
private String schedulingPolicy;
|
||||||
|
|
||||||
|
/** 引导方式 */
|
||||||
|
private String bootMethod;
|
||||||
|
|
||||||
|
/** 备份机 */
|
||||||
|
private String backup;
|
||||||
|
|
||||||
|
/** 反亲和组 */
|
||||||
|
private String antiAffinityGroup;
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package cd.casic.ci.process.process.service.cloudResource;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.dto.req.cloudResource.CloudResourceQueryReq;
|
||||||
|
import cd.casic.ci.process.dto.req.cloudResource.CloudResourceReq;
|
||||||
|
import cd.casic.ci.process.dto.resp.cloudResource.CloudResourceFindResp;
|
||||||
|
import cd.casic.ci.process.process.dataObject.cloudResource.CloudResource;
|
||||||
|
import cd.casic.framework.commons.pojo.PageResult;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author HopeLi
|
||||||
|
* @version v1.0
|
||||||
|
* @ClassName ResourceService
|
||||||
|
* @Date: 2025/5/13 10:27
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
public interface CloudResourceService extends IService<CloudResource> {
|
||||||
|
|
||||||
|
String createCloudResource(@Valid CloudResourceReq req);
|
||||||
|
|
||||||
|
PageResult<CloudResourceFindResp> findCloudResourcePage(@Valid CloudResourceQueryReq req);
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
package cd.casic.ci.process.process.service.cloudResource.impl;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.dto.req.cloudResource.CloudResourceQueryReq;
|
||||||
|
import cd.casic.ci.process.dto.req.cloudResource.CloudResourceReq;
|
||||||
|
import cd.casic.ci.process.dto.resp.cloudResource.CloudResourceFindResp;
|
||||||
|
import cd.casic.ci.process.process.converter.CloudResourceConverter;
|
||||||
|
import cd.casic.ci.process.process.dao.cloudResource.CloudResourceDao;
|
||||||
|
import cd.casic.ci.process.process.dataObject.cloudResource.CloudResource;
|
||||||
|
import cd.casic.ci.process.process.service.cloudResource.CloudResourceService;
|
||||||
|
import cd.casic.framework.commons.pojo.PageResult;
|
||||||
|
import cd.casic.framework.security.dal.user.AdminUserDO;
|
||||||
|
import cd.casic.framework.tenant.core.service.AdminUserServiceImpl;
|
||||||
|
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 jakarta.annotation.Resource;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author HopeLi
|
||||||
|
* @version v1.0
|
||||||
|
* @ClassName ResourceServiceImpl
|
||||||
|
* @Date: 2025/5/13 10:31
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class CloudResourceServiceImpl extends ServiceImpl<CloudResourceDao, CloudResource> implements CloudResourceService {
|
||||||
|
@Resource
|
||||||
|
private CloudResourceDao cloudResourceDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AdminUserServiceImpl adminUserService;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String createCloudResource(CloudResourceReq req) {
|
||||||
|
CloudResource cloudResource = CloudResourceConverter.INSTANCE.toBean(req);
|
||||||
|
cloudResourceDao.insert(cloudResource);
|
||||||
|
return cloudResource.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<CloudResourceFindResp> findCloudResourcePage(CloudResourceQueryReq query) {
|
||||||
|
QueryWrapper<CloudResource> wrapper = new QueryWrapper<>();
|
||||||
|
if (!ObjectUtils.isEmpty(query.getId())){
|
||||||
|
wrapper.eq("id",query.getId());
|
||||||
|
}
|
||||||
|
if (!ObjectUtils.isEmpty(query.getIdList())){
|
||||||
|
wrapper.in("id",query.getId());
|
||||||
|
}
|
||||||
|
if (!ObjectUtils.isEmpty(query.getCreator())){
|
||||||
|
wrapper.eq("creator",query.getCreator());
|
||||||
|
}
|
||||||
|
Page<CloudResource> cloudResourcePage = cloudResourceDao.selectPage(new Page<>(query.getPageNo(), query.getPageSize()), wrapper);
|
||||||
|
|
||||||
|
if (ObjectUtils.isEmpty(cloudResourcePage)){
|
||||||
|
return new PageResult<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<CloudResourceFindResp> respList = CloudResourceConverter.INSTANCE.toRespList(cloudResourcePage.getRecords());
|
||||||
|
|
||||||
|
//对资源进行赋值
|
||||||
|
respList.forEach(this::setUserName);
|
||||||
|
|
||||||
|
PageResult<CloudResourceFindResp> pageResult = new PageResult<>(respList,cloudResourcePage.getTotal(),cloudResourcePage.getCurrent(),cloudResourcePage.getSize());
|
||||||
|
return pageResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void setUserName(CloudResourceFindResp resp) {
|
||||||
|
if (!StringUtils.isEmpty(resp.getCreator())){
|
||||||
|
AdminUserDO user = adminUserService.getUser(Long.valueOf(resp.getCreator()));
|
||||||
|
if (!ObjectUtils.isEmpty(user)){
|
||||||
|
resp.setCreatorName(user.getUsername());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(resp.getUpdater())){
|
||||||
|
AdminUserDO user = adminUserService.getUser(Long.valueOf(resp.getUpdater()));
|
||||||
|
if (!ObjectUtils.isEmpty(user)){
|
||||||
|
resp.setUpdaterName(user.getUsername());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user