直接跳到内容
本页目录

作者:wacxhs
更新于:5/15/2023

租户应用添加

租户应用基于SQL脚本实现,利用AgileBPM低代码开发的应用可以很好的在线安装给平台租户,或是将应用开放给租户,租户自行通过应用市场在线安装。

添加应用

菜单路径: 系统 > 租户管理 > 租户应用

对外开放

当勾选开放,租户可通过应用市场看到该应用

安装器

Default

纯SQL脚本执行

Freemarker

语法参考链接: http://freemarker.foofun.cn

利用模板引擎生成SQL,编写有逻辑的SQL生成,例如生成新的主键ID,一些有逻辑判断

内置变量

  • idGen.nextId()

    唯一ID,顺序生成

  • nowTime

    当前时间,可利用日期格式化出想要的格式,示例:${nowTime?string("yyyy-MM-dd HH:mm:ss")}

  • tenant.alias

    当前租户别名

  • tenant.isolationMode

    当前租户隔离模式 logic:逻辑隔离 physics:物理隔离

  • tenant.name 当前租户名称

  • tenant.id 当前租户ID

示例

  1. 带有层级的数据处理

该例子中,我们利用Freemarker中宏递归出带有层级的结构insert语句

<#macro insertResource appId, children, parentId, path>
    <#list children as child>
        <#local id="${idGen.nextId()}" />
        INSERT INTO sys_resource (id_,app_id_,code_,name_,url_,enable_,opened_,is_api_,icon_,type_,sn_,parent_id_,path_,create_time_,create_by_,create_org_id_,update_time_,updater_,update_by_,tenant_id_) VALUES ('${id}','${appId}','${child.code_!''}','${child.name_!''}','${child.url_!''}',${child.enable_!'NULL'},${child.opened_!'NULL'},${child.is_api_!'NULL'},'${child.icon_!''}','${child.type_!''}',${child?index + 1},'${parentId}','${path}','${nowTime?string("yyyy-MM-dd HH:mm:ss")}','1','','${nowTime?string("yyyy-MM-dd HH:mm:ss")}','系统管理员','1','${tenant.id}');
        <#if (child.children??) && (child.children?size > 0)>
            <@insertResource appId=appId children=child.children parentId=id path="${path + '.' + id}"/>
        </#if>
    </#list>
</#macro>
<@insertResource appId='1602918114232172552' parentId='0' path='0' children=[{"code_":"office","name_":"办公","url_":"","enable_":1,"opened_":0,"icon_":"home-2-line","type_":"menu","sn_":1,"children":[{"code_":"index","name_":"工作台","url_":"/index","enable_":1,"opened_":0,"icon_":"","type_":"menu","sn_":1}]}] />

应用授权

将应用授权给租户,允许租户自行安装

菜单路径: 系统 > 租户管理 > 租户列表

  1. 进入租户-应用管理

  1. 授权给租户

租户应用添加 has loaded