caipin преди 4 години
родител
ревизия
0fc009bc93
променени са 5 файла, в които са добавени 83 реда и са изтрити 0 реда
  1. 10 0
      dao/group_dao.go
  2. 9 0
      dao/manager_dao.go
  3. 27 0
      services/group_service.go
  4. 31 0
      web/backstage/group_bs.go
  5. 6 0
      web/viewmodels/group.go

+ 10 - 0
dao/group_dao.go

@@ -7,6 +7,8 @@
 package dao
 
 import (
+	"errors"
+
 	"github.com/go-xorm/xorm"
 	"go.mod/models"
 )
@@ -61,3 +63,11 @@ func (d *GroupDao) GetAll() (data []models.CmGroup, total int64) {
 		return datalist, num
 	}
 }
+
+func (d *GroupDao) Delete(data *models.CmGroup) error {
+	_, err := d.engine.Where("id = ?  ", data.Id).Delete(data)
+	if err != nil {
+		return errors.New("删除到账号失败")
+	}
+	return nil
+}

+ 9 - 0
dao/manager_dao.go

@@ -37,6 +37,15 @@ func (d *ManagerDao) Get(id int) *models.CmManager {
 	}
 }
 
+// 根据管理员组ID获得管理员
+func (d *ManagerDao) GetGroupId(groupId int) []models.CmManager {
+
+	datalist := make([]models.CmManager, 0)
+	_ = d.engine.Where("group_id=? ", groupId).Find(&datalist)
+	return datalist
+
+}
+
 //用户名获得数据
 func (d *ManagerDao) GetUserName(userName string) *models.CmManager {
 	data := &models.CmManager{Username: userName}

+ 27 - 0
services/group_service.go

@@ -8,6 +8,7 @@ package services
 
 import (
 	"encoding/json"
+	"errors"
 	"fmt"
 	"strconv"
 	"time"
@@ -25,6 +26,7 @@ type GroupService interface {
 	GetAll() (dataList []viewmodels.Group, total int64)
 	Add(dataVM viewmodels.Group) error
 	Update(dataVM viewmodels.Group, id int) error
+	Delete(id int) error
 }
 
 //返回service操作类
@@ -86,6 +88,31 @@ func (s *groupService) Update(dataVM viewmodels.Group, id int) error {
 	return nil
 }
 
+//移除标段成员
+func (s *groupService) Delete(id int) error {
+	// 1.检查权限组合法性
+	groupData := s.dao.Get(id)
+	if groupData.Id == 0 {
+		return errors.New("添加的账号不合法")
+	}
+
+	// 2.权限组下是否有管理员
+	managerDao := dao.NewManagerDao(datasource.InstanceDbMaster())
+	managerList := managerDao.GetGroupId(id)
+	if len(managerList) != 0 {
+		return errors.New("权限组下还有管理员")
+	}
+
+	// 删除权限组
+	data := models.CmGroup{}
+	data.Id = id
+	err := s.dao.Delete(&data)
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
 // 构造视图层models
 func makeGroupVM(projectCM *models.CmGroup) viewmodels.Group {
 	modelsVM := viewmodels.Group{}

+ 31 - 0
web/backstage/group_bs.go

@@ -7,6 +7,8 @@
 package backstage
 
 import (
+	"fmt"
+
 	"github.com/kataras/iris/v12"
 	"go.mod/services"
 	"go.mod/web/utils"
@@ -85,3 +87,32 @@ func (c *GroupBs) PostUpdate() {
 
 	c.Ctx.JSON(iris.Map{"code": 0, "msg": "编辑成功"})
 }
+
+// 新增管理员组
+func (c *GroupBs) DeleteDelete() {
+	// 1.获得数据
+	data := viewmodels.Group{}
+	if err := c.Ctx.ReadJSON(&data); err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg2": err})
+		return
+	}
+
+	// 2.验证数据
+	if err := data.ValidateDelete(); err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
+		return
+	}
+
+	id, err := utils.GetDecryptId(data.Id)
+	if err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
+		return
+	}
+
+	if err := c.GroupService.Delete(id); err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
+		return
+	}
+
+	c.Ctx.JSON(iris.Map{"code": 0, "msg": "删除成功"})
+}

+ 6 - 0
web/viewmodels/group.go

@@ -33,3 +33,9 @@ func (l Group) ValidateUpdate() error {
 		validation.Field(&l.Id, validation.Required.Error("ID不能为空")),
 	)
 }
+
+func (l Group) ValidateDelete() error {
+	return validation.ValidateStruct(&l,
+		validation.Field(&l.Id, validation.Required.Error("ID不能为空")),
+	)
+}