Roc 1 viikko sitten
vanhempi
commit
c5e374da60
3 muutettua tiedostoa jossa 177 lisäystä ja 56 poistoa
  1. 120 0
      controllers/data_manage/manual.go
  2. 2 56
      controllers/sys_department.go
  3. 55 0
      services/system.go

+ 120 - 0
controllers/data_manage/manual.go

@@ -6,6 +6,7 @@ import (
 	"eta_gn/eta_api/models"
 	"eta_gn/eta_api/models/data_manage"
 	"eta_gn/eta_api/models/system"
+	"eta_gn/eta_api/services"
 	"eta_gn/eta_api/utils"
 	"fmt"
 	"strconv"
@@ -43,6 +44,125 @@ func (this *ManualController) ManualSysUserSearch() {
 	//	return
 	//}
 
+	resp := make([]*data_manage.ManualSysUser, 0)
+	departments, e := system.GetSysDepartmentAll()
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = fmt.Sprintf("获取部门失败, %v", e)
+		return
+	}
+	groups, e := system.GetFullGroup()
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = fmt.Sprintf("获取分组失败, %v", e)
+		return
+	}
+	users := make([]*system.AdminItem, 0)
+	{
+		var cond string
+		var pars []interface{}
+		if keyWord != "" {
+			cond += ` AND (real_name LIKE ? OR admin_name LIKE ? OR mobile LIKE ? )  `
+			pars = utils.GetLikeKeywordPars(pars, keyWord, 3)
+		}
+		sysUsers, e := system.GetSysUserItems(cond, pars)
+		if e != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = fmt.Sprintf("获取用户失败, %v", e)
+			return
+		}
+		users = sysUsers
+	}
+
+	// 用户map
+	departmentAdmins := make(map[int][]*system.DepartmentUserTree, 0)
+	groupAdmins := make(map[int][]*system.DepartmentUserTree, 0)
+	for _, v := range users {
+		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)
+
+		// 直属于部门
+		if v.GroupId == 0 {
+			if departmentAdmins[v.DepartmentId] == nil {
+				departmentAdmins[v.DepartmentId] = make([]*system.DepartmentUserTree, 0)
+			}
+			departmentAdmins[v.DepartmentId] = append(departmentAdmins[v.DepartmentId], t)
+		}
+	}
+
+	// 构建分组树(以前这里还有个keyword匹配,不知道用作干嘛的,先去掉吧)
+	groupTree := services.BuildGroupTree(groups, groupAdmins)
+
+	// 部门
+	list := make([]*system.DepartmentUserTree, 0)
+	for _, v := range departments {
+		// 关键词查询时不显示空部门
+		if keyWord != "" && groupTree[v.DepartmentId] == nil && departmentAdmins[v.DepartmentId] == nil {
+			continue
+		}
+		t := new(system.DepartmentUserTree)
+		t.NodeId = v.DepartmentId
+		t.NodeType = 1
+		t.NodeName = v.DepartmentName
+		t.Children = make([]*system.DepartmentUserTree, 0)
+		if groupTree[v.DepartmentId] != nil {
+			t.Children = append(t.Children, groupTree[v.DepartmentId]...)
+		}
+		if departmentAdmins[v.DepartmentId] != nil {
+			t.Children = append(t.Children, departmentAdmins[v.DepartmentId]...)
+		}
+		list = append(list, t)
+	}
+	resp = ConvertDepartmentUserTree(list)
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
+func ConvertDepartmentUserTree(users []*system.DepartmentUserTree) []*data_manage.ManualSysUser {
+	result := make([]*data_manage.ManualSysUser, 0, len(users))
+	if users == nil || len(users) == 0 {
+		return result
+	}
+	for _, user := range users {
+		result = append(result, &data_manage.ManualSysUser{
+			ItemId:   user.NodeId,
+			ItemName: user.NodeName,
+			Children: ConvertDepartmentUserTree(user.Children),
+		})
+	}
+	return result
+}
+
+func (this *ManualController) ManualSysUserSearchBak() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.Ret = 408
+		return
+	}
+	keyWord := this.GetString("KeyWord")
+	//list, err := data.GetManualSysUser(keyWord)
+	//if err != nil {
+	//	br.Msg = "获取失败"
+	//	br.ErrMsg = "获取失败,Err:" + err.Error()
+	//	return
+	//}
+
 	resp := make([]*data_manage.ManualSysUser, 0)
 	departments, e := system.GetSysDepartmentAll()
 	if e != nil {

+ 2 - 56
controllers/sys_department.go

@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"eta_gn/eta_api/models"
 	"eta_gn/eta_api/models/system"
+	"eta_gn/eta_api/services"
 	"eta_gn/eta_api/utils"
 	"fmt"
 	"strings"
@@ -371,7 +372,7 @@ func (this *SysDepartmentController) DepartmentUserTree() {
 	}
 
 	// 构建分组树(以前这里还有个keyword匹配,不知道用作干嘛的,先去掉吧)
-	groupTree := buildGroupTree(groups, groupAdmins)
+	groupTree := services.BuildGroupTree(groups, groupAdmins)
 
 	// 部门
 	list := make([]*system.DepartmentUserTree, 0)
@@ -399,58 +400,3 @@ func (this *SysDepartmentController) DepartmentUserTree() {
 	br.Msg = "获取成功"
 	br.Data = list
 }
-
-// buildGroupTree 构建分组树
-func buildGroupTree(groups []*system.SysFullGroup, groupAdmins map[int][]*system.DepartmentUserTree) map[int][]*system.DepartmentUserTree {
-	// 创建分组ID到节点的映射
-	groupMap := make(map[int]*system.DepartmentUserTree)
-	idList := make([]int, 0, len(groups))
-
-	// 初始化所有节点,不管父子顺序
-	for _, g := range groups {
-		idList = append(idList, g.GroupId)
-		node := &system.DepartmentUserTree{
-			NodeId:   g.GroupId,
-			NodeType: 2,
-			NodeName: g.GroupName,
-			Children: make([]*system.DepartmentUserTree, 0),
-		}
-
-		// 添加该分组的管理员
-		if admins, ok := groupAdmins[g.GroupId]; ok {
-			node.Children = append(node.Children, admins...)
-		}
-
-		groupMap[g.GroupId] = node
-	}
-
-	// 构建父子关系
-	//rootNodes := make([]*system.DepartmentUserTree, 0)
-
-	// 部门与分组的关系
-	groupTree := make(map[int][]*system.DepartmentUserTree)
-
-	for _, g := range groups {
-		node := groupMap[g.GroupId]
-
-		if g.ParentId == 0 || g.ParentId == -1 {
-			// 如果是根节点
-			//rootNodes = append(rootNodes, node)
-			nodeList, ok := groupTree[g.DepartmentId]
-			if !ok {
-				nodeList = make([]*system.DepartmentUserTree, 0)
-			}
-			groupTree[g.DepartmentId] = append(nodeList, node)
-		} else {
-			// 如果是非根节点,找到父节点并添加到父节点的Children中
-			parentNode, ok := groupMap[g.ParentId]
-			if !ok {
-				// 父节点不存在,继续处理下一个
-				continue
-			}
-			parentNode.Children = append(parentNode.Children, node)
-		}
-	}
-
-	return groupTree
-}

+ 55 - 0
services/system.go

@@ -45,3 +45,58 @@ func GetMenuTreeRecursive(list []*system.SysMenuItem, parentId int) []*system.Sy
 	}
 	return res
 }
