简体中文
Groovy代码示例
约 252 字小于 1 分钟
2026-01-09
/**
* @type classes
* @returntype
* @namespace object_controller_plugin
*/
class ObjCtrl3jScM implements ObjectControllerPlugin {
/**
* 查询数据前逻辑,返回值为查询条件
* 常用于修改数据库的查询条件
*/
ObjectController.BeforeResult before(FunctionContext context, ObjectController.BeforeArg arg){
log.info(arg)
def code = arg.getCode()
log.info(code)
// if( code[0]=="RelatedList" ){
// }
def triggerInfo = arg.getTriggerInfo()
log.info(triggerInfo)
def triggerPage = triggerInfo.getTriggerPage()
log.info(triggerPage)
def controllerArg = arg.getControllerArg()
def search_query_info = controllerArg["search_query_info"] as String
// search_query_info 是字符串类型,需要先反序列化为map,在进行后续的操作
def searchQueryInfo= Fx.json.parse(search_query_info)
// 修改对象模版
// 将修改后的 searchQueryInfo 序列化为 search_query_info
search_query_info = Fx.json.toJson(searchQueryInfo)
log.info(search_query_info)
controllerArg["search_query_info"]=search_query_info
return ObjectController.BeforeResult.builder()
.controllerArg(controllerArg)
.supportAfter(true)
.build();
}
/**
* 从数据库查询后事件
* 在此可以通过函数,对返回给用户的数据进行二次加工
* 例如 计算、加解密、隐藏
*/
ObjectController.AfterResult after(FunctionContext context, ObjectController.AfterArg arg){
def controllerResult = arg.getControllerResult()
List<Map> dataList = controllerResult["dataList"] as List
log.info(dataList)
def triggerInfo = arg.getTriggerInfo()
log.info(triggerInfo)
def triggerPage = triggerInfo.getTriggerPage()
log.info(triggerPage)
if( "Button" == triggerPage ){
dataList.each{
it["owner"] = null
}
}
log.info(dataList)
return ObjectController.AfterResult.builder()
.controllerResult(controllerResult)
.build();
}
//debug 时候的入口方法
void debug(FunctionContext context, Map arg) {
}
}