[ Server ] [ Project ] - 基本完成Project绑定Server的部分查询内容

This commit is contained in:
zeaslity
2023-10-09 17:22:00 +08:00
parent 36b378ff47
commit 493741c2bc
13 changed files with 315 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
package io.wdd.server.beans.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* @TableName project_server_relation
*/
@TableName(value = "project_server_relation")
@Data
public class ProjectServerRelationPO implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "server_id")
private Long serverId;
/**
*
*/
@TableField(value = "project_id")
private Long projectId;
}

View File

@@ -0,0 +1,25 @@
package io.wdd.server.beans.vo;
import io.swagger.annotations.ApiModel;
import io.wdd.server.beans.po.ProjectInfoPO;
import io.wdd.server.beans.po.ServerInfoPO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
@ApiModel("Project-Server绑定关系实体类")
public class ProjectServerVO extends ProjectInfoPO {
/* Project */
List<ServerInfoPO> bindingServerList;
/* Server */
}

View File

@@ -0,0 +1,22 @@
package io.wdd.server.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.wdd.common.response.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/project-server")
@Api("Project-Server绑定")
public class ProjectServerController {
@GetMapping("/all")
@ApiOperation("Project-Server查询所有项目的服务器信息")
public R<String> projectServerAll() {
return null;
}
}

View File

@@ -91,6 +91,11 @@ public class ServerController {
return R.failed("Delete Server Failed !"); return R.failed("Delete Server Failed !");
} }
/*
* 保定Project
* */
// create with projectId
/* /*
* Associated with appInfo * Associated with appInfo

View File

@@ -0,0 +1,23 @@
package io.wdd.server.coreService;
import io.wdd.server.beans.request.ProjectQueryEntity;
import io.wdd.server.beans.vo.ProjectServerVO;
import java.util.List;
public interface CoreProjectServerService {
// 查询所有项目-服务器绑定关系
List<ProjectServerVO> projectServerAll();
ProjectServerVO projectServerQuery(ProjectQueryEntity projectQueryEntity);
ProjectServerVO projectServerOne(Long projectId);
boolean projectServerCreate(Long projectId, Long serverId);
boolean projectServerUpdate(Long projectId, Long serverId);
boolean projectServerDelete(Long projectId, Long serverId);
}

View File

@@ -14,6 +14,8 @@ public interface CoreProjectService {
Page<ProjectInfoPO> projectQueryByEntity(ProjectQueryEntity projectQueryEntity); Page<ProjectInfoPO> projectQueryByEntity(ProjectQueryEntity projectQueryEntity);
ProjectInfoPO projectGetOne(Long projectId);
boolean projectCreate(ProjectInfoVO projectInfoVO); boolean projectCreate(ProjectInfoVO projectInfoVO);
boolean projectUpdate(ProjectInfoPO projectInfoPO); boolean projectUpdate(ProjectInfoPO projectInfoPO);

View File

@@ -0,0 +1,117 @@
package io.wdd.server.coreService.impl;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.wdd.server.beans.po.ProjectInfoPO;
import io.wdd.server.beans.po.ProjectServerRelationPO;
import io.wdd.server.beans.po.ServerInfoPO;
import io.wdd.server.beans.request.ProjectQueryEntity;
import io.wdd.server.beans.vo.ProjectServerVO;
import io.wdd.server.coreService.CoreProjectServerService;
import io.wdd.server.coreService.CoreProjectService;
import io.wdd.server.service.ProjectServerRelationService;
import io.wdd.server.service.ServerInfoService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class CoreProjectServerServiceImpl implements CoreProjectServerService {
@Resource
CoreProjectService coreProjectService;
@Resource
ProjectServerRelationService projectServerRelationService;
@Resource
ServerInfoService serverInfoService;
@Override
public List<ProjectServerVO> projectServerAll() {
return null;
}
@Override
public ProjectServerVO projectServerQuery(ProjectQueryEntity projectQueryEntity) {
Page<ProjectInfoPO> projectInfoPOPage = coreProjectService.projectQueryByEntity(projectQueryEntity);
if (projectInfoPOPage
.getRecords()
.size() == 0) {
return null;
}
// 假定是唯一性查询
ProjectInfoPO projectInfoPO = projectInfoPOPage
.getRecords()
.get(0);
// 为了统一 再查一次
return this.projectServerOne(projectInfoPO.getProjectId());
}
@Override
public ProjectServerVO projectServerOne(Long projectId) {
// 查询与之绑定的所有server
// serverId projectId
List<ProjectServerRelationPO> projectServerRelationPOList = new LambdaQueryChainWrapper<ProjectServerRelationPO>(projectServerRelationService.getBaseMapper())
.eq(
ProjectServerRelationPO::getProjectId,
projectId
)
.list();
if (CollectionUtils.isEmpty(projectServerRelationPOList)) {
return null;
}
// 获取 projectId对应的所有serverId
List<Long> serverIdList = projectServerRelationPOList
.stream()
.map(ps -> ps.getServerId())
.collect(Collectors.toList());
// 查询server详情
List<ServerInfoPO> serverInfoPOS = serverInfoService.listByIds(serverIdList);
// 查询
ProjectInfoPO projectInfoPO = coreProjectService.projectGetOne(projectId);
if (projectInfoPO == null) {
return null;
}
// 构造返回结果
ProjectServerVO projectServerVO = new ProjectServerVO();
BeanUtils.copyProperties(
projectInfoPO,
projectServerVO
);
projectServerVO.setBindingServerList(serverInfoPOS);
return projectServerVO;
}
@Override
public boolean projectServerCreate(Long projectId, Long serverId) {
return false;
}
@Override
public boolean projectServerUpdate(Long projectId, Long serverId) {
return false;
}
@Override
public boolean projectServerDelete(Long projectId, Long serverId) {
return false;
}
}

View File

@@ -62,6 +62,12 @@ public class CoreProjectServiceImpl implements CoreProjectService {
return poPage; return poPage;
} }
@Override
public ProjectInfoPO projectGetOne(Long projectId) {
return projectInfoService.getById(projectId);
}
@Override @Override
public boolean projectCreate(ProjectInfoVO projectInfoVO) { public boolean projectCreate(ProjectInfoVO projectInfoVO) {

View File

@@ -0,0 +1,18 @@
package io.wdd.server.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import io.wdd.server.beans.po.ProjectServerRelationPO;
/**
* @author wdd
* @description 针对表【project_server_relation】的数据库操作Mapper
* @createDate 2023-10-09 16:11:10
* @Entity io.wdd.server.beans.po.ProjectServerRelationPO
*/
public interface ProjectServerRelationMapper extends BaseMapper<ProjectServerRelationPO> {
}

