sys_department.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package services
  2. import (
  3. "eta/eta_mini_crm/models"
  4. )
  5. func GetSysDepartmentPathById(sysDepartmentId int) (path string, err error) {
  6. sysDepartment, err := models.GetSysDepartmentById(sysDepartmentId)
  7. if err != nil {
  8. return
  9. }
  10. path = sysDepartment.SysDepartmentName
  11. curSysDepartmentId := sysDepartmentId
  12. for curLevel := sysDepartment.Level; curLevel >= 1; curLevel-- {
  13. nextSysDepartment, er := models.GetSysDepartmentListByParentId(curSysDepartmentId)
  14. if er != nil {
  15. return
  16. }
  17. curSysDepartmentId = nextSysDepartment.SysDepartmentId
  18. path = nextSysDepartment.SysDepartmentName + "/" + path
  19. }
  20. return
  21. }
  22. func GetSysDepartmentList() ([]*models.SysDepartmentList, error) {
  23. departmentList, err := models.GetSysDepartmentListByLevel(1)
  24. if err != nil {
  25. return nil, err
  26. }
  27. for _, dep := range departmentList {
  28. childDepartmentList, err := models.GetChildSysDepartmentListById(dep.SysDepartmentId)
  29. if err != nil {
  30. return nil, err
  31. }
  32. dep.Child = childDepartmentList
  33. for _, cdep := range childDepartmentList {
  34. subDepartmentList, err := models.GetChildSysDepartmentListById(cdep.SysDepartmentId)
  35. if err != nil {
  36. return nil, err
  37. }
  38. cdep.Child = subDepartmentList
  39. }
  40. }
  41. return departmentList, nil
  42. }