+
+// BuildGroupTree 构建分组树
+func BuildGroupTree(groups []*system.SysFullGroup, groupAdmins map[int][]*system.DepartmentUserTree) map[int][]*system.DepartmentUserTree {
+	// 创建分组ID到节点的映射
+	groupMap := make(map[int]*system.DepartmentUserTree)
+	idList := make([]int, 0, len(groups))
+
+	// 初始化所有节点,不管父子顺序
+	for _, g := range groups {
+		idList = append(idList, g.GroupId)
+		node := &system.DepartmentUserTree{
+			NodeId:   g.GroupId,
+			NodeType: 2,
+			NodeName: g.GroupName,
+			Children: make([]*system.DepartmentUserTree, 0),
+		}
+
+		// 添加该分组的管理员
+		if admins, ok := groupAdmins[g.GroupId]; ok {
+			node.Children = append(node.Children, admins...)
+		}
+
+		groupMap[g.GroupId] = node
+	}
+
+	// 构建父子关系
+	//rootNodes := make([]*system.DepartmentUserTree, 0)
+
+	// 部门与分组的关系
+	groupTree := make(map[int][]*system.DepartmentUserTree)
+
+	for _, g := range groups {
+		node := groupMap[g.GroupId]
+
+		if g.ParentId == 0 || g.ParentId == -1 {
+			// 如果是根节点
+			//rootNodes = append(rootNodes, node)
+			nodeList, ok := groupTree[g.DepartmentId]
+			if !ok {
+				nodeList = make([]*system.DepartmentUserTree, 0)
+			}
+			groupTree[g.DepartmentId] = append(nodeList, node)
+		} else {
+			// 如果是非根节点,找到父节点并添加到父节点的Children中
+			parentNode, ok := groupMap[g.ParentId]
+			if !ok {
+				// 父节点不存在,继续处理下一个
+				continue
+			}
+			parentNode.Children = append(parentNode.Children, node)
+		}
+	}
+
+	return groupTree
+}