55
66from app .utils .get_db import get_db
77from app .utils .auth import get_current_user
8- from app .curd .group import crud_create , crud_apply_to_enter , crud_get_applications , crud_reply_to_enter , crud_modify_basic_info , crud_modify_admin_list , crud_remove_member , crud_leave_group
9- from app .schemas .group import ApplyToEnter , LeaveGroup
8+ from app .curd .group import crud_create , crud_apply_to_enter , crud_get_applications , crud_reply_to_enter , crud_modify_basic_info , crud_modify_admin_list , crud_remove_member , crud_leave_group , crud_get_basic_info , crud_get_people_info , crud_get_my_level
9+ from app .schemas .group import ApplyToEnter , LeaveGroup , GetBasicInfo
1010
1111router = APIRouter ()
1212
@@ -55,7 +55,7 @@ async def modify_basic_info(group_id: int = Query(...), group_name: str | None =
5555 if group_avatar :
5656 os .makedirs ("/lhcos-data/group-avatar" , exist_ok = True )
5757 # 若之前存储了旧头像,则将其删除;若之前就没头像,则不做处理
58- old_avatar = glob .glob (os .path .join ("/lhcos-data/group-avatar" , group_id + " .*" )) # 基本名为group_id的文件列表,最多有一个元素
58+ old_avatar = glob .glob (os .path .join ("/lhcos-data/group-avatar" , f" { group_id } .*" )) # 基本名为group_id的文件列表,最多有一个元素
5959 if old_avatar :
6060 os .remove (old_avatar [0 ])
6161 # 存储新头像,文件名为 {group_id}.上传文件的扩展名
@@ -83,4 +83,22 @@ async def leave_group(model: LeaveGroup, db: AsyncSession = Depends(get_db), use
8383 await crud_leave_group (group_id , user_id , db )
8484 return {"msg" : "You successfully left the group" }
8585
86- # 写返回个人文件树的后端时记得加 visible = True
86+ @router .get ("/getBasicInfo" , response_model = dict )
87+ async def get_basic_info (model : GetBasicInfo , db : AsyncSession = Depends (get_db )):
88+ group_id = model .group_id
89+ name , desc = crud_get_basic_info (group_id , db )
90+ find = glob .glob (os .path .join ("/lhcos-data/group-avatar" , f"{ group_id } .*" ))
91+ avatar = 'default.png' if not find else find [0 ].removeprefix ("/lhcos-data/group-avatar\\ \\ " )
92+ avatar = '/lhcos-data/group-avatar/' + avatar
93+ return {"avatar" : avatar , "name" : name , "desc" : desc }
94+
95+ @router .get ("/getPeopleInfo" , response_model = dict )
96+ async def get_people_info (group_id : int = Query (...), db : AsyncSession = Depends (get_db )):
97+ leader , admins , members = await crud_get_people_info (group_id , db )
98+ return {"leader" : leader , "admins" : admins , "members" : members }
99+
100+ @router .get ("/getMyLevel" , response_model = dict )
101+ async def get_my_level (group_id : int = Query (...), db : AsyncSession = Depends (get_db ), user : dict = Depends (get_current_user )):
102+ user_id = user .get ("id" )
103+ level = await crud_get_my_level (user_id , group_id , db )
104+ return {"level" : level }
0 commit comments