chore: 基线提交(重构前快照)
重构前保存现有 apps/ 结构基线,供后续各阶段回滚。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
from apps.models.user_role import UserRole
|
||||
from apps.models.role import Role
|
||||
from extensions import get_db_session
|
||||
|
||||
|
||||
# 根据用户ID查询角色列表
|
||||
|
||||
def get_user_role_list(userId):
|
||||
db = get_db_session()
|
||||
rows = (
|
||||
db.query(Role.id, Role.name)
|
||||
.join(UserRole, UserRole.role_id == Role.id)
|
||||
.filter(UserRole.user_id == userId, Role.is_delete == 0)
|
||||
.all()
|
||||
)
|
||||
role_list = []
|
||||
if rows:
|
||||
for v in rows:
|
||||
item = {
|
||||
'id': v.id,
|
||||
'name': v.name,
|
||||
}
|
||||
role_list.append(item)
|
||||
return role_list
|
||||
|
||||
|
||||
# 根据用户ID列表批量查询角色,返回 {user_id: [{id, name}, ...]} 字典
|
||||
|
||||
def get_user_role_map(user_ids):
|
||||
if not user_ids:
|
||||
return {}
|
||||
db = get_db_session()
|
||||
# 用ORM查询替代原生SQL,避免tuple单元素/空列表的IN语法问题
|
||||
from apps.models.user_role import UserRole
|
||||
from apps.models.role import Role
|
||||
rows = (
|
||||
db.query(UserRole.user_id, Role.id.label('role_id'), Role.name.label('role_name'))
|
||||
.join(Role, Role.id == UserRole.role_id)
|
||||
.filter(UserRole.user_id.in_(user_ids), Role.is_delete == 0)
|
||||
.all()
|
||||
)
|
||||
role_map = {}
|
||||
for row in rows:
|
||||
uid = row.user_id
|
||||
if uid not in role_map:
|
||||
role_map[uid] = []
|
||||
role_map[uid].append({'id': row.role_id, 'name': row.role_name})
|
||||
return role_map
|
||||
Reference in New Issue
Block a user