Commit 3a455b32 authored by itcast's avatar itcast

Merge remote-tracking branch 'origin/master'

parents ced9d38e e135f2be
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<webroots />
</configuration>
</facet>
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.2" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project" />
<orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.41" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.4.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.4.2" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.4.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.3" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.2" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.12" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.0.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.1" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.12" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.1.10" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:2.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.62" level="project" />
<orderEntry type="library" name="Maven: org.postgresql:postgresql:9.4.1212.jre7" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.16" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-starter:2.0.9" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-autoconfigure:2.0.9" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring:2.0.9" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-annotations:2.0.9" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:2.0.9" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.4.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.4.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.4.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.18.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.7.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.7.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.7.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.6.28" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.19" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.19" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.6.28" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.7.0" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.7.16" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.1" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-base:4.3.0" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:16.0.1" level="project" />
<orderEntry type="library" name="Maven: ognl:ognl:3.2.6" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-web:4.3.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.3" level="project" />
<orderEntry type="library" name="Maven: cn.afterturn:easypoi-annotation:4.3.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-boot-starter:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-oas:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.1.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models:2.1.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.8.83" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webmvc:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webflux:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:3.0.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.mapstruct:mapstruct:1.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-data-rest:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:3.0.0" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:3.0.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:2.0.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-ui:2.0.8" level="project" />
</component>
</module>
\ No newline at end of file
package com.pms.ocp.common.constants;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/8 17:09
*/
public interface Constants {
/**
* 数字产量
*/
interface NumberConstant{
Integer ZERO = 0;
}
}
package com.pms.ocp.common.utils;
import com.pms.ocp.model.entity.TreeNode;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/8 17:51
*/
public class TreeUtils {
/**
* 根据pid,构建树节点
*/
public static <T extends TreeNode> List<T> build(List<T> treeNodes, Long pid) {
List<T> treeList = new ArrayList<>();
for(T treeNode : treeNodes) {
if (pid.equals(treeNode.getPid())) {
treeList.add(findChildren(treeNodes, treeNode));
}
}
return treeList;
}
/**
* 查找子节点
*/
private static <T extends TreeNode> T findChildren(List<T> treeNodes, T rootNode) {
for(T treeNode : treeNodes) {
if(rootNode.getId().equals(treeNode.getPid())) {
rootNode.getChildren().add(findChildren(treeNodes, treeNode));
}
}
return rootNode;
}
/**
* 构建树节点
*/
public static <T extends TreeNode> List<T> build(List<T> treeNodes) {
List<T> result = new ArrayList<>();
//list转map
Map<Long, T> nodeMap = new LinkedHashMap<>(treeNodes.size());
for(T treeNode : treeNodes){
nodeMap.put(treeNode.getId(), treeNode);
}
for(T node : nodeMap.values()) {
T parent = nodeMap.get(node.getPid());
if(parent != null && !(node.getId().equals(parent.getId()))){
parent.getChildren().add(node);
continue;
}
result.add(node);
}
return result;
}
}
package com.pms.ocp.controller;
import com.pms.ocp.model.entity.OcpTenantGroup;
import com.pms.ocp.model.vo.ResponseVO;
import com.pms.ocp.service.AppArrangeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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: AppArrangeController
* @Description:应用分类管理接口
* @atuthor: pei-chenxi
* @DateTime: 2022/3/9 14:15
*/
@Slf4j
@RestController
@RequestMapping("/app-arrange/vl")
@Api(tags = "应用分类管理接口")
public class AppArrangeController {
@Autowired
private AppArrangeService appArrangeService;
@PostMapping("/update/app")
@ApiOperation("应用分类修改")
public ResponseVO updateApp(@RequestBody OcpTenantGroup ocpTenantGroup){
boolean flag = appArrangeService.updateApp(ocpTenantGroup);
if (flag){
return ResponseVO.ok();
}
return ResponseVO.error("您输入的分类编码重复,请重新输入");
}
}
...@@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.*; ...@@ -19,7 +19,6 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import static com.pms.ocp.common.constants.CodeEnum.REQUIRED_PARAMETER_EMPTY; import static com.pms.ocp.common.constants.CodeEnum.REQUIRED_PARAMETER_EMPTY;
import static com.pms.ocp.common.constants.CodeEnum.SUCCESS;
/** /**
* @Auther: wangjian * @Auther: wangjian
......
package com.pms.ocp.controller;
import com.github.pagehelper.PageInfo;
import com.pms.ocp.model.entity.ModelType;
import com.pms.ocp.model.vo.OcpModelGroupVO;
import com.pms.ocp.model.vo.ResponseVO;
import com.pms.ocp.service.ModelClassifyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/8 15:08
*/
@Slf4j
@RequestMapping("/modelClassify")
@RestController
@Api(tags = "模型分类")
public class ModelClassifyController {
@Autowired
private ModelClassifyService modelClassifyService;
/**
* 模型分类导航
*
* @param searchCondition 分类名称
* @return pms.ocp.model.vo.ResponseVO
* @author huxiuwu
* @date 2022/3/9
**/
@ApiOperation("模型分类导航")
@GetMapping("/navigation")
public ResponseVO<List<OcpModelGroupVO>> getModelNavigation(String searchCondition) {
return modelClassifyService.getModelNavigation(searchCondition);
}
/**
* 右侧子类详情列表
*
* @return pms.ocp.model.vo.ResponseVO
* @author huxiuwu
* @date 2022/3/9
**/
@ApiOperation("右侧子类详情列表")
@GetMapping("/subclassDetailsList")
public ResponseVO<PageInfo<OcpModelGroupVO>> subclassDetailsList(@RequestParam(required = false) int pageSize,
@RequestParam(required = false) int pageNum,
@RequestParam(required = false,defaultValue = "") String parentGroupCode,
@RequestParam(required = false) String subclassGroupName
) {
return modelClassifyService.subclassDetailsList(pageSize, pageNum, parentGroupCode, subclassGroupName);
}
/**
* 新增
*
* @param list 新增分类列表
* @return pms.ocp.model.vo.ResponseVO
* @author huxiuwu
* @date 2022/3/9
**/
@ApiOperation("新增")
@PostMapping("/insert")
public ResponseVO insert(@RequestBody List<ModelType> list) {
return modelClassifyService.insert(list);
}
/**
* 修改
*
* @param list 修改list
* @return pms.ocp.model.vo.ResponseVO
* @author huxiuwu
* @date 2022/3/9
**/
@ApiOperation("修改")
@PostMapping("/update")
public ResponseVO update(@RequestBody List<ModelType> list) {
return modelClassifyService.update(list);
}
}
package com.pms.ocp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pms.ocp.model.entity.OcpTenantGroup;
import org.apache.ibatis.annotations.Mapper;
/**
* @className: AppArrangeMapper
* @Description:应用分类数据层
* @atuthor: pei-chenxi
* @DateTime: 2022/3/9 14:18
*/
@Mapper
public interface AppArrangeMapper extends BaseMapper<OcpTenantGroup> {
}
package com.pms.ocp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pms.ocp.model.vo.OcpModelGroupVO;
import org.apache.ibatis.annotations.Mapper;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/8 15:22
*/
@Mapper
public interface ModelClassifyMapper extends BaseMapper<OcpModelGroupVO> {
}
package com.pms.ocp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pms.ocp.model.entity.ModelType;
import org.apache.ibatis.annotations.Mapper;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/9 9:47
*/
@Mapper
public interface OcpModelGroupMapper extends BaseMapper<ModelType> {
}
package com.pms.ocp.model.dto;
import lombok.Data;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/9 10:27
*/
@Data
public class ModelClassifyDTO {
private String parentGroupCode;
private String subclassGroupName;
}
package com.pms.ocp.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @param <T>
* @author admin
*/
@Data
@ApiModel(value = "分页工具类",description = "分页工具类")
public class PageRequest<T> {
private static final long serialVersionUID = 8167917284229912157L;
@ApiModelProperty(value = "当前页码")
private int pageSize;
@ApiModelProperty(value = "每页大小")
private int pageNum;
@ApiModelProperty(value = "其他查询条件")
private T query;
public int getPageSize() {
return pageSize == 0 ? 10 : pageSize;
}
public int getPageNum() {
return pageNum == 0 ? 1 : pageNum;
}
}
\ No newline at end of file
package com.pms.ocp.model.entity;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/8 17:53
*/
public class TreeNode<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private Long id;
/**
* 上级ID
*/
private Long pid;
/**
* 子节点列表
*/
private List<T> children = new ArrayList<>();
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getPid() {
return pid;
}
public void setPid(Long pid) {
this.pid = pid;
}
public List<T> getChildren() {
return children;
}
public void setChildren(List<T> children) {
this.children = children;
}
}
package com.pms.ocp.model.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 模型分类表(OcpModelGroupMapper)实体类
*
* @author huxiuwu
* @since 2022-03-08 11:12:56
*/
@Data
@TableName("ocp_model_group")
public class OcpModelGroupVO implements Serializable {
private static final long serialVersionUID = 800319672890485601L;
/**
* 主键
*/
@ApiModelProperty(value = "主键")
private String objId;
/**
* 模型分类名称
*/
@ApiModelProperty(value = "模型分类名称")
private String modelGroupName;
/**
* 模型分类编码
*/
@ApiModelProperty(value = "模型分类编码")
private String modelGroupCode;
/**
* 上级模型分类id
*/
@ApiModelProperty(value = "上级模型分类id")
private String modelGroupPcode;
/**
* 上级模型分类id
*/
@ApiModelProperty(value = "上级模型分类名称")
@TableField(exist = false)
private String modelGroupPName;
/**
* 分类版本
*/
@ApiModelProperty(value = "分类版本")
private String groupVersion;
/**
* 展示顺序
*/
@ApiModelProperty(value = "展示顺序")
private Integer groupOrderNo;
/**
* 所属公司
*/
@ApiModelProperty(value = "所属公司")
private String groupCompanyCode;
/**
* 提交人id
*/
@ApiModelProperty(value = "提交人id")
private String groupUserId;
/**
* 提交人姓名
*/
@ApiModelProperty(value = "提交人姓名")
private String groupUserName;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date groupCtime;
/**
* 修改时间
*/
@ApiModelProperty(value = "修改时间")
private Date groupMtime;
/**
* 是否已删除0未删除 1未删除
*/
@ApiModelProperty(value = "是否已删除0未删除 1未删除")
private Integer isDelete;
/**
* 子类集合
*/
@TableField(exist = false)
@ApiModelProperty(value = "子类集合")
List<OcpModelGroupVO> childrenList;
}
package com.pms.ocp.service;
import com.pms.ocp.model.entity.OcpTenantGroup;
/**
* @className: AppArrangeService
* @Description:应用分类业务层接口
* @atuthor: pei-chenxi
* @DateTime: 2022/3/9 14:17
*/
public interface AppArrangeService {
/**
* @Description:应用分类修改
* @param ocpTenantGroup
* @return
*/
boolean updateApp(OcpTenantGroup ocpTenantGroup);
}
package com.pms.ocp.service;
import com.pms.ocp.model.entity.ModelType;
import com.pms.ocp.model.vo.OcpModelGroupVO;
import com.pms.ocp.model.vo.ResponseVO;
import java.util.List;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/8 15:19
*/
public interface ModelClassifyService {
ResponseVO<List<OcpModelGroupVO>> getModelNavigation(String searchCondition);
ResponseVO insert(List<ModelType> list);
ResponseVO subclassDetailsList(int pageSize,int pageNum,String parentGroupCode,String subclassGroupName);
ResponseVO update(List<ModelType> list);
}
package com.pms.ocp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pms.ocp.model.entity.ModelType;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/9 9:44
*/
public interface OcpModelGroupService extends IService<ModelType> {
}
package com.pms.ocp.service.impl;
import com.pms.ocp.mapper.AppArrangeMapper;
import com.pms.ocp.model.entity.OcpApiGroup;
import com.pms.ocp.model.entity.OcpTenantGroup;
import com.pms.ocp.service.AppArrangeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @className: AppArrangeServiceImpl
* @Description:应用分类业务层
* @atuthor: pei-chenxi
* @DateTime: 2022/3/9 14:17
*/
@Service
@Slf4j
public class AppArrangeServiceImpl implements AppArrangeService {
@Autowired
private AppArrangeMapper appArrangeMapper;
/**
* @Description: 应用分类修改
* @param ocpTenantGroup
* @return falg
**/
@Override
public boolean updateApp(OcpTenantGroup ocpTenantGroup) {
boolean falg = true;
List<OcpTenantGroup> ocpTenantGroups = appArrangeMapper.selectList(null);
for (OcpTenantGroup tenantGroup : ocpTenantGroups) {
String code = tenantGroup.getTenantGroupCode();
if (code == ocpTenantGroup.getTenantGroupCode()) {
falg = false;
break;
}
}
appArrangeMapper.updateById(ocpTenantGroup);
return falg;
}
}
package com.pms.ocp.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.pms.ocp.common.constants.CodeEnum;
import com.pms.ocp.mapper.ModelClassifyMapper;
import com.pms.ocp.model.entity.ModelType;
import com.pms.ocp.model.vo.OcpModelGroupVO;
import com.pms.ocp.model.vo.ResponseVO;
import com.pms.ocp.service.ModelClassifyService;
import com.pms.ocp.service.OcpModelGroupService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/8 15:20
*/
@Service
public class ModelClassifyServiceImpl implements ModelClassifyService {
@Resource
private ModelClassifyMapper classifyMapper;
@Resource
private OcpModelGroupService ocpService;
/**
* 模型分类-导航树
*
* @param searchCondition 搜索条件
* @return List<com.pms.ocp.model.vo.OcpModelGroupVO>
* @author huxiuwu
* @date 2022/3/8
**/
@Override
public ResponseVO<List<OcpModelGroupVO>> getModelNavigation(String searchCondition) {
//根据是否传入搜索条件创建构造器进行查询
List<OcpModelGroupVO> modelTypeList = this.selectByCondition(searchCondition, null);
if (CollectionUtil.isEmpty(modelTypeList)) {
return ResponseVO.error(CodeEnum.NO_DATA);
}
//对模型分类信息进行处理
List<OcpModelGroupVO> resultList = this.build(modelTypeList);
return ResponseVO.ok(resultList);
}
/**
* 右侧子类详情列表
*
* @return pms.ocp.model.vo.ResponseVO
* @author huxiuwu
* @date 2022/3/9
**/
@Override
public ResponseVO<PageInfo<OcpModelGroupVO>> subclassDetailsList(int pageSize,int pageNum,String parentGroupCode,String subclassGroupName) {
PageHelper.startPage(pageSize,pageNum);
List<OcpModelGroupVO> ocpModelGroupVOList = this.selectByCondition(null,subclassGroupName);
Map<String, OcpModelGroupVO> groupByCode = ocpModelGroupVOList.stream().collect(Collectors.toMap(OcpModelGroupVO::getModelGroupCode, Function.identity(), (key1, key2) -> key2));
OcpModelGroupVO ocpModelGroupVO = groupByCode.get(parentGroupCode);
List<OcpModelGroupVO> childrenList = findChildren(ocpModelGroupVOList, ocpModelGroupVO, new LinkedList<>());
PageInfo<OcpModelGroupVO> pageInfo = new PageInfo<>(childrenList);
return ResponseVO.ok(pageInfo);
}
/**
* 修改
*
* @param list 修改list
* @return pms.ocp.model.vo.ResponseVO
* @author huxiuwu
* @date 2022/3/9
**/
@Override
public ResponseVO update(List<ModelType> list) {
boolean isUpdateSucceed = ocpService.saveOrUpdateBatch(list);
if (!isUpdateSucceed) {
ResponseVO.error(CodeEnum.UP_DATA_FAIL);
}
return ResponseVO.ok();
}
/**
* 新增
*
* @param list 新增分类列表
* @return pms.ocp.model.vo.ResponseVO
* @author huxiuwu
* @date 2022/3/9
**/
@Override
public ResponseVO insert(List<ModelType> list) {
boolean result = ocpService.saveBatch(list);
if (!result) {
return ResponseVO.error(CodeEnum.INSERT_FAIL);
}
return ResponseVO.ok();
}
/**
* 获取父节点下的所有子节点放入list中
* @author huxiuwu
* @date 2022/3/9
* @param menuList
* @param childMenu
* @return void
**/
private List<OcpModelGroupVO> findChildren(List<OcpModelGroupVO> menuList, OcpModelGroupVO parent,List<OcpModelGroupVO> childMenu) {
for (OcpModelGroupVO vo : menuList) {
//遍历出父id等于参数的id,add进子节点集合
if (parent.getModelGroupCode() != null && parent.getModelGroupCode().equals(vo.getModelGroupPcode())) {
//递归遍历下一级
vo.setModelGroupPName(parent.getModelGroupName());
childMenu.add(vo);
childMenu = findChildren(menuList, vo, childMenu);
}
}
return childMenu;
}
/**
* 构建树节点
*/
private List<OcpModelGroupVO> build(List<OcpModelGroupVO> treeNodes) {
List<OcpModelGroupVO> result = new ArrayList<>();
//list转map =>将每个对象的id作为key,自己作为value.
Map<String, OcpModelGroupVO> nodeMap = new LinkedHashMap<>(treeNodes.size());
for (OcpModelGroupVO treeNode : treeNodes) {
nodeMap.put(treeNode.getModelGroupCode(), treeNode);
}
for (OcpModelGroupVO node : nodeMap.values()) {
//得到自己的父类
OcpModelGroupVO parent = nodeMap.get(node.getModelGroupPcode());
if (parent != null && !(node.getModelGroupCode().equals(parent.getModelGroupCode()))) {
if (parent.getChildrenList() == null) {
parent.setChildrenList(new LinkedList<>());
}
parent.getChildrenList().add(node);
continue;
}
result.add(node);
}
return result;
}
private List<OcpModelGroupVO> selectByCondition(String... searchCondition) {
QueryWrapper<OcpModelGroupVO> queryWrapper = new QueryWrapper<>();
//根据是否传入搜索条件创建构造器进行查询
queryWrapper.eq(StringUtils.isNotEmpty(searchCondition[0]), "model_group_pcode", searchCondition[1])
.like(StringUtils.isNotEmpty(searchCondition[1]), "model_group_name", searchCondition[0]);
return classifyMapper.selectList(queryWrapper);
}
}
package com.pms.ocp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pms.ocp.mapper.OcpModelGroupMapper;
import com.pms.ocp.model.entity.ModelType;
import com.pms.ocp.service.OcpModelGroupService;
import org.springframework.stereotype.Service;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/3/9 9:45
*/
@Service
public class OcpModelGroupServiceImpl extends ServiceImpl<OcpModelGroupMapper,ModelType>implements OcpModelGroupService {
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment