Browse Source

添加project_indicator_compute相关代码

lixing 3 years ago
parent
commit
d821f58bde
16 changed files with 740 additions and 1 deletions
  1. 92 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/controller/ProjectIndicatorComputeController.java
  2. 15 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/dao/ProjectIndicatorComputeMapper.java
  3. 73 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/ConvertProjectIndicatorComputeTool.java
  4. 36 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/ProjectIndicatorCompute.java
  5. 28 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/AddProjectIndicatorComputeDTO.java
  6. 19 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/DeleteProjectIndicatorComputeDTO.java
  7. 30 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/PageQueryProjectIndicatorComputeDTO.java
  8. 24 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/QueryProjectIndicatorComputeDTO.java
  9. 19 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/QueryProjectIndicatorComputeDetailDTO.java
  10. 32 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/UpdateProjectIndicatorComputeDTO.java
  11. 41 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/vo/ProjectIndicatorComputeItemVO.java
  12. 41 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/vo/ProjectIndicatorComputeListItemVO.java
  13. 75 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/service/IProjectIndicatorComputeService.java
  14. 197 0
      src/main/java/com/persagy/apm/diagnose/indicatorcompute/service/impl/ProjectIndicatorComputeServiceImpl.java
  15. 1 1
      src/main/resources/db/init/table.sql
  16. 17 0
      src/main/resources/mapper/ProjectIndicatorComputeMapper.xml

+ 92 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/controller/ProjectIndicatorComputeController.java

