提交 b1abbe28 authored 作者: mry's avatar mry

feat(web): 数据模型展示

上级 974d9ee4
......@@ -10,6 +10,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.matrix.enums.SyncStatus;
import org.matrix.vo.MouldDocVo;
import org.springframework.beans.BeanUtils;
/**
* <p>
......@@ -68,4 +70,9 @@ public class MouldDoc extends BaseEntity {
@ApiModelProperty("同步状态")
private SyncStatus status;
public MouldDocVo toMouldDocVo() {
MouldDocVo mouldDocVo = new MouldDocVo();
BeanUtils.copyProperties(this, mouldDocVo);
return mouldDocVo;
}
}
......@@ -9,6 +9,8 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.matrix.vo.MouldGroupVo;
import org.springframework.beans.BeanUtils;
/**
* <p>
......@@ -46,4 +48,10 @@ public class MouldGrouping extends BaseEntity {
@ApiModelProperty("父类id(默认为0)")
private Long mouldId;
public MouldGroupVo toMouldGroupVo() {
MouldGroupVo mouldGroupVo = new MouldGroupVo();
BeanUtils.copyProperties(this, mouldGroupVo);
return mouldGroupVo;
}
}
......@@ -2,6 +2,7 @@ package org.matrix.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.matrix.entity.MouldDoc;
import org.matrix.vo.MouldGroupVo;
import org.matrix.vo.MouldVo;
import org.matrix.vo.StatusCode;
......@@ -24,4 +25,11 @@ public interface IMouldDocService extends IService<MouldDoc> {
*/
StatusCode importMouldDoc(List<MouldVo> mouldDocs, Long projectId, int pattern, Long mouldId);
/**
* 查询当前项目中所有分组与数据模型
*
* @param projectId 项目id
* @return 所有当前项目中的数据模型与数据模型分组
*/
MouldGroupVo getAll(Long projectId);
}
......@@ -87,7 +87,6 @@ public class CaseServiceImpl extends ServiceImpl<CaseMapper, Case> implements IC
if (!CollectionUtils.isEmpty(interfaceGroupVoList)) {
getRecursiveGrouping(interfaceDocVosMap, interfaceGroupingVosMap, testCaseVosMap, interfaceGroupVoList);
}
}
}
}
......@@ -96,7 +95,6 @@ public class CaseServiceImpl extends ServiceImpl<CaseMapper, Case> implements IC
@Override
public InterfaceGroupVo getAll(Long projectId) {
InterfaceGroupVo groupVo = new InterfaceGroupVo();
//分组
List<InterfaceGroupVo> interfaceGroupVos = new ArrayList<>();
List<InterfaceGrouping> interfaceGroupings = Optional.ofNullable(interfaceGroupingMapper.selectList(Wrappers.lambdaQuery(InterfaceGrouping.class)
......@@ -107,7 +105,7 @@ public class CaseServiceImpl extends ServiceImpl<CaseMapper, Case> implements IC
interfaceGroupVo.setSort("group");
interfaceGroupVos.add(interfaceGroupVo);
}
//key: 父分组id value : 接口分组集合
//key: 父分组id value : 分组集合
Map<Long, List<InterfaceGroupVo>> interfaceGroupingVosMap = interfaceGroupVos.stream()
.filter(interfaceGroupVo -> interfaceGroupVo != null && interfaceGroupVo.getInterfaceGroupingId() != null)
.collect(Collectors.groupingBy(InterfaceGroupVo::getInterfaceGroupingId));
......
......@@ -11,16 +11,16 @@ import org.matrix.exception.GlobalException;
import org.matrix.mapper.MouldDocMapper;
import org.matrix.mapper.MouldGroupingMapper;
import org.matrix.service.IMouldDocService;
import org.matrix.vo.ImportMouldDoc;
import org.matrix.vo.MouldVo;
import org.matrix.vo.StatusCode;
import org.matrix.vo.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* @author mruny
......@@ -65,6 +65,82 @@ public class MouldDocServiceImpl extends ServiceImpl<MouldDocMapper, MouldDoc> i
return statusCode;
}
@Override
public MouldGroupVo getAll(Long projectId) {
MouldGroupVo groupVo = new MouldGroupVo();
//分组
List<MouldGroupVo> mouldGroupVos = new ArrayList<>();
List<MouldGrouping> mouldGroupings = Optional.ofNullable(mouldGroupingMapper.selectList(Wrappers.lambdaQuery(MouldGrouping.class)
.eq(MouldGrouping::getProjectId, projectId))).orElse(new ArrayList<>());
for (MouldGrouping mouldGrouping : mouldGroupings) {
MouldGroupVo mouldGroupVo = mouldGrouping.toMouldGroupVo();
mouldGroupVo.setLabel(mouldGrouping.getName());
mouldGroupVo.setSort("group");
mouldGroupVos.add(mouldGroupVo);
}
//key : 父分组id value : 分组下的分组
Map<Long, List<MouldGroupVo>> mouldGroupVosMap = mouldGroupVos.stream()
.filter(mouldGroupVo -> mouldGroupVo != null && mouldGroupVo.getMouldId() != null)
.collect(Collectors.groupingBy(MouldGroupVo::getMouldId));
//根目录下所有的分组
if (mouldGroupVosMap.get(-1L) != null) {
List<MouldGroupVo> firstMouldGroupVos = mouldGroupVosMap.get(-1L);
groupVo.setMouldGroupVos(firstMouldGroupVos);
}
//数据模型
List<MouldDocVo> mouldDocVos = new ArrayList<>();
List<MouldDoc> mouldDocs = Optional.ofNullable(mouldDocMapper.selectList(Wrappers.lambdaQuery(MouldDoc.class)
.eq(MouldDoc::getProjectId, projectId))).orElse(new ArrayList<>());
for (MouldDoc mouldDoc : mouldDocs) {
MouldDocVo mouldDocVo = mouldDoc.toMouldDocVo();
mouldDocVo.setSort("doc");
mouldDocVo.setLabel(mouldDoc.getObjName());
mouldDocVos.add(mouldDocVo);
}
Map<Long, List<MouldDocVo>> mouldDocVosMap = mouldDocVos.stream()
.filter(mouldDocVo -> mouldDocVo != null && mouldDocVo.getMouldGroupingId() != null)
.collect(Collectors.groupingBy(MouldDocVo::getMouldGroupingId));
if (mouldDocVosMap.get(-1L) != null) {
List<MouldDocVo> firstMouldDocVos = mouldDocVosMap.get(-1L);
groupVo.setChildren(firstMouldDocVos);
}
getRecursiveGrouping(mouldDocVosMap, mouldGroupVosMap, mouldGroupVos);
return groupVo;
}
public void getRecursiveGrouping(Map<Long, List<MouldDocVo>> mouldDocVosMap,
Map<Long, List<MouldGroupVo>> mouldGroupVosMap,
List<MouldGroupVo> mouldGroupVos) {
if (!CollectionUtils.isEmpty(mouldGroupVos)) {
for (MouldGroupVo mouldGroupVo : mouldGroupVos) {
if (mouldGroupVo.getId() != null) {
mouldGroupVo.setSort("group");
Long groupId = mouldGroupVo.getId();
//分组下的分组
List<MouldGroupVo> mouldGroupVoList = mouldGroupVosMap.get(groupId);
if (!CollectionUtils.isEmpty(mouldGroupVoList)) {
for (MouldGroupVo groupVo : mouldGroupVoList) {
groupVo.setSort("group");
}
}
//分组下的数据模型
List<MouldDocVo> mouldDocVoList = mouldDocVosMap.get(groupId);
if (!CollectionUtils.isEmpty(mouldDocVoList)){
for (MouldDocVo mouldDocVo : mouldDocVoList) {
mouldDocVo.setSort("doc");
}
}
mouldGroupVo.setMouldGroupVos(mouldGroupVoList);
mouldGroupVo.setChildren(mouldDocVoList);
if (!CollectionUtils.isEmpty(mouldGroupVoList)) {
getRecursiveGrouping(mouldDocVosMap,mouldGroupVosMap,mouldGroupVoList);
}
}
}
}
}
/**
* 将导入的数据转换成entity
*
......
package org.matrix.vo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.matrix.entity.MouldDoc;
import org.matrix.enums.SyncStatus;
import org.springframework.beans.BeanUtils;
/**
* @author mruny
* @create 2022/8/9 16:36:52
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MouldDocVo {
@ApiModelProperty("id")
private Long id;
/**
* 项目id
*/
@ApiModelProperty("项目id")
private Long projectId;
/**
* 名称
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty("名称")
private String label;
/**
* 分组id
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty("分组id")
private Long mouldGroupingId;
/**
* 备注
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty("备注")
private String remarks;
/**
* 属性
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty("属性")
private String attributeOutVo;
/**
* 同步状态
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty("同步状态")
private SyncStatus status;
@ApiModelProperty("分类")
private String sort;
public MouldDoc toMouldDoc() {
MouldDoc mouldDoc = new MouldDoc();
BeanUtils.copyProperties(this, mouldDoc);
return mouldDoc;
}
}
package org.matrix.vo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.matrix.entity.MouldGrouping;
import org.springframework.beans.BeanUtils;
import java.util.List;
/**
* @author mruny
* @create 2022/8/9 16:32:46
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("项目中所有数据模型")
public class MouldGroupVo {
@ApiModelProperty("多个分组")
private List<MouldGroupVo> mouldGroupVos;
@ApiModelProperty("多个数据模型")
private List<MouldDocVo> children;
@ApiModelProperty("id")
private Long id;
/**
* 项目id
*/
@ApiModelProperty("项目id")
private Long projectId;
/**
* 名称
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty("名称")
private String label;
/**
* 父类id(默认为0)
*/
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty("父类id(默认为0)")
private Long mouldId;
@ApiModelProperty("分类")
private String sort;
public MouldGrouping toMouldGrouping() {
MouldGrouping mouldGrouping = new MouldGrouping();
BeanUtils.copyProperties(this, mouldGrouping);
return mouldGrouping;
}
}
......@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation;
import org.matrix.entity.MouldDoc;
import org.matrix.exception.GlobalException;
import org.matrix.service.IMouldDocService;
import org.matrix.vo.MouldGroupVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
......@@ -55,4 +56,11 @@ public class MouldDocController {
return ResponseEntity.ok(mouldDoc);
}
@GetMapping("/all")
@ApiOperation("查询所有数据模型")
public ResponseEntity<MouldGroupVo> findAllMouldDoc(@RequestParam Long projectId) {
MouldGroupVo result = mouldDocService.getAll(projectId);
return ResponseEntity.ok(result);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论