123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- from fastapi import APIRouter, Request, Depends
- from database import get_db
- from sqlalchemy.orm import Session
- from models import *
- from utils import *
- from common.security import valid_access_token
- router = APIRouter()
- @router.get('/getInfo')
- async def getInfo(request: Request,db: Session = Depends(get_db), user_id: int = Depends(valid_access_token)):
- # 用户信息
- info = db.query(SysUser).filter(SysUser.user_id == user_id).first()
-
- # 部门信息
- dept_name = ""
- dept_info = db.query(SysDept).filter(SysDept.dept_id == info.dept_id).first()
- if dept_name is not None:
- dept_name = dept_info.dept_name
-
- # 角色信息
- roles = []
- role_ids = db.query(SysUserRole).filter(SysUserRole.user_id == user_id).all()
- for role in role_ids:
- role_info = db.query(SysRole).filter(SysRole.role_id == role.role_id).first()
- roles.append(
- {
- "roleId": role_info.role_id,
- "roleName": role_info.role_name,
- "roleKey": role_info.role_key,
- "roleSort": role_info.role_sort,
- "dataScope": role_info.data_scope,
- "menuCheckStrictly": role_info.menu_check_strictly,
- "deptCheckStrictly": role_info.dept_check_strictly,
- "status": role_info.status,
- "remark": role_info.remark,
- "createTime": get_datetime_str(role_info.create_time),
- "flag": False,
- "superAdmin": True
- }
- )
- role_keys = [
- n['roleKey']
- for n in roles
- ]
- return {
- "code": 200,
- "msg": "操作成功",
- "data": {
- "user": {
- "userId": info.user_id,
- "tenantId": info.tenant_id,
- "deptId": info.dept_id,
- "userName": info.user_name,
- "nickName": info.nick_name,
- "userType": info.user_type,
- "email": info.email,
- "phonenumber": info.phonenumber,
- "sex": info.sex,
- "avatar": info.avatar,
- "status": info.status,
- "loginIp": info.login_ip,
- "loginDate": get_datetime_str(info.login_date),
- "remark": info.remark,
- "createTime": get_datetime_str(info.create_time),
- "deptName": dept_name,
- "roles": roles,
- "roleIds": None,
- "postIds": None,
- "roleId": None
- },
- "permissions": [
- "*:*:*"
- ],
- "roles": role_keys
- }
- }
- @router.get('/deptTree')
- async def deptTree(request: Request,db: Session = Depends(get_db), user_id: int = Depends(valid_access_token)):
- pass
- @router.get('/list')
- async def userlist(request: Request,db: Session = Depends(get_db), user_id: int = Depends(valid_access_token)):
- pass
- @router.get('/list/dept/{dept_id}')
- async def get_dept_user_list(
- # request: Request,
- dept_id: int,
- db: Session = Depends(get_db),
- body = Depends(remove_xss_json),
- user_id = Depends(valid_access_token)
- ):
- query = db.query(SysUser)
- query = query.filter(SysUser.del_flag != '2')
- if dept_id:
- query = query.filter(SysUser.dept_id == dept_id)
- user_list = query.all()
- # 将模型实例转换为字典
- user_list_dict = [{
- "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": None,
- "roleIds": None,
- "postIds": None,
- "roleId": None
- } for user in user_list]
- return {
- "code": 200,
- "data": user_list_dict,
- "msg": "操作成功"
- }
|