View File

@@ -0,0 +1,13 @@
package io.wdd.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import io.wdd.server.beans.po.ProjectServerRelationPO;
/**
* @author wdd
* @description 针对表【project_server_relation】的数据库操作Service
* @createDate 2023-10-09 16:11:10
*/
public interface ProjectServerRelationService extends IService<ProjectServerRelationPO> {
}

View File

@@ -0,0 +1,22 @@
package io.wdd.server.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.wdd.server.beans.po.ProjectServerRelationPO;
import io.wdd.server.mapper.ProjectServerRelationMapper;
import io.wdd.server.service.ProjectServerRelationService;
import org.springframework.stereotype.Service;
/**
* @author wdd
* @description 针对表【project_server_relation】的数据库操作Service实现
* @createDate 2023-10-09 16:11:10
*/
@Service
public class ProjectServerRelationServiceImpl extends ServiceImpl<ProjectServerRelationMapper, ProjectServerRelationPO>
implements ProjectServerRelationService {
}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="io.wdd.server.mapper.ProjectServerRelationMapper">
<resultMap id="BaseResultMap" type="io.wdd.server.beans.po.ProjectServerRelationPO">
<id property="serverId" column="server_id" jdbcType="BIGINT"/>
<result property="projectId" column="project_id" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
server_id
,project_id
</sql>
</mapper>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="io.wdd.server.mapper.ProjectServerRelationMapper">
<resultMap id="BaseResultMap" type="io.wdd.server.beans.po.ProjectServerRelationPO">
<id property="serverId" column="server_id" jdbcType="BIGINT"/>
<result property="projectId" column="project_id" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
server_id
,project_id
</sql>
</mapper>