红点系统设计思路
业务需求
- 在发布公告和有订单消息通知的时候,首页要出现红点。
- 点击到消息列表,查看消息详情,红点要消失。
数据库设计
- 红点信息表 red_point_info
字段 | 类型 | 备注 |
---|---|---|
id | char | 主键 |
type | tinyint | 红点类型:1公告 2消息 |
target_key | varchar | target_ids的规则,比如说,role_dept department_id:2,role_id:3 |
target_ids | varchar | id组,根据target_key 去设置 |
object_id | varchar | 对象的id,type为公告时,object_id为公告id |
- 已读红点表red_point_read
字段 | 类型 | 备注 |
---|---|---|
id | char | 主键 |
employee_id | char | 已读员工id |
red_point_info_id | char | 红点信息id |
业务逻辑
- 新增:
服务端:用mq接收,按照数据库字段的规则校验数据。
客户端:用监听者模式,在Listener类发送mq信息 - 分页:先查询已读表,拼接red_point_info_id,在查询的时候not in已读表查询出来的信息
根据target_key和target_ids获取当前用户的信息 - 已读:在已读表添加一条数据