seller.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package controllers
  2. import (
  3. "eta/eta_mini_crm_ht/models"
  4. "eta/eta_mini_crm_ht/models/response"
  5. )
  6. type SellerController struct {
  7. BaseAuthController
  8. }
  9. // List
  10. // @Title 获取部门下销售
  11. // @Description 获取部门下销售接口
  12. // @Param AllEnabled query bool true "是否获取包含禁用的用户"
  13. // @Success 200 {object} company.DepartmentGroupSellersResp
  14. // @router /list [get]
  15. func (this *SellerController) List() {
  16. br := new(models.BaseResponse).Init()
  17. defer func() {
  18. this.Data["json"] = br
  19. this.ServeJSON()
  20. }()
  21. getAllEnabled, _ := this.GetBool("AllEnabled", false)
  22. enabled := true //默认只获取正常状态的用户
  23. if getAllEnabled { //获取所有状态的用户
  24. enabled = false
  25. }
  26. departmentList, err := models.GetSysDepartmentList()
  27. if err != nil {
  28. br.Msg = "获取部门失败"
  29. br.ErrMsg = "获取部门失败,系统异常,Err:" + err.Error()
  30. return
  31. }
  32. seller, err := models.GetSysUserListByIsEnabled(enabled)
  33. if err != nil {
  34. br.Msg = "获取销售失败"
  35. br.ErrMsg = "获取销售失败,系统异常,Err:" + err.Error()
  36. return
  37. }
  38. // 遍历获取销售的层级结构
  39. list := make([]*response.DepartmentSellers, 0)
  40. for _, dep1 := range departmentList {
  41. if dep1.ParentId == 0 {
  42. v1 := new(response.DepartmentSellers)
  43. v1.SysDepartmentId = dep1.SysDepartmentId
  44. v1.SysDepartmentName = dep1.SysDepartmentName
  45. for _, s := range seller {
  46. if s.SysDepartmentId1 == dep1.SysDepartmentId && s.SysDepartmentId2 == 0 {
  47. s1 := new(response.DepartmentSellers)
  48. s1.SysUserId = s.SysUserId
  49. s1.SysRealName = s.SysRealName
  50. v1.ChildrenList = append(v1.ChildrenList, s1)
  51. }
  52. }
  53. for _, dep2 := range departmentList {
  54. if dep2.ParentId == dep1.SysDepartmentId {
  55. v2 := new(response.DepartmentSellers)
  56. v2.SysDepartmentId = dep2.SysDepartmentId
  57. v2.SysDepartmentName = dep2.SysDepartmentName
  58. for _, s := range seller {
  59. if s.SysDepartmentId2 == dep2.SysDepartmentId && s.SysDepartmentId3 == 0 {
  60. s1 := new(response.DepartmentSellers)
  61. s1.SysUserId = s.SysUserId
  62. s1.SysRealName = s.SysRealName
  63. v2.ChildrenList = append(v2.ChildrenList, s1)
  64. }
  65. }
  66. v1.ChildrenList = append(v1.ChildrenList, v2)
  67. for _, dep3 := range departmentList {
  68. if dep3.ParentId == dep2.SysDepartmentId {
  69. v3 := new(response.DepartmentSellers)
  70. v3.SysDepartmentId = dep3.SysDepartmentId
  71. v3.SysDepartmentName = dep3.SysDepartmentName
  72. for _, s := range seller {
  73. if s.SysDepartmentId3 == dep3.SysDepartmentId {
  74. s1 := new(response.DepartmentSellers)
  75. s1.SysUserId = s.SysUserId
  76. s1.SysRealName = s.SysRealName
  77. v3.ChildrenList = append(v3.ChildrenList, s1)
  78. }
  79. }
  80. v2.ChildrenList = append(v2.ChildrenList, v3)
  81. }
  82. }
  83. }
  84. }
  85. list = append(list, v1)
  86. }
  87. }
  88. resp := new(response.DepartmentGroupSellersResp)
  89. resp.List = list
  90. br.Msg = "获取成功"
  91. br.Success = true
  92. br.Ret = 200
  93. br.Data = resp
  94. }