feat(admin): 用户管理增强 - CSV 批量导入用户、批量状态/组操作、登录审计日志
Build and Deploy / build-and-deploy (push) Canceled after 0s

This commit is contained in:
2026-09-13 12:09:55 +08:00
parent 32959c7330
commit 62e2250202
10 changed files with 884 additions and 0 deletions
+59
View File
@@ -664,3 +664,62 @@ func AdminBatchDeleteOAuthClient(c *gin.Context) {
}
c.JSON(200, serializer.Response{})
}
// AdminImportUsersCSV 批量导入 CSV 用户(字段:用户名,密码)
func AdminImportUsersCSV(c *gin.Context) {
file, err := c.FormFile("file")
if err != nil {
c.JSON(200, serializer.Err(c, serializer.NewError(serializer.CodeParamErr, "未找到上传文件 field=file", err)))
return
}
res, err := admin.ImportUsers(c, file)
if err != nil {
c.JSON(200, serializer.Err(c, err))
return
}
c.JSON(200, serializer.Response{Data: res})
}
// AdminBatchSetUserStatus 批量设置用户状态
func AdminBatchSetUserStatus(c *gin.Context) {
service := ParametersFromContext[*admin.BatchUserStatusService](c, admin.BatchUserStatusParamCtx{})
err := service.SetStatus(c)
if err != nil {
c.JSON(200, serializer.Err(c, err))
return
}
c.JSON(200, serializer.Response{})
}
// AdminBatchMoveUserGroup 批量移动用户到指定用户组
func AdminBatchMoveUserGroup(c *gin.Context) {
service := ParametersFromContext[*admin.BatchUserMoveGroupService](c, admin.BatchUserMoveGroupParamCtx{})
err := service.MoveGroup(c)
if err != nil {
c.JSON(200, serializer.Err(c, err))
return
}
c.JSON(200, serializer.Response{})
}
// AdminListLoginAudits 登录审计列表
func AdminListLoginAudits(c *gin.Context) {
service := ParametersFromContext[*admin.LoginAuditListService](c, admin.LoginAuditListParamCtx{})
res, err := service.List(c)
if err != nil {
c.JSON(200, serializer.Err(c, err))
return
}
c.JSON(200, serializer.Response{Data: res})
}
// AdminGetLoginAuditDailyStats 登录审计每日统计
func AdminGetLoginAuditDailyStats(c *gin.Context) {
service := ParametersFromContext[*admin.LoginAuditDailyStatsService](c, admin.LoginAuditDailyStatsParamCtx{})
res, err := service.DailyStats(c)
if err != nil {
c.JSON(200, serializer.Err(c, err))
return
}
c.JSON(200, serializer.Response{Data: res})
}