system.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package services
  2. import (
  3. "eta_gn/eta_api/models/company"
  4. "eta_gn/eta_api/models/system"
  5. "eta_gn/eta_api/utils"
  6. "fmt"
  7. )
  8. func GetRoleTypeCode(roleType string) string {
  9. var roleTypeCode string
  10. switch roleType {
  11. case utils.ROLE_TYPE_ADMIN:
  12. roleTypeCode = utils.ROLE_TYPE_CODE_ADMIN
  13. case utils.ROLE_TYPE_FICC_ADMIN:
  14. roleTypeCode = utils.ROLE_TYPE_CODE_FICC_ADMIN
  15. case utils.ROLE_TYPE_FICC_SELLER:
  16. roleTypeCode = utils.ROLE_TYPE_CODE_FICC_SELLER
  17. case utils.ROLE_TYPE_RAI_ADMIN:
  18. roleTypeCode = utils.ROLE_TYPE_CODE_RAI_ADMIN
  19. case utils.ROLE_TYPE_FICC_GROUP, utils.ROLE_TYPE_FICC_MANAGER:
  20. roleTypeCode = utils.ROLE_TYPE_CODE_FICC_GROUP
  21. case utils.ROLE_TYPE_RAI_GROUP:
  22. roleTypeCode = utils.ROLE_TYPE_CODE_RAI_GROUP
  23. case utils.ROLE_TYPE_FICC_DEPARTMENT:
  24. roleTypeCode = utils.ROLE_TYPE_CODE_FICC_DEPARTMENT
  25. case utils.ROLE_TYPE_RAI_DEPARTMENT:
  26. roleTypeCode = utils.ROLE_TYPE_CODE_RAI_DEPARTMENT
  27. case utils.ROLE_TYPE_FICC_RESEARCHR:
  28. roleTypeCode = utils.ROLE_TYPE_CODE_FICC_RESEARCHR
  29. case utils.ROLE_TYPE_RAI_RESEARCHR:
  30. roleTypeCode = utils.ROLE_TYPE_CODE_RAI_RESEARCHR
  31. default:
  32. roleTypeCode = utils.ROLE_TYPE_ADMIN
  33. }
  34. return roleTypeCode
  35. }
  36. // CheckAdminIsSameBigGroup 判断是否两个系统用户是否同一个大组内
  37. func CheckAdminIsSameBigGroup(adminInfo1, adminInfo2 *system.Admin) (isSame bool, err error) {
  38. // 如果销售和创建人是同一个小组
  39. if adminInfo1.GroupId == adminInfo2.GroupId {
  40. isSame = true
  41. return
  42. }
  43. var admin1BigGroupId, admin2BigGroupId int
  44. //获取第一个系统用户的大组id
  45. {
  46. //获取该账号的大组id
  47. pid, tmpErr := company.GetParentIdFromGroup(adminInfo1.GroupId)
  48. if tmpErr != nil {
  49. err = tmpErr
  50. return
  51. }
  52. if pid != nil && *pid > 0 {
  53. //该账号放在了三级分组下
  54. admin1BigGroupId = *pid
  55. } else {
  56. //该账号放在了二级分组下
  57. admin1BigGroupId = adminInfo1.GroupId
  58. }
  59. }
  60. //获取第二个系统用户的大组id
  61. {
  62. //获取该账号的大组id
  63. pid, tmpErr := company.GetParentIdFromGroup(adminInfo2.GroupId)
  64. if tmpErr != nil {
  65. err = tmpErr
  66. return
  67. }
  68. if pid != nil && *pid > 0 {
  69. //该账号放在了三级分组下
  70. admin2BigGroupId = *pid
  71. } else {
  72. //该账号放在了二级分组下
  73. admin2BigGroupId = adminInfo2.GroupId
  74. }
  75. }
  76. if admin1BigGroupId == admin2BigGroupId {
  77. isSame = true
  78. return
  79. }
  80. return
  81. }
  82. // CheckRaiAdmin 判断是否为权益内部人员
  83. func CheckRaiAdmin(adminId int) (isRai bool, err error) {
  84. raiAdmins, e := system.GetRaiAdmin()
  85. if e != nil {
  86. err = fmt.Errorf("获取权益内部人员失败, GetRaiAdmin Err: %s", e.Error())
  87. return
  88. }
  89. for _, r := range raiAdmins {
  90. if adminId == r.AdminId {
  91. isRai = true
  92. break
  93. }
  94. }
  95. return
  96. }
  97. // GetMenuTreeRecursive 递归菜单树
  98. func GetMenuTreeRecursive(list []*system.SysMenuItem, parentId int) []*system.SysMenuItem {
  99. res := make([]*system.SysMenuItem, 0)
  100. for _, v := range list {
  101. if v.ParentId == parentId {
  102. v.Children = GetMenuTreeRecursive(list, v.MenuId)
  103. res = append(res, v)
  104. }
  105. }
  106. return res
  107. }