1.业务场景

用户需要根据一个部门ID,返回部门的全路径,这个在JPAAS平台中有很多方式可以实现,比如用过脚本,但是这样有些蛮烦,我们可以通过自定义函数的方式来实现。

2.实现步骤

2.1 编写自定义函数

以mysql8 为例,我们使用自定义函数来实现这个功能。

在创建函数时,由于mysql8 的安全性,我们需要首先执行。

set GLOBAL log_bin_trust_function_creators =true;

否则不能创建函数。

函数代码:

CREATE FUNCTION   getGroupById(groupid varchar(40))
  RETURNS VARCHAR(255)
 BEGIN
    DECLARE name VARCHAR(64);
    DECLARE rtnName VARCHAR(200) DEFAULT '';
    DECLARE pid VARCHAR(64);

    SELECT NAME_,PARENT_ID_ into name,pid  FROM OS_GROUP WHERE GROUP_ID_=groupid;

    SET rtnName=CONCAT( name  , "/" , rtnName);

    WHILE pid !='0' DO

        SELECT NAME_,PARENT_ID_ into name,pid  FROM OS_GROUP WHERE GROUP_ID_=pid;
        SET rtnName=CONCAT( name  , "/" , rtnName);

    END WHILE;

    SET rtnName=TRIM('/' FROM rtnName);

 RETURN rtnName;
 END;

2.2 创建一个数据源

因为我们在执行SQL查询时,需要访问jpaas_user数据库,因此我们需要在表单的微服务上面添加一个数据源,指向 jpaas_user的数据库。

2.3 创建一个自定义查询

预览效果如下:

文档更新时间: 2022-07-27 10:24   作者:zyg