feat: 添加数据库索引优化查询性能
refactor(前端): 使用useMemo和useCallback优化性能 perf(后端): 优化统计查询性能 style: 统一前端样式定义 build: 添加创建索引脚本
This commit is contained in:
+28
-10
@@ -51,20 +51,38 @@ router.get('/', authMiddleware, async (req, res) => {
|
||||
order: [['createdAt', 'DESC']]
|
||||
});
|
||||
|
||||
for (const user of users) {
|
||||
const userRoles = await UserRole.findAll({
|
||||
if (users.length > 0) {
|
||||
const userIds = users.map(u => u.userId);
|
||||
const allUserRoles = await UserRole.findAll({
|
||||
include: [{
|
||||
model: Role,
|
||||
where: { status: 'active' }
|
||||
where: { status: 'active' },
|
||||
attributes: ['roleId', 'roleName', 'roleCode']
|
||||
}],
|
||||
where: { UserId: user.userId }
|
||||
where: {
|
||||
UserId: { [Op.in]: userIds }
|
||||
}
|
||||
});
|
||||
|
||||
const userRolesMap = {};
|
||||
allUserRoles.forEach(ur => {
|
||||
if (!userRolesMap[ur.UserId]) {
|
||||
userRolesMap[ur.UserId] = [];
|
||||
}
|
||||
userRolesMap[ur.UserId].push({
|
||||
roleId: ur.Role.roleId,
|
||||
roleName: ur.Role.roleName,
|
||||
roleCode: ur.Role.roleCode
|
||||
});
|
||||
});
|
||||
|
||||
users.forEach(user => {
|
||||
user.dataValues.roles = userRolesMap[user.userId] || [];
|
||||
});
|
||||
} else {
|
||||
users.forEach(user => {
|
||||
user.dataValues.roles = [];
|
||||
});
|
||||
|
||||
user.dataValues.roles = userRoles.map(ur => ({
|
||||
roleId: ur.Role.roleId,
|
||||
roleName: ur.Role.roleName,
|
||||
roleCode: ur.Role.roleCode
|
||||
}));
|
||||
}
|
||||
|
||||
res.json({
|
||||
|
||||
Reference in New Issue
Block a user