فهرست منبع

新增部门用户树

hsun 1 سال پیش
والد
کامیت
2ba32bb70b
3فایلهای تغییر یافته به همراه153 افزوده شده و 0 حذف شده
  1. 136 0
      controllers/sys_department.go
  2. 8 0
      models/system/sys_department.go
  3. 9 0
      routers/commentsRouter.go

+ 136 - 0
controllers/sys_department.go

@@ -5,6 +5,8 @@ import (
 	"eta/eta_api/models"
 	"eta/eta_api/models/system"
 	"eta/eta_api/utils"
+	"fmt"
+	"strings"
 	"time"
 )
 
@@ -221,3 +223,137 @@ func (this *SysDepartmentController) ListDepartment() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// DepartmentUserTree
+// @Title 获取部门及分组用户树
+// @Description 获取部门列表接口
+// @Success 200 {object} system.DepartmentUserTree
+// @router /department/user_tree [get]
+func (this *SysDepartmentController) DepartmentUserTree() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		return
+	}
+	keywords := this.GetString("Keywords", "")
+	keywords = strings.TrimSpace(keywords)
+
+	// 获取部门/分组/用户
+	departments, e := system.GetDepartmentList()
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取部门失败,Err:" + e.Error()
+		return
+	}
+	groups, e := system.GetFullGroup()
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取分组失败,Err:" + e.Error()
+		return
+	}
+	cond := ` AND enabled = 1`
+	pars := make([]interface{}, 0)
+	if keywords != "" {
+		kw := fmt.Sprint("%", keywords, "%")
+		cond += ` AND real_name LIKE ?`
+		pars = append(pars, kw)
+	}
+	admins, e := system.GetSysAdminList(cond, pars, []string{}, "")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取用户失败,Err:" + e.Error()
+		return
+	}
+
+	// 分组及用户
+	groupAdmins := make(map[int][]*system.DepartmentUserTree, 0)
+	for _, v := range admins {
+		t := new(system.DepartmentUserTree)
+		t.NodeId = v.AdminId
+		t.NodeType = 3
+		t.NodeName = v.RealName
+		t.Children = make([]*system.DepartmentUserTree, 0)
+		if groupAdmins[v.GroupId] == nil {
+			groupAdmins[v.GroupId] = make([]*system.DepartmentUserTree, 0)
+		}
+		groupAdmins[v.GroupId] = append(groupAdmins[v.GroupId], t)
+	}
+
+	// 小组
+	groupTeams := make(map[int][]*system.DepartmentUserTree, 0)
+	for _, v := range groups {
+		if v.ParentId == 0 {
+			continue
+		}
+		// 关键词查询时不显示空组
+		if keywords != "" && groupAdmins[v.GroupId] == nil {
+			continue
+		}
+		t := new(system.DepartmentUserTree)
+		t.NodeId = v.GroupId
+		t.NodeName = v.GroupName
+		t.NodeType = 2
+		t.Children = make([]*system.DepartmentUserTree, 0)
+		t.Children = groupAdmins[v.GroupId]
+		if groupTeams[v.ParentId] == nil {
+			groupTeams[v.ParentId] = make([]*system.DepartmentUserTree, 0)
+		}
+		groupTeams[v.ParentId] = append(groupTeams[v.ParentId], t)
+	}
+
+	// 大组
+	departmentGroups := make(map[int][]*system.DepartmentUserTree, 0)
+	for _, v := range groups {
+		if v.ParentId > 0 {
+			continue
+		}
+		// 关键词查询时不显示空组
+		if keywords != "" && groupAdmins[v.GroupId] == nil && groupTeams[v.GroupId] == nil {
+			continue
+		}
+		t := new(system.DepartmentUserTree)
+		t.NodeId = v.GroupId
+		t.NodeName = v.GroupName
+		t.NodeType = 2
+		t.Children = make([]*system.DepartmentUserTree, 0)
+		if groupTeams[v.GroupId] != nil {
+			t.Children = append(t.Children, groupTeams[v.GroupId]...)
+		}
+		if groupAdmins[v.GroupId] != nil {
+			t.Children = append(t.Children, groupAdmins[v.GroupId]...)
+		}
+		if departmentGroups[v.DepartmentId] == nil {
+			departmentGroups[v.DepartmentId] = make([]*system.DepartmentUserTree, 0)
+		}
+		departmentGroups[v.DepartmentId] = append(departmentGroups[v.DepartmentId], t)
+	}
+
+	// 部门
+	list := make([]*system.DepartmentUserTree, 0)
+	for _, v := range departments {
+		// 关键词查询时不显示空部门
+		if keywords != "" && departmentGroups[v.DepartmentId] == nil {
+			continue
+		}
+		t := new(system.DepartmentUserTree)
+		t.NodeId = v.DepartmentId
+		t.NodeType = 1
+		t.NodeName = v.DepartmentName
+		t.Children = departmentGroups[v.DepartmentId]
+		list = append(list, t)
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = list
+}

+ 8 - 0
models/system/sys_department.go

@@ -145,3 +145,11 @@ func MultiUpdateDepartmentSort(items []*DepartmentSort) (err error) {
 	}
 	return
 }
+
+// DepartmentUserTree 部门用户树
+type DepartmentUserTree struct {
+	NodeId   int                   `description:"节点ID"`
+	NodeType int                   `description:"节点类型:1-部门;2-分组;3-用户"`
+	NodeName string                `description:"节点名称"`
+	Children []*DepartmentUserTree `description:"子节点"`
+}

+ 9 - 0
routers/commentsRouter.go

@@ -7603,6 +7603,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers:SysDepartmentController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:SysDepartmentController"],
+        beego.ControllerComments{
+            Method: "DepartmentUserTree",
+            Router: `/department/user_tree`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers:SysGroupController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:SysGroupController"],
         beego.ControllerComments{
             Method: "Add",