瀏覽代碼

add batch delete

sunsheng 1 年之前
父節點
當前提交
54f1d9c698
共有 3 個文件被更改,包括 60 次插入0 次删除
  1. 2 0
      src/api/router.go
  2. 30 0
      src/api/test.go
  3. 28 0
      src/api/user.go

+ 2 - 0
src/api/router.go

@@ -16,6 +16,7 @@ func RegRouters(svc *Service) {
 	// 用户管理
 	root.POSTJWT("/admin/user/create", CreateUser)
 	root.POSTJWT("/admin/user/delete/:id", DeleteUser)
+	root.POSTJWT("/admin/user/delete/batch", BatchDeleteUser)
 	root.GETJWT("/admin/user/list", UserList)
 	root.GETJWT("/admin/user/detail/:id", UserDetail)
 	root.POSTJWT("/admin/user/update", UpdateUser)
@@ -40,6 +41,7 @@ func RegRouters(svc *Service) {
 	// 考核试题管理
 	root.POSTJWT("/admin/test/create/:scope", CreateTest)
 	root.POSTJWT("/admin/test/delete/:id/:scope", DeleteTest)
+	root.POSTJWT("/admin/test/delete/batch/:scope", BatchDeleteTest)
 	root.GETJWT("/admin/test/list/:scope", TestList)
 	root.GETJWT("/admin/test/detail/:id/:scope", TestDetail)
 	root.POSTJWT("/admin/test/update/:scope", UpdateTest)

+ 30 - 0
src/api/test.go

@@ -73,6 +73,36 @@ func DeleteTest(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 	return repo.RepoDeleteDbDoc(apictx.CreateRepoCtx(), db, repo.CollectionTest, _id)
 }
 
+type BatchDeleteTestReq struct {
+	Ids []string `json:"ids"`
+}
+
+func BatchDeleteTest(c *gin.Context, apictx *ApiSession) (interface{}, error) {
+	// 验证是否为管理员
+	isAdmin, err := IsAdmin(c, apictx)
+	if err != nil {
+		return nil, err
+	}
+	if !isAdmin {
+		return nil, errors.New("没有权限")
+	}
+	db := c.Param("scope")
+	if len(db) == 0 {
+		return nil, errors.New("scope不能为空")
+	}
+	var form BatchDeleteTestReq
+	err = c.ShouldBindJSON(&form)
+	if err != nil {
+		return nil, errors.New("参数错误")
+	}
+	if len(form.Ids) > 0 {
+		for _, id := range form.Ids {
+			repo.RepoDeleteDbDoc(apictx.CreateRepoCtx(), db, repo.CollectionTest, id)
+		}
+	}
+	return true, nil
+}
+
 // 试题列表
 // /admin/test/list/:scope?content=xxx&type=判断&page=1&size=10
 func TestList(c *gin.Context, apictx *ApiSession) (interface{}, error) {

+ 28 - 0
src/api/user.go

@@ -118,6 +118,34 @@ func DeleteUser(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 	return repo.RepoDeleteDoc(apictx.CreateRepoCtx(), repo.CollectionUser, _id)
 }
 
+type BatchDeleteUserReq struct {
+	Ids []string `json:"ids"`
+}
+
+func BatchDeleteUser(c *gin.Context, apictx *ApiSession) (interface{}, error) {
+	// 验证是否为管理员
+	isAdmin, err := IsAdmin(c, apictx)
+	if err != nil {
+		return nil, err
+	}
+	if !isAdmin {
+		return nil, errors.New("没有权限")
+	}
+	var form BatchDeleteUserReq
+	err = c.ShouldBindJSON(&form)
+	if err != nil {
+		return nil, errors.New("参数错误")
+	}
+	if len(form.Ids) > 0 {
+		for _, id := range form.Ids {
+			repo.RepoDeleteDoc(apictx.CreateRepoCtx(), repo.CollectionUser, id)
+		}
+	}
+	return true, nil
+}
+
+// 用户列表
+// /user/list?role=student&name=xxx&nid=xxx&page=1&size=10
 func UserList(c *gin.Context, apictx *ApiSession) (interface{}, error) {
 	// 验证是否为管理员
 	isStudent, err := IsStudent(c, apictx)