55from pydantic import BaseModel
66from sqlalchemy import select
77from sqlalchemy .ext .asyncio import AsyncSession
8- from sqlalchemy .orm import Session
98
109from src .storage .db .manager import db_manager
1110from src .storage .db .models import User
@@ -96,16 +95,12 @@ async def login_for_access_token(form_data: OAuth2PasswordRequestForm = Depends(
9695 login_identifier = form_data .username # OAuth2表单中的username字段作为登录标识符
9796
9897 # 尝试通过user_id查找
99- result = await db .execute (
100- select (User ).filter (User .user_id == login_identifier )
101- )
98+ result = await db .execute (select (User ).filter (User .user_id == login_identifier ))
10299 user = result .scalar_one_or_none ()
103100
104101 # 如果通过user_id没找到,尝试通过phone_number查找
105102 if not user :
106- result = await db .execute (
107- select (User ).filter (User .phone_number == login_identifier )
108- )
103+ result = await db .execute (select (User ).filter (User .phone_number == login_identifier ))
109104 user = result .scalar_one_or_none ()
110105
111106 # 如果用户不存在,为防止用户名枚举攻击,返回通用错误信息
@@ -309,8 +304,7 @@ async def update_profile(
309304 # 检查手机号是否已被其他用户使用
310305 if profile_data .phone_number :
311306 result = await db .execute (
312- select (User )
313- .filter (User .phone_number == profile_data .phone_number , User .id != current_user .id )
307+ select (User ).filter (User .phone_number == profile_data .phone_number , User .id != current_user .id )
314308 )
315309 existing_phone = result .scalar_one_or_none ()
316310 if existing_phone :
@@ -336,7 +330,10 @@ async def update_profile(
336330
337331@auth .post ("/users" , response_model = UserResponse )
338332async def create_user (
339- user_data : UserCreate , request : Request , current_user : User = Depends (get_admin_user ), db : AsyncSession = Depends (get_db )
333+ user_data : UserCreate ,
334+ request : Request ,
335+ current_user : User = Depends (get_admin_user ),
336+ db : AsyncSession = Depends (get_db ),
340337):
341338 # 验证用户名
342339 is_valid , error_msg = validate_username (user_data .username )
@@ -347,9 +344,7 @@ async def create_user(
347344 )
348345
349346 # 检查用户名是否已存在
350- result = await db .execute (
351- select (User ).filter (User .username == user_data .username )
352- )
347+ result = await db .execute (select (User ).filter (User .username == user_data .username ))
353348 existing_user = result .scalar_one_or_none ()
354349 if existing_user :
355350 raise HTTPException (
@@ -359,9 +354,7 @@ async def create_user(
359354
360355 # 检查手机号是否已存在(如果提供了)
361356 if user_data .phone_number :
362- result = await db .execute (
363- select (User ).filter (User .phone_number == user_data .phone_number )
364- )
357+ result = await db .execute (select (User ).filter (User .phone_number == user_data .phone_number ))
365358 existing_phone = result .scalar_one_or_none ()
366359 if existing_phone :
367360 raise HTTPException (
@@ -405,7 +398,9 @@ async def create_user(
405398 await db .refresh (new_user )
406399
407400 # 记录操作
408- await log_operation (db , current_user .id , "创建用户" , f"创建用户: { user_data .username } , 角色: { user_data .role } " , request )
401+ await log_operation (
402+ db , current_user .id , "创建用户" , f"创建用户: { user_data .username } , 角色: { user_data .role } " , request
403+ )
409404
410405 return new_user .to_dict ()
411406
@@ -415,22 +410,15 @@ async def create_user(
415410async def read_users (
416411 skip : int = 0 , limit : int = 100 , current_user : User = Depends (get_admin_user ), db : AsyncSession = Depends (get_db )
417412):
418- result = await db .execute (
419- select (User )
420- .filter (User .is_deleted == 0 )
421- .offset (skip )
422- .limit (limit )
423- )
413+ result = await db .execute (select (User ).filter (User .is_deleted == 0 ).offset (skip ).limit (limit ))
424414 users = result .scalars ().all ()
425415 return [user .to_dict () for user in users ]
426416
427417
428418# 路由:获取特定用户信息(管理员权限)
429419@auth .get ("/users/{user_id}" , response_model = UserResponse )
430420async def read_user (user_id : int , current_user : User = Depends (get_admin_user ), db : AsyncSession = Depends (get_db )):
431- result = await db .execute (
432- select (User ).filter (User .id == user_id , User .is_deleted == 0 )
433- )
421+ result = await db .execute (select (User ).filter (User .id == user_id , User .is_deleted == 0 ))
434422 user = result .scalar_one_or_none ()
435423 if user is None :
436424 raise HTTPException (
@@ -449,9 +437,7 @@ async def update_user(
449437 current_user : User = Depends (get_admin_user ),
450438 db : AsyncSession = Depends (get_db ),
451439):
452- result = await db .execute (
453- select (User ).filter (User .id == user_id , User .is_deleted == 0 )
454- )
440+ result = await db .execute (select (User ).filter (User .id == user_id , User .is_deleted == 0 ))
455441 user = result .scalar_one_or_none ()
456442 if user is None :
457443 raise HTTPException (
@@ -478,9 +464,7 @@ async def update_user(
478464
479465 if user_data .username is not None :
480466 # 检查用户名是否已被其他用户使用
481- result = await db .execute (
482- select (User ).filter (User .username == user_data .username , User .id != user_id )
483- )
467+ result = await db .execute (select (User ).filter (User .username == user_data .username , User .id != user_id ))
484468 existing_user = result .scalar_one_or_none ()
485469 if existing_user :
486470 raise HTTPException (
@@ -511,9 +495,7 @@ async def update_user(
511495async def delete_user (
512496 user_id : int , request : Request , current_user : User = Depends (get_admin_user ), db : AsyncSession = Depends (get_db )
513497):
514- result = await db .execute (
515- select (User ).filter (User .id == user_id , User .is_deleted == 0 )
516- )
498+ result = await db .execute (select (User ).filter (User .id == user_id , User .is_deleted == 0 ))
517499 user = result .scalar_one_or_none ()
518500 if user is None :
519501 raise HTTPException (
@@ -581,7 +563,9 @@ async def delete_user(
581563# 路由:验证用户名并生成user_id
582564@auth .post ("/validate-username" , response_model = UserIdGeneration )
583565async def validate_username_and_generate_user_id (
584- validation_data : UsernameValidation , current_user : User = Depends (get_admin_user ), db : AsyncSession = Depends (get_db )
566+ validation_data : UsernameValidation ,
567+ current_user : User = Depends (get_admin_user ),
568+ db : AsyncSession = Depends (get_db ),
585569):
586570 """验证用户名格式并生成可用的user_id"""
587571 # 验证用户名格式
@@ -593,9 +577,7 @@ async def validate_username_and_generate_user_id(
593577 )
594578
595579 # 检查用户名是否已存在
596- result = await db .execute (
597- select (User ).filter (User .username == validation_data .username )
598- )
580+ result = await db .execute (select (User ).filter (User .username == validation_data .username ))
599581 existing_user = result .scalar_one_or_none ()
600582 if existing_user :
601583 raise HTTPException (
@@ -617,9 +599,7 @@ async def check_user_id_availability(
617599 user_id : str , current_user : User = Depends (get_admin_user ), db : AsyncSession = Depends (get_db )
618600):
619601 """检查user_id是否可用"""
620- result = await db .execute (
621- select (User ).filter (User .user_id == user_id )
622- )
602+ result = await db .execute (select (User ).filter (User .user_id == user_id ))
623603 existing_user = result .scalar_one_or_none ()
624604 return {"user_id" : user_id , "is_available" : existing_user is None }
625605
0 commit comments