|
1 | 1 | from sqlalchemy import and_, desc |
2 | 2 | from sqlalchemy.orm import Session |
3 | | -from module_admin.entity.do.role_do import SysRole, SysRoleMenu |
| 3 | +from module_admin.entity.do.role_do import SysRole, SysRoleMenu, SysRoleDept |
| 4 | +from module_admin.entity.do.dept_do import SysDept |
4 | 5 | from module_admin.entity.do.menu_do import SysMenu |
5 | | -from module_admin.entity.vo.role_vo import RoleModel, RoleMenuModel, RoleQueryModel, RoleDetailModel |
| 6 | +from module_admin.entity.vo.role_vo import RoleModel, RoleMenuModel, RoleDeptModel, RoleQueryModel, RoleDetailModel |
6 | 7 | from utils.time_format_util import list_format_datetime, object_format_datetime |
7 | 8 | from datetime import datetime, time |
8 | 9 |
|
@@ -74,9 +75,15 @@ def get_role_detail_by_id(cls, db: Session, role_id: int): |
74 | 75 | .outerjoin(SysRoleMenu, SysRole.role_id == SysRoleMenu.role_id) \ |
75 | 76 | .outerjoin(SysMenu, and_(SysRoleMenu.menu_id == SysMenu.menu_id, SysMenu.status == 0)) \ |
76 | 77 | .distinct().all() |
| 78 | + query_role_dept_info = db.query(SysDept).select_from(SysRole) \ |
| 79 | + .filter(SysRole.del_flag == 0, SysRole.role_id == role_id) \ |
| 80 | + .outerjoin(SysRoleDept, SysRole.role_id == SysRoleDept.role_id) \ |
| 81 | + .outerjoin(SysDept, and_(SysRoleDept.dept_id == SysDept.dept_id, SysDept.status == 0, SysDept.del_flag == 0)) \ |
| 82 | + .distinct().all() |
77 | 83 | results = dict( |
78 | 84 | role=object_format_datetime(query_role_basic_info), |
79 | 85 | menu=list_format_datetime(query_role_menu_info), |
| 86 | + dept=list_format_datetime(query_role_dept_info), |
80 | 87 | ) |
81 | 88 |
|
82 | 89 | return RoleDetailModel(**results) |
@@ -177,3 +184,26 @@ def delete_role_menu_dao(cls, db: Session, role_menu: RoleMenuModel): |
177 | 184 | db.query(SysRoleMenu) \ |
178 | 185 | .filter(SysRoleMenu.role_id == role_menu.role_id) \ |
179 | 186 | .delete() |
| 187 | + |
| 188 | + @classmethod |
| 189 | + def add_role_dept_dao(cls, db: Session, role_dept: RoleDeptModel): |
| 190 | + """ |
| 191 | + 新增角色部门关联信息数据库操作 |
| 192 | + :param db: orm对象 |
| 193 | + :param role_dept: 用户角色部门关联对象 |
| 194 | + :return: |
| 195 | + """ |
| 196 | + db_role_dept = SysRoleDept(**role_dept.dict()) |
| 197 | + db.add(db_role_dept) |
| 198 | + |
| 199 | + @classmethod |
| 200 | + def delete_role_dept_dao(cls, db: Session, role_dept: RoleDeptModel): |
| 201 | + """ |
| 202 | + 删除角色部门关联信息数据库操作 |
| 203 | + :param db: orm对象 |
| 204 | + :param role_dept: 角色部门关联对象 |
| 205 | + :return: |
| 206 | + """ |
| 207 | + db.query(SysRoleDept) \ |
| 208 | + .filter(SysRoleDept.role_id == role_dept.role_id) \ |
| 209 | + .delete() |
0 commit comments