修正了部分错误
parent
f834f3a131
commit
7f9c9fb950
|
|
@ -42,8 +42,8 @@ def get_meetings(current_user: dict = Depends(get_current_user), user_id: Option
|
|||
cursor = connection.cursor(dictionary=True)
|
||||
base_query = '''
|
||||
SELECT m.meeting_id, m.title, m.meeting_time, m.summary, m.created_at, m.tags,
|
||||
m.user_id as creator_id, u.caption as creator_username
|
||||
FROM meetings m JOIN users u ON m.user_id = u.user_id
|
||||
m.user_id as creator_id, u.caption as creator_username, af.file_path as audio_file_path
|
||||
FROM meetings m JOIN users u ON m.user_id = u.user_id LEFT JOIN audio_files af ON m.meeting_id = af.meeting_id
|
||||
'''
|
||||
if user_id:
|
||||
query = f'{base_query} LEFT JOIN attendees a ON m.meeting_id = a.meeting_id WHERE m.user_id = %s OR a.user_id = %s GROUP BY m.meeting_id ORDER BY m.meeting_time DESC, m.created_at DESC'
|
||||
|
|
@ -61,8 +61,8 @@ def get_meetings(current_user: dict = Depends(get_current_user), user_id: Option
|
|||
tags = _process_tags(cursor, meeting.get('tags'))
|
||||
meeting_list.append(Meeting(
|
||||
meeting_id=meeting['meeting_id'], title=meeting['title'], meeting_time=meeting['meeting_time'],
|
||||
summary=meeting['summary'], created_at=meeting['created_at'], attendees=attendees,
|
||||
creator_id=meeting['creator_id'], creator_username=meeting['creator_username'], tags=tags
|
||||
summary=meeting['summary'], created_at=meeting['created_at'], audio_file_path=meeting['audio_file_path'],
|
||||
attendees=attendees, creator_id=meeting['creator_id'], creator_username=meeting['creator_username'], tags=tags
|
||||
))
|
||||
return create_api_response(code="200", message="获取会议列表成功", data=meeting_list)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
from fastapi import APIRouter, Depends
|
||||
from typing import Optional
|
||||
from app.models.models import UserInfo, PasswordChangeRequest, UserListResponse, CreateUserRequest, UpdateUserRequest, RoleInfo
|
||||
from app.core.database import get_db_connection
|
||||
from app.core.auth import get_current_user
|
||||
|
|
@ -146,14 +147,21 @@ def reset_password(user_id: int, current_user: dict = Depends(get_current_user))
|
|||
return create_api_response(code="200", message=f"用户 {user_id} 的密码已重置")
|
||||
|
||||
@router.get("/users")
|
||||
def get_all_users(page: int = 1, size: int = 10, current_user: dict = Depends(get_current_user)):
|
||||
def get_all_users(page: int = 1, size: int = 10, role_id: Optional[int] = None, current_user: dict = Depends(get_current_user)):
|
||||
with get_db_connection() as connection:
|
||||
cursor = connection.cursor(dictionary=True)
|
||||
|
||||
cursor.execute("SELECT COUNT(*) as total FROM users")
|
||||
count_query = "SELECT COUNT(*) as total FROM users"
|
||||
params = []
|
||||
if role_id is not None:
|
||||
count_query += " WHERE role_id = %s"
|
||||
params.append(role_id)
|
||||
|
||||
cursor.execute(count_query, tuple(params))
|
||||
total = cursor.fetchone()['total']
|
||||
|
||||
offset = (page - 1) * size
|
||||
|
||||
query = '''
|
||||
SELECT
|
||||
u.user_id, u.username, u.caption, u.email, u.created_at, u.role_id,
|
||||
|
|
@ -162,10 +170,21 @@ def get_all_users(page: int = 1, size: int = 10, current_user: dict = Depends(ge
|
|||
(SELECT COUNT(*) FROM attendees WHERE user_id = u.user_id) as meetings_attended
|
||||
FROM users u
|
||||
LEFT JOIN roles r ON u.role_id = r.role_id
|
||||
'''
|
||||
|
||||
query_params = []
|
||||
if role_id is not None:
|
||||
query += " WHERE u.role_id = %s"
|
||||
query_params.append(role_id)
|
||||
|
||||
query += '''
|
||||
ORDER BY u.user_id ASC
|
||||
LIMIT %s OFFSET %s
|
||||
'''
|
||||
cursor.execute(query, (size, offset))
|
||||
|
||||
query_params.extend([size, offset])
|
||||
|
||||
cursor.execute(query, tuple(query_params))
|
||||
users = cursor.fetchall()
|
||||
|
||||
user_list = [UserInfo(**user) for user in users]
|
||||
|
|
|
|||
Loading…
Reference in New Issue