[ Server ] [ Project ] - 完成ProjectInfo部分的代码

This commit is contained in:
zeaslity
2023-10-09 14:23:42 +08:00
parent 5b0e3a418a
commit 17cd575767
13 changed files with 565 additions and 15 deletions

View File

@@ -0,0 +1,16 @@
package io.wdd.server.beans.mapper;
import io.wdd.server.beans.po.ProjectInfoPO;
import io.wdd.server.beans.vo.ProjectInfoVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper
public interface ProjectInfoDTOMapper {
ProjectInfoDTOMapper INSTANCE = Mappers.getMapper(ProjectInfoDTOMapper.class);
ProjectInfoPO voToPo(ProjectInfoVO projectInfoVO);
ProjectInfoVO poToVo(ProjectInfoPO projectInfoPO);
}

View File

@@ -0,0 +1,89 @@
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;
import java.time.LocalDateTime;
/**
* @TableName project_info
*/
@TableName(value = "project_info")
@Data
public class ProjectInfoPO implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "project_id")
private Long projectId;
/**
*
*/
@TableField(value = "project_name")
private String projectName;
/**
* 省份
*/
@TableField(value = "project_province")
private String projectProvince;
/**
*
*/
@TableField(value = "project_version")
private String projectVersion;
/**
*
*/
@TableField(value = "project_namespace")
private String projectNamespace;
/**
* 网络类型 0 完全访问公网 1 一台访问公网 2 完全无法访问公网
*/
@TableField(value = "deploy_net_env")
private Integer deployNetEnv;
/**
* 部署环境,阿里云,移动云、自建云等
*/
@TableField(value = "deploy_hardware_env")
private String deployHardwareEnv;
/**
* 部署时间
*/
@TableField(value = "create_time")
private LocalDateTime createTime;
/**
* 升级时间
*/
@TableField(value = "update_time")
private LocalDateTime updateTime;
/**
* 有效期
*/
@TableField(value = "expired_time")
private LocalDateTime expiredTime;
/**
* 行业组项目负责人
*/
@TableField(value = "trade_person_name")
private String tradePersonName;
/**
* 售前负责人
*/
@TableField(value = "pre_sale_person_name")
private String preSalePersonName;
/**
* 是否使用离线地图
*/
@TableField(value = "is_offline_map")
private Integer isOfflineMap;
/**
* 是否部署AI功能
*/
@TableField(value = "is_ai_deploy")
private Integer isAiDeploy;
}

View File

@@ -0,0 +1,100 @@
package io.wdd.server.beans.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.time.LocalDateTime;
/**
* @TableName project_info
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public class ProjectInfoVO {
/**
*
*/
@TableField(value = "project_name")
private String projectName;
/**
* 省份
*/
@TableField(value = "project_province")
private String projectProvince;
/**
*
*/
@TableField(value = "project_version")
private String projectVersion;
/**
*
*/
@TableField(value = "project_namespace")
private String projectNamespace;
/**
* 网络类型 0 完全访问公网 1 一台访问公网 2 完全无法访问公网
*/
@TableField(value = "deploy_net_env")
private Integer deployNetEnv;
/**
* 部署环境,阿里云,移动云、自建云等
*/
@TableField(value = "deploy_hardware_env")
private String deployHardwareEnv;
/**
* 部署时间
*/
@TableField(value = "create_time")
private LocalDateTime createTime;
/**
* 升级时间
*/
@TableField(value = "update_time")
private LocalDateTime updateTime;
/**
* 有效期
*/
@TableField(value = "expired_time")
private LocalDateTime expiredTime;
/**
* 行业组项目负责人
*/
@TableField(value = "trade_person_name")
private String tradePersonName;
/**
* 售前负责人
*/
@TableField(value = "pre_sale_person_name")
private String preSalePersonName;
/**
* 是否使用离线地图
*/
@TableField(value = "is_offline_map")
private Integer isOfflineMap;
/**
* 是否部署AI功能
*/
@TableField(value = "is_ai_deploy")
private Integer isAiDeploy;
}

View File

