默认数据收集
#function collectList($list, $field)
#if ($vs.util.isList($list))
#set($result = $vs.util.newList())
#foreach($row in $list)
#set($value = $row)
#if ($vs.util.isNotNull($field))
#set($value = $row.get($field))
#end
$result.add($value)
#end
return $result
#end
return null
#end
集合数据收集
#function collectSet($list, $field)
#if ($vs.util.isList($list))
#set($result = $vs.util.newList())
#set($set = $vs.util.newList())
#foreach($row in $list)
#set($value = $row)
#if ($vs.util.isNotNull($field))
#set($value = $row.get($field))
#end
#if ($vs.util.isNotNull($value) and !$set.contains($value))
$result.add($value)
$set.add($value)
#end
#end
return $result
#end
return null
#end
#function collectSet($list, $fieldId)
#set($result = $vs.util.newList())
#if (!$vs.util.isList($list))
return $result
#end
#set($set = $vs.util.newHashSet())
#foreach($row in $list)
#set($value = $row)
#if ($vs.util.isNotNull($fieldId))
#set($value = $row.get($fieldId))
#end
#if ($vs.util.isNotNull($value) and $set.add($value))
$result.add($value)
#end
#end
return $result
#end
扁平化数据收集
#function flattenCollectList($list, $field)
#if ($vs.util.isList($list))
#set($result = $vs.util.newList())
#foreach($row in $list)
#set($value = $row)
#if ($vs.util.isNotNull($field))
#set($value = $row.get($field))
#end
#if ($vs.util.isList($value))
$result.addAll($value)
#else
$result.add($value)
#end
#end
return $result
#end
return null
#end
collect
#function collect($data, $field)
#if ($vs.util.isMap($data))
#set($pos = $vs.util.strPos($field, '.'))
#if ($pos == -1)
return $data.get($field)
#else
return @collect($data.get($vs.util.substring($field, 0, $pos)), $vs.util.substring($field, $pos + 1))
#end
#end
#if ($vs.util.isList($data))
#set($result = $vs.util.newList())
#foreach ($item in $data)
$result.add(@collect($item, $field))
#end
return $result
#end
#end