系统公告的用途
系统公告是方便公司行政管理人员向公司全员或部分指定人员发送通知公告的模块。
jeecg的界面及存储分析
为了更直观了解 jeecg 系统公告模块的管理功能,我们直接看编辑界面的截图:
从界面可以分析得到,系统公告包括了“标题”、“内容”、“类型”、“授权级别”这四个主要字段。再看数据库里的,我们可以找到与系统公告相关的几张表:t_s_notice(对应系统公告的主要内容)、t_s_notice_authority_role(对应“角色授权”选择的关联角色)、t_s_notice_authority_user(对应“用户授权”选择的关联用户)、t_s_notice_read_user(记录与公告相关的人员对公告的响应状态:是否已读,是否删除等)。
代码逻辑分析
对系统公告的操作代码放在了 NoticeController 这个类,管理员新增一条系统公告时,会根据授权级别,找出这条公告所涉及的所有用户,然后异步给每个用户创建一条状态记录到 t_s_notice_read_user 表,管理员对公告的增删改维护好前面分析的四张表的数据即可。而普通用户对公告消息的数据处理,只需要使用 t_s_notice_read_user 表并关联上 t_s_notice 表即可。例如点击公告后标记公告为已读,则更新 t_s_notice_read_user 表的 is_read 字段标志位。
总结与思考
jeecg的系统公告模块是通过简单的几张表的crud实现的,这对一般的公司内部使用场景来说基本够用了。但如果系统的用户数庞大,而发系统公告的频率又比较高的时候,t_s_notice_read_user 表的数据量增长得很快,就有可能产生性能问题。公告要及时通知到用户,可能就要与即时通讯、短信、email 等系统对接,及时推送通知给用户。如果要设定某个时间点才发出通知,则要接入定时任务系统,设定时间触发发送系统公告的命令。因此,我们在学习jeecg的基本实现原理后,还要结合自身系统业务场景,定制适合的系统公告模块。
领取专属 10元无门槛券
私享最新 技术干货