package com.sooka.component.beetl.fun;
import com.sooka.module.web.system.service.RoleService;
import com.sooka.mybatis.model.TSysPermission;
import com.sooka.common.utils.StrUtil;
import org.beetl.core.Context;
import org.beetl.core.Function;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Description:select
*
*
* @create 2017-04-15
**/
@Service
public class SelectPermissionFunction implements Function{
@Autowired
private RoleService service;
private final String head = "";
private final String isSelected = "selected=\"selected\"";
@Override
public Object call(Object[] objects, Context context) {
Integer pid = (Integer)objects[0];
Integer currentId = (Integer)objects[1];
if(pid!=null) {
return head+recursion(currentId,pid,0,"");
}
return head+recursion(currentId,0,0,"");
}
/*递归输出子节点*/
private String recursion(int cid,int pid,int spid,String tag){
tag+=(StrUtil.isBlank(tag)?" ":" ");
StringBuffer sbf = new StringBuffer();
List permissions = service.findPermissonByPid(spid);
if(permissions!=null&&permissions.size()>0){
int flag_ = 0;
for(TSysPermission per:permissions){
/**如果是自己就不输出了**/
if(cid!=per.getPermissionId()&&cid!=per.getPid()||cid==0) {
flag_ = per.getPermissionId();
sbf.append("");
}
if(flag_!=0) {
sbf.append(recursion(cid,pid,per.getPermissionId(),tag));
}
}
return sbf.toString();
}
return "";
}
private String isSelected(Integer id,Integer perId){
if(id.intValue()==perId.intValue()) {
return isSelected;
}
return "";
}
}