msgcontent表用来保存每一条系统通知,sysmsg表则用来记录每一个用户和每一条通知的关系,比如该用户是否阅读了该条通知。
系统通知的整个处理流程是这样的:
1.用户登录成功来到Home页面后,会主动发起一次请求,查看是否有未读通知,如果有,则页面右上角的闹铃按钮会有相关提示2.管理员发送了系统通知之后,会由websocket主动推送一条消息,告诉当前登录用户有新通知3.用户打开系统通知页面后,未读通知会有红点提示,打开该通知后,该通知就变为已读通知4.通知的发送则是先由前端发起请求,向数据库中添加一条记录,添加成功后,再发送一条群发通知的请求
由于只有管理员才可以发送系统通知,我这里在SysMsgService的相关方法上添加了如下注解:
数据库添加数据的代码我就不贴出来了,小伙伴star项目自己研究。服务端另外一个核心就是添加一个群发websocket消息的方法在WsController中,如下:
一会当数据库的消息添加成功之后,前端向发送消息,前端订阅的消息。
后端核心主要就是这两块。
前端
当收到服务端推送来的消息后,将闹铃按钮上的红点显示出来。
前端发送系统消息的代码如下:
首先发送请求,数据添加成功后,再由客户端发起一条ws消息,将以便通知其他HR有新消息。
好了,大致的核心流程就是这样,详细代码小伙伴可以star项目进行研究。