Commit a27153b7 authored by Gwofoo's avatar Gwofoo

实现:组件库二级到三级的显示

parent 14e10941
package com.yeejoin.amos.api.tool.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.ToolLibraryDetailModel;
import com.yeejoin.amos.api.tool.face.model.ToolLibraryTreeModel;
import com.yeejoin.amos.api.tool.face.service.ToolLibraryService;
import io.swagger.annotations.Api;
......@@ -14,6 +16,7 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.doc.TycloudResource;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.sql.SQLException;
import java.util.List;
......@@ -23,14 +26,26 @@ import java.util.List;
@Api(tags = "atl-组件库")
public class ToolLibraryResource {
@Autowired
private ToolLibraryService toolLibraryService;
@Autowired
private ToolLibraryService toolLibraryService;
@GetMapping("/list")
@ApiOperation(value = "组件库设计器节点列表")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public ResponseModel<List<ToolLibraryTreeModel>> listComponentTools(@RequestParam("designer") String designer) throws SQLException, ClassNotFoundException {
return ResponseHelper.buildResponse(toolLibraryService.queryForComponentList(designer));
}
@GetMapping("/list")
@ApiOperation(value = "组件库设计器节点列表")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public ResponseModel<List<ToolLibraryTreeModel>> listComponentTools(@RequestParam("designer")String designer) throws SQLException, ClassNotFoundException {
return ResponseHelper.buildResponse(toolLibraryService.queryForComponentList(designer));
}
@GetMapping("/detailList")
@ApiOperation(value = "组件库设计器节点详情")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public ResponseModel<Page<ToolLibraryDetailModel>> listComponentToolsDetails(
@RequestParam(value = "sequenceNbr") String sequenceNbr,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) throws SQLException, ClassNotFoundException {
// 当前页和每页显示数量
Page<ToolLibraryDetailModel> page = new Page<>(current, size);
return ResponseHelper.buildResponse(toolLibraryService.queryForComponentListDetails(page, sequenceNbr));
}
}
package com.yeejoin.amos.api.tool.face.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.typroject.tyboot.core.rdbms.model.BaseModel;
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="ToolLibraryDetailModel")
@AllArgsConstructor
@NoArgsConstructor
public class ToolLibraryDetailModel extends BaseModel {
@ApiModelProperty(value = "name")
private String name;
@ApiModelProperty(value = "category")
private String category;
@ApiModelProperty(value = "component_key")
private String componentKey;
}
package com.yeejoin.amos.api.tool.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("morphic_widget")
public class ToolLibraryDetail extends BaseEntity {
/**
* 工具名称
*/
@TableField("name")
private String name;
/**
* 工具类别
*/
@TableField("category")
private String category;
/**
* 工具组件key
*/
@TableField("component_key")
private String componentKey;
}
package com.yeejoin.amos.api.tool.face.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.api.tool.face.model.ToolLibraryDetailModel;
import com.yeejoin.amos.api.tool.face.model.ToolLibraryModel;
import com.yeejoin.amos.api.tool.face.model.ToolLibraryTreeModel;
import com.yeejoin.amos.api.tool.face.orm.dao.ToolLibraryMapper;
......@@ -7,6 +9,7 @@ import com.yeejoin.amos.api.tool.face.orm.entity.ToolLibrary;
import com.yeejoin.amos.api.tool.utils.DataBaseUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.sql.Connection;
import java.sql.DriverManager;
......@@ -49,6 +52,64 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
return getChildren(displayLists,"",0L);
}
public Page<ToolLibraryDetailModel> queryForComponentListDetails(Page<ToolLibraryDetailModel> page, String sequenceNbr)
throws ClassNotFoundException, SQLException {
Class.forName(className);
Connection connection = DriverManager.getConnection(url, userName, passWord);
// 先查当前节点的parent,看是不是0,从而判断在叶子节点还是父节点
List<Map<String, Object>> clickedNodeMaps = DataBaseUtils.getMaps(
"select SEQUENCE_NBR, parent, DESIGNER_TYPE, display_name " +
"from morphic_widget_group " +
"where is_delete != 1 and SEQUENCE_NBR = " + sequenceNbr, connection);
String parent = clickedNodeMaps.get(0).get("parent").toString();
List<Map<String, Object>> displayTools = new ArrayList<>();
if (parent.equals("0")) {
// 父节点
// 查询所有表中parent==sequenceNbr的行数据
List<Map<String, Object>> displayMaps = DataBaseUtils.getMaps(
"select SEQUENCE_NBR, parent, DESIGNER_TYPE, display_name " +
"from morphic_widget_group " +
"where is_delete != 1 and parent = " + sequenceNbr, connection);
for (Map<String, Object> map: displayMaps) {
String seqNbr = map.get("SEQUENCE_NBR").toString();
displayTools.addAll(DataBaseUtils.getMaps("select SEQUENCE_NBR, category, component_key, name " +
"from morphic_widget where is_delete != 1 and group_id = " + seqNbr, connection));
}
}
else {
// 叶子节点
// 查询morphic_widget表中,group_id为sequenceNbr的所有工具数据
displayTools.addAll(DataBaseUtils.getMaps(
"select SEQUENCE_NBR, category, component_key, name " +
"from morphic_widget " +
"where is_delete != 1 and group_id = " + sequenceNbr, connection));
}
connection.close();
List<ToolLibraryDetailModel> records = new ArrayList<>();
for (Map<String, Object> map : displayTools) {
ToolLibraryDetailModel model = new ToolLibraryDetailModel();
model.setSequenceNbr(Long.valueOf(map.get("SEQUENCE_NBR").toString()));
model.setCategory(map.get("category").toString());
model.setComponentKey(map.get("component_key").toString());
model.setName(map.get("name").toString());
records.add(model);
}
// 封装Page
long current = page.getCurrent();
long size = page.getSize();
if (!ValidationUtil.isEmpty(records)) {
page.setTotal(records.size());
page.setCurrent(current);
page.setSize(size);
// 只返回records中一页内的内容
long start = (current - 1) * size;
page.setRecords(records.subList((int) start, (int) Math.min(start + size, records.size())));
}
return page;
}
/**
* 获得模板分类子节点(递归)
*/
......@@ -68,4 +129,5 @@ public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrar
return treeModels;
}
}
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