实现效果:
1. 用户/业务需求
相关应用及数据权限需要根据前端模块管理员新建/删除数据的人员数据进行开启或关闭,不要多处,多次频繁维护相关人员权限。
2. 需求分析
同步该模块下的人员信息,自动根据该模块人员发放和关闭相关权限。
3. 实现思路
1.构建建模人员基本信息,用来记录权限人员;
2.新增该模块人员角色信息,角色成员同步上述模块中的人员;
3.相关应用及数据权限使用上述角色。
4. 解决方案
构建建模人员基础信息及角色成员同步
角色设置
4.1 新建角色,记住新建角色的ID
ESB中心配置
4.2 新建接口-执行JAVA代码:
调用服务类代码:
package com.weaver.esb.package_20240810083232;
import java.util.*;
import weaver.systeminfo.systemright.CheckUserRight; // Import CheckUserRight class
import weaver.hrm.cachecenter.bean.RolemembersComInfo; // Import RolemembersComInfo class
public class class_20240810083232 {
public static Map<String, String> execute(Map<String, Object> params) {
Object dataObj = params.get("data");
// Create an instance of CheckUserRight to call non-static methods
CheckUserRight checkUserRight = new CheckUserRight();
// Call non-static methods using the instance
checkUserRight.removeMemberRoleCache();
checkUserRight.removeRoleRightdetailCache();
RolemembersComInfo rolemembersComInfo = new RolemembersComInfo();
rolemembersComInfo.removeCache();
Map<String, String> ret = new HashMap<>();
ret.put("code", "1");
return ret;
}
}
4.2.1定义请求\响应参数:
请求参数:data(无效参数默认为空)
响应参数:无
4.2.2新建接口-执行SQL语句
下面两个语句中的UR值为4.1中新建角色的ID;
${userid}‘为人员ID是该接口定义的请求参数。
人员插入角色信息表执行语句:INSERT INTO hrmrolemembers (ROLEID,RESOURCEID,ROLELEVEL,resourcetype)VALUES('UR',${userid},'2','1')
;
删除角色信息表人员执行语句:delete from hrmrolemembers where roleid='UR' and resourceid=${userid}
;
如下图所示:
4.2.3新建事件
4.2.4新建应用
依次插入上面添加的接口,如下图所示:
接口配置中添加插入和删除接口的执行条件,如下图所示:
4.3建模引擎构建表单、模块和查询
表单信息:
表单字段根据实际情况添加;
模块信息:
新建用户启用/禁用页面拓展按钮
基本信息-链接目标地址:javascript:submitMult();(用于数据变更后自动刷新页面信息)
权限-条件设置:此处为开启按钮,需要设置用户状态为禁用显示开启按钮
接口动作1:更新用户状态为启用,操作类型为DML
自定义DML语句:update uf_users set yhzt=‘1’ where id=’{?id}’
解析:update 表名 set 更新字段=‘更新值’ where id=‘主表数据ID’
接口动作2:人员插入角色成员表中并更新角色信息表缓存信息。操作类型为ESB,引用4.2.3中新建的事件。操作的值为固定值,插入为0删除为1,用于触发ESB应用中关联的不同接口。
4.4建模引擎-查询
基础:代码块插入下面代码,用于4.3中模块新增自定义按钮的链接目标地址调用
<script type="text/javascript">
function submitMult() {
var ids = ModeList.getCheckedID();
ModeList.reloadTableAll();
}
</script>
自定义按钮:右键选择页面拓展,选择4.3中启用/禁用的按钮,添加到查询列表上,如下图所属:
总结:
4.3模块信息中绑定的两个接口动作可以整合到一个应用中执行。
不做角色信息表刷新,在移动端引用角色会有缓存,导致不生效问题,使用SQL语句插入或删除角色成员必须要做缓存清理。