123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- package controllers
- import (
- "eta/eta_mini_crm/models"
- "eta/eta_mini_crm/models/response"
- "eta/eta_mini_crm/services"
- "strings"
- )
- type SellerController struct {
- BaseAuthController
- }
- // List
- // @Title 获取部门下销售
- // @Description 获取部门下销售接口
- // @Param AllEnabled query bool true "是否获取包含禁用的用户"
- // @Success 200 {object} company.DepartmentGroupSellersResp
- // @router /list [get]
- func (this *SellerController) List() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- getAllEnabled, _ := this.GetBool("AllEnabled", false)
- enabled := true //默认只获取正常状态的用户
- if getAllEnabled { //获取所有状态的用户
- enabled = false
- }
- departmentList, err := models.GetSysDepartmentList()
- if err != nil {
- br.Msg = "获取部门失败"
- br.ErrMsg = "获取部门失败,系统异常,Err:" + err.Error()
- return
- }
- seller, err := models.GetSysUserListByIsEnabled(enabled)
- if err != nil {
- br.Msg = "获取销售失败"
- br.ErrMsg = "获取销售失败,系统异常,Err:" + err.Error()
- return
- }
- // 遍历获取销售的层级结构
- list := make([]*response.DepartmentSellers, 0)
- for _, dep1 := range departmentList {
- if dep1.ParentId == 0 {
- v1 := new(response.DepartmentSellers)
- v1.SysDepartmentId = dep1.SysDepartmentId
- v1.SysDepartmentName = dep1.SysDepartmentName
- for _, s := range seller {
- if s.SysDepartmentId1 == dep1.SysDepartmentId && s.SysDepartmentId2 == 0 {
- s1 := new(response.DepartmentSellers)
- s1.SysUserId = s.SysUserId
- s1.SysRealName = s.SysRealName
- v1.ChildrenList = append(v1.ChildrenList, s1)
- }
- }
- for _, dep2 := range departmentList {
- if dep2.ParentId == dep1.SysDepartmentId {
- v2 := new(response.DepartmentSellers)
- v2.SysDepartmentId = dep2.SysDepartmentId
- v2.SysDepartmentName = dep2.SysDepartmentName
- for _, s := range seller {
- if s.SysDepartmentId2 == dep2.SysDepartmentId && s.SysDepartmentId3 == 0 {
- s1 := new(response.DepartmentSellers)
- s1.SysUserId = s.SysUserId
- s1.SysRealName = s.SysRealName
- v2.ChildrenList = append(v2.ChildrenList, s1)
- }
- }
- v1.ChildrenList = append(v1.ChildrenList, v2)
- for _, dep3 := range departmentList {
- if dep3.ParentId == dep2.SysDepartmentId {
- v3 := new(response.DepartmentSellers)
- v3.SysDepartmentId = dep3.SysDepartmentId
- v3.SysDepartmentName = dep3.SysDepartmentName
- for _, s := range seller {
- if s.SysDepartmentId3 == dep3.SysDepartmentId {
- s1 := new(response.DepartmentSellers)
- s1.SysUserId = s.SysUserId
- s1.SysRealName = s.SysRealName
- v3.ChildrenList = append(v3.ChildrenList, s1)
- }
- }
- v2.ChildrenList = append(v2.ChildrenList, v3)
- }
- }
- }
- }
- list = append(list, v1)
- }
- }
- resp := new(response.DepartmentGroupSellersResp)
- resp.List = list
- br.Msg = "获取成功"
- br.Success = true
- br.Ret = 200
- br.Data = resp
- }
- // UserTree
- // @Title 获取部门及用户树
- // @Description 获取部门及用户树
- // @Success 200 {object} models.DepartmentUserTree
- // @router /user_tree [get]
- func (this *SellerController) UserTree() {
- 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 := models.GetSysDepartmentList()
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取部门失败,Err:" + e.Error()
- return
- }
- admins, e := models.GetSysUserListByIsEnabled(true)
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取用户失败,Err:" + e.Error()
- return
- }
- // 部门
- departmentList := make([]*models.DepartmentUserTree, 0)
- departmentChild := make(map[int][]*models.DepartmentUserTree, 0)
- for _, v := range departments {
- t := new(models.DepartmentUserTree)
- t.NodeId = v.SysDepartmentId
- t.NodeType = 1
- t.NodeName = v.SysDepartmentName
- t.ParentId = v.ParentId
- t.Children = make([]*models.DepartmentUserTree, 0)
- departmentList = append(departmentList, t)
- if v.ParentId <= 0 {
- continue
- }
- if departmentChild[v.ParentId] == nil {
- departmentChild[v.ParentId] = make([]*models.DepartmentUserTree, 0)
- }
- departmentChild[v.ParentId] = append(departmentChild[v.ParentId], t)
- }
- // 用户map
- departmentAdmins := make(map[int][]*models.DepartmentUserTree, 0)
- for _, v := range admins {
- t := new(models.DepartmentUserTree)
- t.NodeId = v.SysUserId
- t.NodeType = 2
- t.NodeName = v.SysRealName
- t.Children = make([]*models.DepartmentUserTree, 0)
- var departmentId int
- if v.SysDepartmentId3 > 0 {
- departmentId = v.SysDepartmentId3
- } else if v.SysDepartmentId2 > 0 {
- departmentId = v.SysDepartmentId2
- } else {
- departmentId = v.SysDepartmentId1
- }
- t.ParentId = departmentId
- if departmentAdmins[departmentId] == nil {
- departmentAdmins[departmentId] = make([]*models.DepartmentUserTree, 0)
- }
- departmentAdmins[departmentId] = append(departmentAdmins[departmentId], t)
- }
- // 递归
- tree := services.DepartmentUserTreeRecursive(departmentList, departmentChild, departmentAdmins, 0)
- br.Data = tree
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- }
|