Commit 14e10941 authored by chenzai's avatar chenzai

第一次提交(点击各个设计器展示设计器下的子组件)

parent 35efb713
......@@ -16,6 +16,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.Arrays;
import java.util.List;
@CrossOrigin
@RestController
@Api(tags = "接口管理Api")
......
package com.yeejoin.amos.api.tool.controller;
import com.yeejoin.amos.api.tool.face.model.ToolLibraryTreeModel;
import com.yeejoin.amos.api.tool.face.service.ToolLibraryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
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;
@RestController
@TycloudResource(module = "atl", value = "dataApi")
@RequestMapping(value = "/component")
@Api(tags = "atl-组件库")
public class ToolLibraryResource {
@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));
}
}
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="ToolLibraryModel", description="")
@AllArgsConstructor
@NoArgsConstructor
public class ToolLibraryModel extends BaseModel {
@ApiModelProperty(value = "设计器父id")
private Long parentId;
@ApiModelProperty(value = "设计器名称")
private String designerName;
@ApiModelProperty(value = "设计器类型")
private String designerType;
}
\ No newline at end of file
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.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value="ToolLibraryTreeModel", description="")
public class ToolLibraryTreeModel {
@ApiModelProperty(value = "物理主键")
private Long id;
@ApiModelProperty(value = "父ID")
private Long parentId;
@ApiModelProperty(value = "名称")
private String designerName;
@ApiModelProperty(value = "设计器类型")
private String designerType;
@ApiModelProperty(value = "子列表")
private List<ToolLibraryTreeModel> children = new ArrayList<>();
public ToolLibraryTreeModel(Long id, Long parentId, String designerName, String designerType){
this.id =id ;
this.parentId = parentId;
this.designerName = designerName;
this.designerType =designerType;
}
}
package com.yeejoin.amos.api.tool.face.orm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.tool.face.orm.entity.ToolLibrary;
public interface ToolLibraryMapper extends BaseMapper<ToolLibrary> {
}
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_group")
public class ToolLibrary extends BaseEntity{
/**
* 父级id
*/
@TableField("parent")
private Long parentId;
/**
* 设计器名称
*/
@TableField("display_name")
private String designerName;
/**
* 设计器类型
*/
@TableField("DESIGNER_TYPE")
private String designerType;
}
\ No newline at end of file
package com.yeejoin.amos.api.tool.face.service;
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;
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.rdbms.service.BaseService;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class ToolLibraryService extends BaseService<ToolLibraryModel, ToolLibrary,ToolLibraryMapper> {
@Value("${toolLibrary.className}")
private String className;
@Value("${toolLibrary.url}")
private String url;
@Value("${toolLibrary.userName}")
private String userName;
@Value("${toolLibrary.passWord}")
private String passWord;
public List<ToolLibraryTreeModel> queryForComponentList(String designer) throws ClassNotFoundException, SQLException {
Class.forName(className);
Connection connection = DriverManager.getConnection(url, userName, passWord);
List<Map<String, Object>> displayMaps = DataBaseUtils.getMaps
("select display_name, DESIGNER_TYPE,SEQUENCE_NBR,parent from morphic_widget_group where DESIGNER_TYPE " +
"= '" + designer + "' and is_delete!=1;", connection);
connection.close();
List<ToolLibraryTreeModel> displayLists = new ArrayList<>();
for (Map<String, Object> map : displayMaps) {
ToolLibraryTreeModel model = new ToolLibraryTreeModel();
model.setDesignerName(map.get("display_name").toString());
model.setDesignerType(map.get("DESIGNER_TYPE").toString());
model.setId(Long.valueOf(map.get("SEQUENCE_NBR").toString()));
model.setParentId(Long.valueOf(map.get("parent").toString()));
displayLists.add(model);
}
return getChildren(displayLists,"",0L);
}
/**
* 获得模板分类子节点(递归)
*/
public List<ToolLibraryTreeModel> getChildren(List<ToolLibraryTreeModel> nodes, String parent, Long id) {
List<ToolLibraryTreeModel> treeModels = new ArrayList<>();
for (ToolLibraryTreeModel node : nodes) {
if (node.getParentId().equals(0L) && parent.equals("")) {
node.setChildren(getChildren(nodes, node.getDesignerType(), node.getId()));
treeModels.add(node);
} else {
if (parent.equals(node.getDesignerType()) && ! node.getParentId().equals(0L)) {
node.setParentId(id);
treeModels.add(node);
}
}
}
return treeModels;
}
}
......@@ -25,7 +25,6 @@ import java.util.*;
public class DataBaseUtils {
/**
* 数据库备份路径
*/
......
......@@ -22,4 +22,9 @@ spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=120000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
\ No newline at end of file
spring.datasource.hikari.connection-test-query=SELECT 1
toolLibrary.className=com.mysql.cj.jdbc.Driver
toolLibrary.url=jdbc:mysql://172.16.3.18:3306/amos_studio
toolLibrary.userName=root
toolLibrary.passWord=Yeejoin@2020
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