feat(websocket): 实现 WebSocket 消息推送功能
- 配置 ASGI 支持 WebSocket 连接 - 新增 WebSocket 路由和消费者类 MegCenter - 实现消息序列化和推送逻辑 - 前端集成 WebSocket 连接状态管理和重连机制 - 添加用户在线状态提示和未读消息提醒- 更新角色权限配置显示条件 - 扩展用户信息存储结构支持 WebSocket 状态字段
This commit is contained in:
@@ -178,6 +178,23 @@ class Dept(CoreModel):
|
||||
cls.recursion_all_dept(ele.get("id"), dept_all_list, dept_list)
|
||||
return list(set(dept_list))
|
||||
|
||||
@classmethod
|
||||
def recursion_all_parent_dept(cls, dept_id: int, dept_list=None):
|
||||
"""
|
||||
递归获取部门的所有上级部门
|
||||
:param dept_id: 需要获取的id
|
||||
:param dept_list: 递归list
|
||||
:return:
|
||||
"""
|
||||
if dept_list is None:
|
||||
dept_list = [dept_id]
|
||||
current_dept = Dept.objects.filter(id=dept_id).values('parent').first()
|
||||
if current_dept and current_dept.get('parent'):
|
||||
parent_id = current_dept.get('parent')
|
||||
dept_list.append(parent_id)
|
||||
cls.recursion_all_parent_dept(parent_id, dept_list)
|
||||
return list(set(dept_list))
|
||||
|
||||
class Meta:
|
||||
db_table = table_prefix + "system_dept"
|
||||
verbose_name = "部门表"
|
||||
|
||||
Reference in New Issue
Block a user