def treegrid(){
def res=injectNews(0)
render res as JSON
}
def injectNews={pid->
def mkInstance
def result=[]
if(pid==0){//判斷是不是爲0如果爲0就是上一個方法傳過來的如果不是就是遞歸
mkInstance=WXslwMk01.executeQuery("from WXslwMk01 where (name='新聞資訊' or name='基層黨建' or name='弘揚正能量' or name='社區文化' or name='就業服務' or name='居民委員會' or name='絲路話語' or name='志願者風采') and sfjy=false ")
}else{
mkInstance=WXslwMk01.findAllByParentAndSfjy(pid,false)
}
mkInstance.each {mk->
def tMap=[:];
def tMap1=[:];
def tFind=WXslwMk01.findAllByParentAndSfjy(mk?.id,false)//查詢判斷還沒有下一級
/*
* 重新定義map鍵,
* 不定義可能跟jquery裏的關鍵字衝突發生未知的錯誤
*TypeError: row is null row.state="open";
* too much recursion;
* */
tMap1.idname=mk?.id
tMap1.pId=mk?.parent
tMap1.mkName=mk?.name
tMap1.sfjy=mk?.sfjy
tMap.putAll(tMap1);
tMap.state=tFind?"closed":"open";//如果有就表示是父級他的狀態就是closed不然就是子級狀態就是open
if(tFind){//判斷有沒有下一級了就了就繼續遞歸
tMap.children=injectNews(mk?.id);
}
result.add(tMap);
}
return result;
}
grails,groovy無限樹遞歸
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.