From 612b8317bc8c03571d0499c008e84bed60a95ed8 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 11 Jul 2024 10:28:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=8F=AD=E7=BA=A7=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=E5=A3=B0=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/pt_class_user.go | 56 +++++++++++++++++++ .../practical_training/practical_training.go | 13 ++++- 2 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 src/modules/practical_training/controller/pt_class_user.go diff --git a/src/modules/practical_training/controller/pt_class_user.go b/src/modules/practical_training/controller/pt_class_user.go new file mode 100644 index 00000000..a7eda4c4 --- /dev/null +++ b/src/modules/practical_training/controller/pt_class_user.go @@ -0,0 +1,56 @@ +package controller + +import ( + "be.ems/src/framework/utils/ctx" + "be.ems/src/framework/utils/parse" + "be.ems/src/framework/vo/result" + systemModel "be.ems/src/modules/system/model" + systemService "be.ems/src/modules/system/service" + "github.com/gin-gonic/gin" +) + +// NewPtClass 实例化控制层 +var NewPtClass = &PtClass{ + sysUserService: systemService.NewSysUserImpl, +} + +// 班级信息数据 +// +// PATH /class +type PtClass struct { + // 用户服务 + sysUserService systemService.ISysUser +} + +// 班级学生列表 (仅教师操作) +// +// GET /students +func (s *PtClass) Students(c *gin.Context) { + querys := ctx.QueryMap(c) + dataScopeSQL := ctx.LoginUserToDataScopeSQL(c, "d", "u") + data := s.sysUserService.SelectUserPage(querys, dataScopeSQL) + + total := parse.Number(data["total"]) + rows := make([]map[string]any, 0) + for _, v := range data["rows"].([]systemModel.SysUser) { + if len(v.Roles) == 0 { + total-- + continue + } + if v.Roles[0].RoleKey != "student" { + total-- + continue + } + rows = append(rows, map[string]any{ + "userId": v.UserID, + "userName": v.UserName, + "nickName": v.NickName, + "loginIp": v.LoginIP, + "loginDate": v.LoginDate, + }) + } + data["total"] = total + data["rows"] = rows + + c.JSON(200, result.Ok(data)) +} diff --git a/src/modules/practical_training/practical_training.go b/src/modules/practical_training/practical_training.go index 2d7c4f28..6a5159eb 100644 --- a/src/modules/practical_training/practical_training.go +++ b/src/modules/practical_training/practical_training.go @@ -19,7 +19,7 @@ func Setup(router *gin.Engine) { neConfigDataGroup := ptGroup.Group("/neConfigData") { neConfigDataGroup.POST("/saveAsDefault", - middleware.PreAuthorize(map[string][]string{"hasRoles": {"admin", "teacher"}}), + middleware.PreAuthorize(map[string][]string{"hasRoles": {"admin"}}), collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neConfigData", collectlogs.BUSINESS_TYPE_OTHER)), controller.NewPtNeConfigData.SaveAsDefault, ) @@ -42,7 +42,7 @@ func Setup(router *gin.Engine) { collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neConfigData", collectlogs.BUSINESS_TYPE_UPDATE)), controller.NewPtNeConfigData.Edit, ) - neConfigDataGroup.DELETE("/", + neConfigDataGroup.DELETE("", middleware.PreAuthorize(nil), collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.neConfigData", collectlogs.BUSINESS_TYPE_DELETE)), controller.NewPtNeConfigData.Remove, @@ -81,4 +81,13 @@ func Setup(router *gin.Engine) { controller.NewPtNeConfigApply.Edit, ) } + + // 班级信息数据 + classGroup := ptGroup.Group("/class") + { + classGroup.GET("/students", + middleware.PreAuthorize(map[string][]string{"hasRoles": {"teacher"}}), + controller.NewPtClass.Students, + ) + } }