浏览代码

用户详情查询接口

baoyubo 10 月之前
父节点
当前提交
5cc7e711af
共有 3 个文件被更改,包括 103 次插入8 次删除
  1. 5 5
      routers/prod_api/system/dept/__init__.py
  2. 58 1
      routers/prod_api/system/user/__init__.py
  3. 40 2
      utils/ry_system_util.py

+ 5 - 5
routers/prod_api/system/dept/__init__.py

@@ -84,12 +84,12 @@ async def get_list(
     body = Depends(remove_xss_json),
     user_id = Depends(valid_access_token)
 ):
-    query = db.query(SysDept)
-    query = query.filter(SysDept.del_flag != '2')
-    if dept_id:
-        query = query.filter(SysDept.dept_id != dept_id)
+    # query = db.query(SysDept)
+    # query = query.filter(SysDept.del_flag != '2')
+    # if dept_id:
+    #     query = query.filter(SysDept.dept_id != dept_id)
 
-    dept_list = query.all()
+    dept_list = parent_id_get_exclude_dept_info(db,dept_id)
     # 将模型实例转换为字典
     dept_list_dict = [{
         "deptId": dept.dept_id,

+ 58 - 1
routers/prod_api/system/user/__init__.py

@@ -216,6 +216,61 @@ async def userlist( deptId: int = Query(None ,description='部门id'),
         traceback.print_exc()
         raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
 
+@router.get('/{user_id_1}')
+async def userlist( user_id_1: int = Query(None ,description='用户id'),
+                    db: Session = Depends(get_db),
+                    user_id: int = Depends(valid_access_token)):
+    try:
+
+        user = user_id_get_user_info(db,user_id_1)
+        # 将查询结果转换为列表形式的字典
+        roleIds = user_id_get_user_roleIds(db, user_id_1)
+        user_roles = role_id_list_get_user_role(db,roleIds)
+
+        user_list = {
+                "userId": user.user_id,
+                "tenantId": user.tenant_id,
+                "deptId": user.dept_id,
+                "userName": user.user_name,
+                "nickName": user.nick_name,
+                "userType": user.user_type,
+                "email": user.email,
+                "phonenumber": user.phonenumber,
+                "sex": user.sex,
+                "avatar": user.avatar,
+                "status": user.status,
+                "loginIp": user.login_ip,
+                "loginDate": user.login_date.strftime('%Y-%m-%d %H:%M:%S') if user.login_date else '',
+                "remark": user.remark,
+                "createTime": user.create_time.strftime('%Y-%m-%d %H:%M:%S') if user.create_time else '',
+                "deptName": user.dept_name,
+                "roles": user_roles,
+                "roleIds": None,
+                "postIds": None,
+                "roleId": None
+            }
+
+        roles = get_role(db)
+
+
+        # 返回结果
+        return {
+            "code": 200,
+            "msg": "成功用户列表",
+            "data": {
+                "user":user_list,
+                "roleIds":roleIds,
+                "roles":roles,
+                "postIds":[],
+                "posts":[]
+            }
+        }
+
+
+    except Exception as e:
+        traceback.print_exc()
+        raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
+
 @router.get('/list/dept/{dept_id}')
 async def get_dept_user_list(
     # request: Request,
@@ -310,4 +365,6 @@ async def delete_dept(
         "code": 200,
         "data": None,
         "msg": "操作成功"
-    }
+    }
+
+

+ 40 - 2
utils/ry_system_util.py

@@ -12,10 +12,48 @@ def user_id_get_user_info(db,user_id):
     query = query.filter(SysUser.user_id == user_id)
     return query.first()
 
-def parent_id_get_dept_info(db,parent_id,dept_id=None):
+def user_id_get_user_roleIds(db,user_id):
+    query = db.query(SysUserRole)
+    # query = query.filter(SysUserRole.del_flag != '2')
+    query = query.filter(SysUserRole.user_id == user_id)
+    resutl = query.all()
+    return [i.role_id for i in resutl]
+
+def role_list_to_dict(roles):
+    return [
+        {
+            "roleId": role.role_id,
+            "roleName": role.role_name,
+            "roleKey": role.role_key,
+            "roleSort": role.role_sort,
+            "dataScope": role.data_scope,
+            "menuCheckStrictly": role.menu_check_strictly,
+            "deptCheckStrictly": role.dept_check_strictly,
+            "status": role.status,
+            "remark": role.remark,
+            "createTime": role.create_time.strftime('%Y-%m-%d %H:%M:%S') if role.create_time else '',
+            "flag": False,
+            "superAdmin": False
+        }
+        for role in roles
+    ]
+
+def role_id_list_get_user_role(db,role_id_list):
+    query = db.query(SysRole)
+    # query = query.filter(SysUserRole.del_flag != '2')
+    query = query.filter(SysRole.role_id.in_(role_id_list))
+    resutl = query.all()
+    return role_list_to_dict(resutl)
+
+def get_role(db):
+    query = db.query(SysRole)
+    query = query.filter(SysRole.del_flag != '2')
+    return role_list_to_dict(query.all())
+
+
+def parent_id_get_exclude_dept_info(db,dept_id):
     query = db.query(SysDept)
     query = query.filter(SysDept.del_flag != '2')
-    query = query.filter(SysDept.parent_id == parent_id)
 
     # 排除某些部门
     if dept_id: