def list = {
try {
//通過傳參params.domain,反射得到對應的domain
def domain = extUiService.getDomainClazz(params.domain)
//檢證是否反射對應的domain
assert !!domain, "Domain Class with name ${params.domain} was not found!"
//獲取開始讀取數據的上限基數
def max = params.limit ? params.limit : 10
//獲取開始讀取數據的下限
def offset = params.start ? params.start : 0
//獲取排序字段
def orderBy = params.sort ? params.sort : 'id'
//獲取排序方式
def ascOrdesc = params.dir ? params.dir.toLowerCase() : 'asc'
//獲取搜索字段
def likeBy = params.likeBy
//獲取搜索字段對應的內容
def likeValue = params.likeValue
//獲取搜索得到的所有數據
def totals = domain.withCriteria {
if(likeValue)
like(likeBy, "%" + likeValue + "%")
}
//獲取分頁數據
def items = domain.withCriteria {
firstResult(Integer.valueOf(offset))
maxResults(Integer.valueOf(max))
order(orderBy, ascOrdesc)
if(likeValue)
like(likeBy, "%" + likeValue + "%")
}
//構造返回數據結構
def result = [
total: totals.size(),
items: items
]
//轉換爲json返回數據
render (result as JSON).toString()
} catch(Throwable ex) {
onException(ex); return false
}
//當有異常時
return false;
}