@@ -0,0 +1,92 @@
+package com.persagy.apm.diagnose.indicatorcompute.controller;
+
+import com.persagy.apm.diagnose.indicatorcompute.service.IProjectIndicatorComputeService;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.persagy.apm.diagnose.indicatorcompute.model.*;
+import com.persagy.apm.diagnose.indicatorcompute.model.vo.*;
+import com.persagy.apm.diagnose.indicatorcompute.model.dto.*;
+import com.persagy.apm.common.response.*;
+import com.persagy.apm.common.utils.ResultHelper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 控制层
+ * @author lixing
+ * @version V1.0 2021-09-21 13:31:49
+ */
+@Api(tags = "") 
+@Validated
+@RestController
+@RequestMapping("projectIndicatorComputes")
+public class ProjectIndicatorComputeController {
+    @Autowired
+    private IProjectIndicatorComputeService projectIndicatorComputeService;
+
+	@ApiOperation(value = "创建")
+	@PostMapping("/create")
+	public CommonResult<ApmResponseUpsertVO> createProjectIndicatorCompute(
+	        @Valid @RequestBody AddProjectIndicatorComputeDTO addProjectIndicatorComputeDTO) {
+        String id = projectIndicatorComputeService.createProjectIndicatorCompute(addProjectIndicatorComputeDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+	}
+	
+	@ApiOperation(value = "详情")
+    @PostMapping("/get")
+    public CommonResult<ProjectIndicatorComputeItemVO> queryProjectIndicatorComputeDetail(
+            @Valid @RequestBody QueryProjectIndicatorComputeDetailDTO queryProjectIndicatorComputeDetailDTO) {
+        ProjectIndicatorCompute projectIndicatorCompute = projectIndicatorComputeService.queryProjectIndicatorComputeDetail(queryProjectIndicatorComputeDetailDTO.getId());
+        ProjectIndicatorComputeItemVO projectIndicatorComputeItemVO = ConvertProjectIndicatorComputeTool.INSTANCE.convert2ResponseItemDTO(projectIndicatorCompute);
+        return ResultHelper.single(projectIndicatorComputeItemVO);
+    }
+
+
+    @ApiOperation(value = "更新")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateProjectIndicatorCompute(
+            @Valid @RequestBody UpdateProjectIndicatorComputeDTO updateProjectIndicatorComputeDTO) {
+        projectIndicatorComputeService.updateProjectIndicatorCompute(updateProjectIndicatorComputeDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateProjectIndicatorComputeDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除")
+    @PostMapping("/delete")
+    public CommonResult deleteProjectIndicatorCompute(
+            @RequestBody @Valid DeleteProjectIndicatorComputeDTO deleteProjectIndicatorComputeDTO) {
+        projectIndicatorComputeService.deleteProjectIndicatorCompute(deleteProjectIndicatorComputeDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<ProjectIndicatorComputeListItemVO>> queryProjectIndicatorCompute(
+            @Valid @RequestBody QueryProjectIndicatorComputeDTO queryProjectIndicatorComputeDTO) {
+        List<ProjectIndicatorCompute> projectIndicatorComputeList = projectIndicatorComputeService.queryProjectIndicatorComputeList(queryProjectIndicatorComputeDTO);
+        List<ProjectIndicatorComputeListItemVO> resultList = ConvertProjectIndicatorComputeTool.INSTANCE.convert2List(projectIndicatorComputeList);
+        return ResultHelper.multi(resultList);
+    }
+    
+    //@ApiOperation(value = "列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<ProjectIndicatorComputeListItemVO>> queryProjectIndicatorCompute(
+    //        @Valid @RequestBody PageQueryProjectIndicatorComputeDTO pageQueryProjectIndicatorComputeDTO) {
+    //    IPage<ProjectIndicatorCompute> pagedList = projectIndicatorComputeService.pageQueryProjectIndicatorCompute(pageQueryProjectIndicatorComputeDTO);
+    //    IPage<ProjectIndicatorComputeListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertProjectIndicatorComputeTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,ProjectIndicatorCompute实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 15 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/dao/ProjectIndicatorComputeMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.apm.diagnose.indicatorcompute.dao;
+
+import com.persagy.apm.diagnose.indicatorcompute.model.ProjectIndicatorCompute;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * (ProjectIndicatorCompute)dao层
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:54
+ */
+@Mapper
+public interface ProjectIndicatorComputeMapper extends BaseMapper<ProjectIndicatorCompute>{
+
+}

+ 73 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/ConvertProjectIndicatorComputeTool.java

@@ -0,0 +1,73 @@
+package com.persagy.apm.diagnose.indicatorcompute.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.diagnose.indicatorcompute.model.vo.*;
+import com.persagy.apm.diagnose.indicatorcompute.model.dto.*;
+
+import java.util.List;
+
+/**
+ * (ProjectIndicatorCompute) dto、vo、do转换工具类
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:44
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertProjectIndicatorComputeTool {
+
+    ConvertProjectIndicatorComputeTool INSTANCE = Mappers.getMapper(ConvertProjectIndicatorComputeTool.class);
+    
+    /**
+    * do转换为ResponseItemVO
+    *
+    * @param projectIndicatorCompute do对象
+    * @return ResponseItemVO
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:44
+    */
+    ProjectIndicatorComputeItemVO convert2ResponseItemDTO(ProjectIndicatorCompute projectIndicatorCompute);
+    
+    /**
+    * do转换为ResponseListItemVO
+    *
+    * @param projectIndicatorCompute do对象
+    * @return ResponseListItemVO
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:44
+    */
+    ProjectIndicatorComputeListItemVO convert2ResponseListItemDTO(ProjectIndicatorCompute projectIndicatorCompute);
+
+    /**
+    * do列表转换为ResponseListItemVO列表
+    *
+    * @param projectIndicatorComputeList do列表
+    * @return ResponseListItemVO列表
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:44
+    */
+    List<ProjectIndicatorComputeListItemVO> convert2List(List<ProjectIndicatorCompute> projectIndicatorComputeList);
+    
+    /**
+    * addDTO转换为do
+    *
+    * @param addProjectIndicatorComputeDTO addDTO
+    * @return 要创建的do对象 
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:44
+    */
+    ProjectIndicatorCompute convertAddDto2Entity(AddProjectIndicatorComputeDTO addProjectIndicatorComputeDTO);
+    
+    /**
+    * updateDTO转换为实体
+    *
+    * @param projectIndicatorCompute 更新前的do对象
+    * @param updateProjectIndicatorComputeDTO updateDTO
+    * @return 更新后的do对象
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:44
+    */
+    ProjectIndicatorCompute convertUpdateDto2Entity(@MappingTarget ProjectIndicatorCompute projectIndicatorCompute, UpdateProjectIndicatorComputeDTO updateProjectIndicatorComputeDTO);
+}
+

+ 36 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/ProjectIndicatorCompute.java

@@ -0,0 +1,36 @@
+package com.persagy.apm.diagnose.indicatorcompute.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.apm.common.model.entity.AuditableEntity;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (ProjectIndicatorCompute)实体类
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:58
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "")
+public class ProjectIndicatorCompute extends AuditableEntity<ProjectIndicatorCompute> implements Serializable {
+    private static final long serialVersionUID = 467957951700438996L;
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("计算轮次")
+    private Integer computeRound;
+    
+    @ApiModelProperty("计算时间")
+    private Date computeTime;
+    
+
+    public static String PROP_PROJECT_ID = "project_id";
+    public static String PROP_COMPUTE_ROUND = "compute_round";
+    public static String PROP_COMPUTE_TIME = "compute_time";
+
+}

+ 28 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/AddProjectIndicatorComputeDTO.java

@@ -0,0 +1,28 @@
+package com.persagy.apm.diagnose.indicatorcompute.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:44
+ */
+@Data
+@ApiModel(value = "创建入参")
+public class AddProjectIndicatorComputeDTO {
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "计算轮次", required = true)
+    @NotNull(message = "计算轮次不能为空") // todo 更新校验规则
+    private Integer computeRound;
+    
+    @ApiModelProperty(value = "计算时间", required = true)
+    @NotNull(message = "计算时间不能为空") // todo 更新校验规则
+    private Date computeTime;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/DeleteProjectIndicatorComputeDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.diagnose.indicatorcompute.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-21 13:33:20
+ */
+@Data
+@ApiModel(value = "删除入参")
+public class DeleteProjectIndicatorComputeDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 30 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/PageQueryProjectIndicatorComputeDTO.java

@@ -0,0 +1,30 @@
+package com.persagy.apm.diagnose.indicatorcompute.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+import com.persagy.apm.common.model.dto.PageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-21 13:33:20
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询入参")
+public class PageQueryProjectIndicatorComputeDTO extends PageDTO {
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "计算轮次", required = true)
+    private Integer computeRound;
+    
+    @ApiModelProperty(value = "计算时间", required = true)
+    private Date computeTime;
+    
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 24 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/QueryProjectIndicatorComputeDTO.java

@@ -0,0 +1,24 @@
+package com.persagy.apm.diagnose.indicatorcompute.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:44
+ */
+@Data
+@ApiModel(value = "查询入参")
+public class QueryProjectIndicatorComputeDTO {
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "计算轮次", required = true)
+    private Integer computeRound;
+    
+    @ApiModelProperty(value = "计算时间", required = true)
+    private Date computeTime;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/QueryProjectIndicatorComputeDetailDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.diagnose.indicatorcompute.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-21 13:33:20
+ */
+@Data
+@ApiModel(value = "获取详情入参")
+public class QueryProjectIndicatorComputeDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 32 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/dto/UpdateProjectIndicatorComputeDTO.java

@@ -0,0 +1,32 @@
+package com.persagy.apm.diagnose.indicatorcompute.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:44
+ */
+@Data
+@ApiModel(value = "更新入参")
+public class UpdateProjectIndicatorComputeDTO {
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "计算轮次", required = true)
+    @NotNull(message = "计算轮次不能为空") // todo 更新校验规则
+    private Integer computeRound;
+    
+    @ApiModelProperty(value = "计算时间", required = true)
+    @NotNull(message = "计算时间不能为空") // todo 更新校验规则
+    private Date computeTime;
+    
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+    
+}

+ 41 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/vo/ProjectIndicatorComputeItemVO.java

@@ -0,0 +1,41 @@
+package com.persagy.apm.diagnose.indicatorcompute.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:44
+ */
+@Data
+@ApiModel(value = "返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectIndicatorComputeItemVO {
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("计算轮次")
+    private Integer computeRound;
+    
+    @ApiModelProperty("计算时间")
+    private Date computeTime;
+    
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("创建人")
+    private String creator;
+    
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+    
+    @ApiModelProperty("修改人")
+    private String modifier;
+    
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+    
+}

+ 41 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/model/vo/ProjectIndicatorComputeListItemVO.java

@@ -0,0 +1,41 @@
+package com.persagy.apm.diagnose.indicatorcompute.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-21 13:33:20
+ */
+@Data
+@ApiModel(value = "列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectIndicatorComputeListItemVO {
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("计算轮次")
+    private Integer computeRound;
+    
+    @ApiModelProperty("计算时间")
+    private Date computeTime;
+    
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("创建人")
+    private String creator;
+    
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+    
+    @ApiModelProperty("修改人")
+    private String modifier;
+    
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+    
+}

+ 75 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/service/IProjectIndicatorComputeService.java

@@ -0,0 +1,75 @@
+package com.persagy.apm.diagnose.indicatorcompute.service;
+
+import com.persagy.apm.diagnose.indicatorcompute.model.*;
+import com.persagy.apm.diagnose.indicatorcompute.model.dto.*;
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * (ProjectIndicatorCompute) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:54
+ */
+public interface IProjectIndicatorComputeService  {
+    
+    /**
+    * 创建
+    *
+    * @param addProjectIndicatorComputeDTO addDTO
+    * @return 主键
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:54
+    */
+    public String createProjectIndicatorCompute(AddProjectIndicatorComputeDTO addProjectIndicatorComputeDTO);
+    
+    /**
+    * 详情
+    *
+    * @param id 主键
+    * @return do对象
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:54
+    */
+    public ProjectIndicatorCompute queryProjectIndicatorComputeDetail(String id);
+    
+    /**
+    * 更新
+    *
+    * @param updateProjectIndicatorComputeDTO updateDTO
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:54
+    */
+    public void updateProjectIndicatorCompute(UpdateProjectIndicatorComputeDTO updateProjectIndicatorComputeDTO);
+    
+    /**
+    * 删除
+    *
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:54
+    */
+    public void deleteProjectIndicatorCompute(String id);
+    
+    /**
+    * 查询
+    *
+    * @param queryProjectIndicatorComputeDTO queryDTO
+    * @return List<ProjectIndicatorCompute>
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:54
+    */
+    public List<ProjectIndicatorCompute> queryProjectIndicatorComputeList(QueryProjectIndicatorComputeDTO queryProjectIndicatorComputeDTO);
+    
+    /**
+    * 分页查询
+    * 
+    * @param pageQueryProjectIndicatorComputeDTO pageQueryDTO
+    * @return IPage<ProjectIndicatorCompute>
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:54
+    */
+    public IPage<ProjectIndicatorCompute> pageQueryProjectIndicatorCompute(PageQueryProjectIndicatorComputeDTO pageQueryProjectIndicatorComputeDTO);
+}

+ 197 - 0
src/main/java/com/persagy/apm/diagnose/indicatorcompute/service/impl/ProjectIndicatorComputeServiceImpl.java

@@ -0,0 +1,197 @@
+package com.persagy.apm.diagnose.indicatorcompute.service.impl;
+
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.diagnose.indicatorcompute.dao.ProjectIndicatorComputeMapper;
+import com.persagy.apm.diagnose.indicatorcompute.service.IProjectIndicatorComputeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang.StringUtils;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.persagy.apm.diagnose.indicatorcompute.model.*;
+import com.persagy.apm.diagnose.indicatorcompute.model.dto.*;
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.model.dto.Sort;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * (ProjectIndicatorCompute) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-21 13:32:04
+ */
+@Service
+public class ProjectIndicatorComputeServiceImpl extends ServiceImpl<ProjectIndicatorComputeMapper, ProjectIndicatorCompute> 
+    implements IProjectIndicatorComputeService {
+    
+    /**
+    * 创建
+    * @return 主键
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:04
+    */
+    @Override
+    public String createProjectIndicatorCompute(AddProjectIndicatorComputeDTO addProjectIndicatorComputeDTO) {
+        ProjectIndicatorCompute projectIndicatorCompute = ConvertProjectIndicatorComputeTool.INSTANCE.convertAddDto2Entity(addProjectIndicatorComputeDTO);
+        // 设置默认值
+        setDefaultValue(projectIndicatorCompute);
+        save(projectIndicatorCompute);
+        return projectIndicatorCompute.getId();
+    }
+    
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param projectIndicatorCompute 实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(ProjectIndicatorCompute projectIndicatorCompute) {
+        projectIndicatorCompute.setCreator(PoemsContext.getContext().getUserId());
+        // todo 其他默认的属性
+        
+    }
+    
+    /**
+    * 详情
+    * @param id 主键
+    * @return 部门do类
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:04
+    */
+    @Override
+    public ProjectIndicatorCompute queryProjectIndicatorComputeDetail(String id) {
+        ProjectIndicatorCompute projectIndicatorCompute = getById(id);
+        if (projectIndicatorCompute == null) {
+            throw new IllegalArgumentException("查看ProjectIndicatorCompute详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return projectIndicatorCompute;
+    }
+    
+    /**
+    * 更新
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:04
+    */
+    @Override
+    public void updateProjectIndicatorCompute(UpdateProjectIndicatorComputeDTO updateProjectIndicatorComputeDTO) {
+        ProjectIndicatorCompute projectIndicatorCompute = getById(updateProjectIndicatorComputeDTO.getId());
+        projectIndicatorCompute = ConvertProjectIndicatorComputeTool.INSTANCE.convertUpdateDto2Entity(projectIndicatorCompute, updateProjectIndicatorComputeDTO);
+        projectIndicatorCompute.setModifier(PoemsContext.getContext().getUserId());
+        updateById(projectIndicatorCompute);
+    }
+    
+    /**
+     * 校验是否可删除
+     *
+     * @param id 主键
+     * @return do类
+     * @author lixing
+     * @version V1.0 2021-09-21 13:32:04
+     */
+    public ProjectIndicatorCompute checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除ProjectIndicatorCompute时发生异常,主键为空");
+        }
+
+        ProjectIndicatorCompute projectIndicatorCompute = getById(id);
+
+        if (projectIndicatorCompute == null) {
+            throw new IllegalArgumentException("删除ProjectIndicatorCompute时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return projectIndicatorCompute;
+    }
+    
+    /**
+    * 删除
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:04
+    */
+    @Override
+    public void deleteProjectIndicatorCompute(String id) {
+        // 校验是否可删除
+        ProjectIndicatorCompute projectIndicatorCompute = checkDeletable(id);
+
+        projectIndicatorCompute.setValid(ValidEnum.FALSE.getType());
+        updateById(projectIndicatorCompute);
+    }
+    
+    /**
+    * 查询
+    * @return List<ProjectIndicatorCompute>
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:04
+    */
+    @Override
+    public List<ProjectIndicatorCompute> queryProjectIndicatorComputeList(QueryProjectIndicatorComputeDTO queryProjectIndicatorComputeDTO) {
+        QueryWrapper<ProjectIndicatorCompute> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ProjectIndicatorCompute.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, ProjectIndicatorCompute.PROP_CREATIONTIME);
+        
+        if (queryProjectIndicatorComputeDTO != null) {
+                                
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryProjectIndicatorComputeDTO.getProjectId())) {
+                queryWrapper.like(ProjectIndicatorCompute.PROP_PROJECT_ID, queryProjectIndicatorComputeDTO.getProjectId());
+            }
+                                            
+            if (queryProjectIndicatorComputeDTO.getComputeRound() != null) {
+                queryWrapper.eq(ProjectIndicatorCompute.PROP_COMPUTE_ROUND, queryProjectIndicatorComputeDTO.getComputeRound());
+            }
+                                            
+            if (queryProjectIndicatorComputeDTO.getComputeTime() != null) {
+                queryWrapper.eq(ProjectIndicatorCompute.PROP_COMPUTE_TIME, queryProjectIndicatorComputeDTO.getComputeTime());
+            }
+                                            
+        }
+        
+        return list(queryWrapper);
+    }
+    
+    /**
+    * 分页查询
+    * @return IPage<ProjectIndicatorCompute>
+    * @author lixing
+    * @version V1.0 2021-09-21 13:32:04
+    */
+    @Override
+    public IPage<ProjectIndicatorCompute> pageQueryProjectIndicatorCompute(PageQueryProjectIndicatorComputeDTO pageQueryProjectIndicatorComputeDTO) {
+        QueryWrapper<ProjectIndicatorCompute> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ProjectIndicatorCompute.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<ProjectIndicatorCompute> pageParam = new Page<>(pageQueryProjectIndicatorComputeDTO.getPage(), pageQueryProjectIndicatorComputeDTO.getSize(),true);
+        // 排序信息
+        if(CollectionUtils.isEmpty(pageQueryProjectIndicatorComputeDTO.getOrders())){
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, ProjectIndicatorCompute.PROP_CREATIONTIME);
+        }else {
+            List<Sort> orders = pageQueryProjectIndicatorComputeDTO.getOrders();
+            for(Sort sort: orders) {
+                // 将驼峰转换为下划线格式
+                sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,sort.getColumn()));
+                queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
+            }
+        }
+                
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryProjectIndicatorComputeDTO.getProjectId())) {
+            queryWrapper.like(ProjectIndicatorCompute.PROP_PROJECT_ID, pageQueryProjectIndicatorComputeDTO.getProjectId());
+        }
+                            
+        if (pageQueryProjectIndicatorComputeDTO.getComputeRound() != null) {
+            queryWrapper.eq(ProjectIndicatorCompute.PROP_COMPUTE_ROUND, pageQueryProjectIndicatorComputeDTO.getComputeRound());
+        }
+                            
+        if (pageQueryProjectIndicatorComputeDTO.getComputeTime() != null) {
+            queryWrapper.eq(ProjectIndicatorCompute.PROP_COMPUTE_TIME, pageQueryProjectIndicatorComputeDTO.getComputeTime());
+        }
+                                    
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

File diff suppressed because it is too large
+ 1 - 1
src/main/resources/db/init/table.sql


+ 17 - 0
src/main/resources/mapper/ProjectIndicatorComputeMapper.xml

@@ -0,0 +1,17 @@
+<?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="com.persagy.apm.diagnose.indicatorcompute.dao.ProjectIndicatorComputeMapper">
+    <resultMap id="ProjectIndicatorComputeMap" type="com.persagy.apm.diagnose.indicatorcompute.model.ProjectIndicatorCompute">
+		<result column="project_id" property="projectId" />
+		<result column="compute_round" property="computeRound" />
+		<result column="compute_time" property="computeTime" />
+		<result column="id" property="id" />
+		<result column="ts" property="ts" />
+		<result column="creator" property="creator" />
+		<result column="creation_time" property="creationTime" />
+		<result column="modifier" property="modifier" />
+		<result column="modified_time" property="modifiedTime" />
+		<result column="valid" property="valid" />
+	</resultMap>
+</mapper>
+