[ Server ] [ Project ] - 基本完成Project绑定Server的部分查询内容
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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 */
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -91,6 +91,11 @@ public class ServerController {
|
||||
return R.failed("Delete Server Failed !");
|
||||
}
|
||||
|
||||
/*
|
||||
* 保定Project
|
||||
* */
|
||||
// create with projectId
|
||||
|
||||
|
||||
/*
|
||||
* Associated with appInfo
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
@@ -14,6 +14,8 @@ public interface CoreProjectService {
|
||||
|
||||
Page<ProjectInfoPO> projectQueryByEntity(ProjectQueryEntity projectQueryEntity);
|
||||
|
||||
ProjectInfoPO projectGetOne(Long projectId);
|
||||
|
||||
boolean projectCreate(ProjectInfoVO projectInfoVO);
|
||||
|
||||
boolean projectUpdate(ProjectInfoPO projectInfoPO);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -62,6 +62,12 @@ public class CoreProjectServiceImpl implements CoreProjectService {
|
||||
return poPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectInfoPO projectGetOne(Long projectId) {
|
||||
|
||||
return projectInfoService.getById(projectId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean projectCreate(ProjectInfoVO projectInfoVO) {
|
||||
|
||||
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user