java后台菜单栏目的递归

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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43608538/article/details/88980010