package com.jkgis.propaganda.back.controller; import com.jkgis.propaganda.back.constant.Constant; import com.jkgis.propaganda.back.entity.Column; import com.jkgis.propaganda.back.entity.base.BaseResponseEntity; import com.jkgis.propaganda.back.entity.pojo.ColumnChildren; import com.jkgis.propaganda.back.mapper.ColumnMapper; import com.jkgis.propaganda.back.utils.EmptyUtil; import com.jkgis.propaganda.back.utils.JsonUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; @RestController @CrossOrigin("*") @RequestMapping("test") public class Test { @Autowired ColumnMapper columnMapper; @PostMapping("testTree") public String testTree(){ try{ List<Column> columnList = columnMapper.selectAllUsed(); List<ColumnChildren> childrenList = new ArrayList<>(); if (!EmptyUtil.isEmpty(columnList)){ for (Column column:columnList) { if (column.getColumnParentId()==0){ ColumnChildren columnChildren = new ColumnChildren(column,getChildrenList(columnList,column.getColumnId())); childrenList.add(columnChildren); } } return JsonUtil.toJSon(new BaseResponseEntity(childrenList,childrenList.size())); }else{ return JsonUtil.toJSon(new BaseResponseEntity()); } }catch (Exception e){ e.printStackTrace(); return JsonUtil.toJSon(new BaseResponseEntity(Constant.CODE_SYSTEM_ERROR));//系统异常 } } //获取子菜单 public List<ColumnChildren> getChildrenList(List<Column> column,Integer columnId){ List<ColumnChildren> childList = new ArrayList<>(); for (int i=0;i<column.size();i++){ if(columnId==new Column().getColumnParentId()){ ColumnChildren columnChildren = new ColumnChildren(new Column(),getChildrenList(column,new Column().getColumnId())); childList.add(columnChildren); } } return childList; } }
对应的实体:
package com.jkgis.propaganda.back.entity; import java.util.Date; public class Column { private Integer columnId; private String columnName; private Integer columnParentId; private String columnIcon; private Integer columnIspublic; private Date createTime; private String columnUrl; private Integer columnState; private Integer columnType; public Integer getColumnId() { return columnId; } public void setColumnId(Integer columnId) { this.columnId = columnId; } public String getColumnName() { return columnName; } public void setColumnName(String columnName) { this.columnName = columnName == null ? null : columnName.trim(); } public Integer getColumnParentId() { return columnParentId; } public void setColumnParentId(Integer columnParentId) { this.columnParentId = columnParentId; } public String getColumnIcon() { return columnIcon; } public void setColumnIcon(String columnIcon) { this.columnIcon = columnIcon == null ? null : columnIcon.trim(); } public Integer getColumnIspublic() { return columnIspublic; } public void setColumnIspublic(Integer columnIspublic) { this.columnIspublic = columnIspublic; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getColumnUrl() { return columnUrl; } public void setColumnUrl(String columnUrl) { this.columnUrl = columnUrl == null ? null : columnUrl.trim(); } public Integer getColumnState() { return columnState; } public void setColumnState(Integer columnState) { this.columnState = columnState; } public Integer getColumnType() { return columnType; } public void setColumnType(Integer columnType) { this.columnType = columnType; } }
package com.jkgis.propaganda.back.entity.pojo; import com.jkgis.propaganda.back.entity.Column; import lombok.Data; import java.util.List; @Data public class ColumnChildren extends Column { List<ColumnChildren> children; public ColumnChildren(Column param, List<ColumnChildren> children) { super.setColumnIcon(param.getColumnIcon()); super.setColumnId(param.getColumnId()); super.setColumnIspublic(param.getColumnIspublic()); super.setCreateTime(param.getCreateTime()); super.setColumnName(param.getColumnName()); super.setColumnParentId(param.getColumnParentId()); super.setColumnState(param.getColumnState()); super.setColumnType(param.getColumnType()); super.setColumnUrl(param.getColumnUrl()); this.children = children; } }
工具类内调用的方法:
public static boolean isEmpty(String str) { if (null != str) { return str.trim().length() == 0; } else { return true; } }
public static String toJSon(Object object) { if (objectMapper == null) { objectMapper = new ObjectMapper(); } try { return objectMapper.writeValueAsString(object); } catch (Exception e) { e.printStackTrace(); } return null; }