chart_permission.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package services
  2. import "eta/eta_mini_crm/models"
  3. // 获得全部的权限结构列表
  4. func GetChartPermissionList() (publicMap, privateMap map[string]*models.ChartPermissionList, err error) {
  5. items, err := models.GetChildChartPermissionListById(0)
  6. if err != nil {
  7. return
  8. }
  9. publicMap = make(map[string]*models.ChartPermissionList)
  10. privateMap = make(map[string]*models.ChartPermissionList)
  11. for _, cpl := range items {
  12. childPermissionList, e := models.GetChildChartPermissionListById(cpl.ChartPermissionId)
  13. if e != nil {
  14. return nil, nil, e
  15. }
  16. publicTmp := copyChartPermissionList(cpl)
  17. privateTmp := copyChartPermissionList(cpl)
  18. for _, childCpl := range childPermissionList {
  19. if childCpl.IsPublic == 1 {
  20. // 公有权限
  21. publicTmp.Child = append(publicTmp.Child, childCpl)
  22. } else {
  23. // 私有权限
  24. privateTmp.Child = append(privateTmp.Child, childCpl)
  25. }
  26. }
  27. if len(publicTmp.Child) > 0 {
  28. publicMap[cpl.ChartPermissionName] = publicTmp
  29. }
  30. if len(privateTmp.Child) > 0 {
  31. privateMap[cpl.ChartPermissionName] = privateTmp
  32. }
  33. }
  34. return
  35. }
  36. // 获得全部的权限结构列表树形结构
  37. func GetChartPermissionListTree(list []*models.ChartPermissionListTree, parentId int) []*models.ChartPermissionListTree {
  38. res := make([]*models.ChartPermissionListTree, 0)
  39. for _, v := range list {
  40. if v.ParentId == parentId {
  41. t := new(models.ChartPermissionListTree)
  42. t.ChartPermissionId = v.ChartPermissionId
  43. t.PermissionName = v.PermissionName
  44. t.ParentId = v.ParentId
  45. for _, j := range list {
  46. if j.ParentId == v.ChartPermissionId {
  47. c := new(models.ChartPermissionListTree)
  48. c.ChartPermissionId = j.ChartPermissionId
  49. c.PermissionName = j.PermissionName
  50. c.ParentId = j.ParentId
  51. if j.IsPublic == 1 {
  52. t.PublicChild = append(t.PublicChild, c)
  53. } else {
  54. t.PrivateChild = append(t.PrivateChild, c)
  55. }
  56. }
  57. }
  58. res = append(res, t)
  59. }
  60. }
  61. return res
  62. }
  63. func copyChartPermissionList(src *models.ChartPermissionList) *models.ChartPermissionList {
  64. tmp := &models.ChartPermissionList{
  65. ChartPermissionId: src.ChartPermissionId,
  66. ChartPermissionName: src.ChartPermissionName,
  67. PermissionName: src.PermissionName,
  68. Sort: src.Sort,
  69. Enabled: src.Enabled,
  70. CreatedTime: src.CreatedTime,
  71. LastUpdatedTime: src.LastUpdatedTime,
  72. TeleconferenceSort: src.TeleconferenceSort,
  73. Remark: src.Remark,
  74. ClassifyName: src.ClassifyName,
  75. ProductName: src.ProductName,
  76. ImageURL: src.ImageURL,
  77. ShowType: src.ShowType,
  78. IsOther: src.IsOther,
  79. IsReport: src.IsReport,
  80. CygxAuth: src.CygxAuth,
  81. PermissionType: src.PermissionType,
  82. YbImgUrl: src.YbImgUrl,
  83. ProductPermissionName: src.ProductPermissionName,
  84. PriceDrivenState: src.PriceDrivenState,
  85. ImageUrlM: src.ImageUrlM,
  86. ParentId: src.ParentId,
  87. IsPublic: src.IsPublic,
  88. Child: src.Child,
  89. }
  90. return tmp
  91. }