__init__.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from fastapi import APIRouter, Request, Depends
  4. from database import get_db
  5. from sqlalchemy.orm import Session
  6. from models import *
  7. from utils import *
  8. from common.security import valid_access_token
  9. router = APIRouter()
  10. @router.get('/getInfo')
  11. async def getInfo(request: Request,db: Session = Depends(get_db), user_id: int = Depends(valid_access_token)):
  12. # 用户信息
  13. info = db.query(SysUser).filter(SysUser.user_id == user_id).first()
  14. # 部门信息
  15. dept_name = ""
  16. dept_info = db.query(SysDept).filter(SysDept.dept_id == info.dept_id).first()
  17. if dept_name is not None:
  18. dept_name = dept_info.dept_name
  19. # 角色信息
  20. roles = []
  21. role_ids = db.query(SysUserRole).filter(SysUserRole.user_id == user_id).all()
  22. for role in role_ids:
  23. role_info = db.query(SysRole).filter(SysRole.role_id == role.role_id).first()
  24. roles.append(
  25. {
  26. "roleId": role_info.role_id,
  27. "roleName": role_info.role_name,
  28. "roleKey": role_info.role_key,
  29. "roleSort": role_info.role_sort,
  30. "dataScope": role_info.data_scope,
  31. "menuCheckStrictly": role_info.menu_check_strictly,
  32. "deptCheckStrictly": role_info.dept_check_strictly,
  33. "status": role_info.status,
  34. "remark": role_info.remark,
  35. "createTime": get_datetime_str(role_info.create_time),
  36. "flag": False,
  37. "superAdmin": True
  38. }
  39. )
  40. role_keys = [
  41. n['roleKey']
  42. for n in roles
  43. ]
  44. return {
  45. "code": 200,
  46. "msg": "操作成功",
  47. "data": {
  48. "user": {
  49. "userId": info.user_id,
  50. "tenantId": info.tenant_id,
  51. "deptId": info.dept_id,
  52. "userName": info.user_name,
  53. "nickName": info.nick_name,
  54. "userType": info.user_type,
  55. "email": info.email,
  56. "phonenumber": info.phonenumber,
  57. "sex": info.sex,
  58. "avatar": info.avatar,
  59. "status": info.status,
  60. "loginIp": info.login_ip,
  61. "loginDate": get_datetime_str(info.login_date),
  62. "remark": info.remark,
  63. "createTime": get_datetime_str(info.create_time),
  64. "deptName": dept_name,
  65. "roles": roles,
  66. "roleIds": None,
  67. "postIds": None,
  68. "roleId": None
  69. },
  70. "permissions": [
  71. "*:*:*"
  72. ],
  73. "roles": role_keys
  74. }
  75. }
  76. @router.get('/deptTree')
  77. async def deptTree(request: Request,db: Session = Depends(get_db), user_id: int = Depends(valid_access_token)):
  78. pass
  79. @router.get('/list')
  80. async def userlist(request: Request,db: Session = Depends(get_db), user_id: int = Depends(valid_access_token)):
  81. pass