package com.ibeetl.admin.core.util.beetl;
|
|
import java.util.List;
|
|
import org.beetl.core.Context;
|
import org.beetl.core.Function;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import com.ibeetl.admin.core.rbac.tree.FunctionItem;
|
import com.ibeetl.admin.core.rbac.tree.OrgItem;
|
import com.ibeetl.admin.core.service.CorePlatformService;
|
|
/**
|
* 手工构造一个功能树,书上包含模块,功能,按钮
|
* @author Administrator
|
*
|
*/
|
@Component
|
public class SysFunctionTreeFunction implements Function {
|
|
@Autowired
|
CorePlatformService platFormService;
|
|
|
public Object call(Object[] paras, Context ctx) {
|
FunctionItem tree = platFormService.buildFunction();
|
StringBuilder sb = new StringBuilder(256).append("[");
|
FunctionItem root = tree.getChildren().get(0);
|
build(sb,root);
|
sb.append("]");
|
return sb.toString();
|
|
}
|
|
private void build(StringBuilder sb,FunctionItem item){
|
|
sb.append("{name:'").append(item.getData().getName()).append("',code:'").append(item.getData().getCode());
|
sb.append("',id:").append(item.getData().getId());
|
if (item.getData().getParentId() == 0){
|
sb.append(",open:true");
|
}
|
List<FunctionItem> list = item.getChildren();
|
int size = list.size();
|
if(size==0){
|
sb.append("}").append("\n");
|
return ;
|
}
|
sb.append(",\n children:[");
|
|
for(int i=0;i<size;i++){
|
FunctionItem child = list.get(i);
|
build(sb,child);
|
if(!isLast(i,size)){
|
sb.append(",\n");
|
}
|
}
|
|
|
sb.append("]}").append("\n");
|
}
|
|
private boolean isLast(int index,int size){
|
return index==(size-1);
|
}
|
|
}
|