@@ -0,0 +1,70 @@
package io.wdd.server.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.wdd.common.response.R;
import io.wdd.server.beans.po.ProjectInfoPO;
import io.wdd.server.beans.vo.ProjectInfoVO;
import io.wdd.server.coreService.CoreProjectService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@Api("Octopus Server - 项目信息")
@RequestMapping("/project")
public class ProjectController {
@Resource
CoreProjectService projectService;
@GetMapping("/all")
@ApiOperation("项目-获取全部项目信息")
public R<List<ProjectInfoPO>> projectGetAll(
) {
return R.ok(projectService.projectGetAll());
}
@PostMapping("/create")
@ApiOperation("项目-创建一个项目")
public R<String> projectCreate(
@RequestBody ProjectInfoVO projectInfoVO
) {
String result = "创建项目成功!";
if (!projectService.projectCreate(projectInfoVO)) {
result = "创建项目失败!";
}
return R.ok(result);
}
@PostMapping("/update")
@ApiOperation("项目-更新一个项目")
public R<String> projectUpdate(
@RequestBody ProjectInfoPO projectInfoPO
) {
String result = "更新项目成功!";
if (!projectService.projectUpdate(projectInfoPO)) {
result = "更新项目失败!";
}
return R.ok(result);
}
@PostMapping("/delete")
@ApiOperation("项目-删除一个项目")
public R<String> projectDelete(
@RequestParam(value = "projectId", name = "项目的Id") @ApiParam(value = "项目的Id") Long projectId
) {
String result = "删除项目成功!";
if (!projectService.projectDelete(projectId)) {
result = "删除项目失败!";
}
return R.ok(result);
}
}

View File

@@ -0,0 +1,19 @@
package io.wdd.server.coreService;
import io.wdd.server.beans.po.ProjectInfoPO;
import io.wdd.server.beans.vo.ProjectInfoVO;
import java.util.List;
public interface CoreProjectService {
// 获取所有的角色
List<ProjectInfoPO> projectGetAll();
boolean projectCreate(ProjectInfoVO projectInfoVO);
boolean projectUpdate(ProjectInfoPO projectInfoPO);
boolean projectDelete(Long projectId);
}

View File

@@ -0,0 +1,64 @@
package io.wdd.server.coreService.impl;
import io.wdd.server.beans.mapper.ProjectInfoDTOMapper;
import io.wdd.server.beans.po.ProjectInfoPO;
import io.wdd.server.beans.vo.ProjectInfoVO;
import io.wdd.server.coreService.CoreProjectService;
import io.wdd.server.service.ProjectInfoService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
@Slf4j
public class CoreProjectServiceImpl implements CoreProjectService {
@Resource
ProjectInfoService projectInfoService;
@Override
public List<ProjectInfoPO> projectGetAll() {
return projectInfoService.list();
}
@Override
public boolean projectCreate(ProjectInfoVO projectInfoVO) {
if (!checkDataValid(projectInfoVO)) {
return false;
}
ProjectInfoPO projectInfoPO = ProjectInfoDTOMapper.INSTANCE.voToPo(projectInfoVO);
return projectInfoService.save(projectInfoPO);
}
private boolean checkDataValid(ProjectInfoVO projectInfoVO) {
if (StringUtils.isBlank(projectInfoVO.getProjectName())) {
return false;
}
return !StringUtils.isBlank(projectInfoVO.getProjectNamespace());
}
@Override
public boolean projectUpdate(ProjectInfoPO projectInfoPO) {
if (!checkDataValid(ProjectInfoDTOMapper.INSTANCE.poToVo(projectInfoPO))) {
return false;
}
return projectInfoService.saveOrUpdate(projectInfoPO);
}
@Override
public boolean projectDelete(Long projectId) {
return projectInfoService.removeById(projectId);
}
}

View File

@@ -32,10 +32,12 @@ public class CoreRoleServiceImpl implements CoreRoleService {
}
ServerRolePO serverRolePO = ServerRoleDTOMapper.INSTANCE.voToPo(serverRoleVO);
return serverRoleService.save(serverRolePO);
}
private boolean checkDataValid(ServerRoleVO serverRoleVO) {
if (StringUtils.isBlank(serverRoleVO.getRoleName())) {
return false;
}

View File

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

View File

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

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.ProjectInfoPO;
import io.wdd.server.mapper.ProjectInfoMapper;
import io.wdd.server.service.ProjectInfoService;
import org.springframework.stereotype.Service;
/**
* @author wdd
* @description 针对表【project_info】的数据库操作Service实现
* @createDate 2023-10-09 11:12:02
*/
@Service
public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, ProjectInfoPO>
implements ProjectInfoService {
}