permission_service.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package config
  2. import (
  3. logger "eta/eta_mini_ht_api/common/component/log"
  4. "eta/eta_mini_ht_api/common/exception"
  5. permissionDao "eta/eta_mini_ht_api/models/config"
  6. )
  7. type PermissionDTO struct {
  8. PermissionId int `json:"permissionId"`
  9. PermissionName string `json:"permissionName"`
  10. ParentId int `json:"parentId"`
  11. RiskLevel string `json:"riskLevel"`
  12. Sort int `json:"sort"`
  13. }
  14. type PermissionNode struct {
  15. ID int `json:"id"`
  16. Name string `json:"name"`
  17. ParentID int `json:"parentId"`
  18. Children []*PermissionNode `json:"children,omitempty"`
  19. }
  20. func assemblePermissionNode(list []PermissionDTO, node *PermissionNode, current int, level int) {
  21. if node != nil && current < level {
  22. for _, permission := range list {
  23. if permission.ParentId == node.ID {
  24. childNode := &PermissionNode{
  25. ID: permission.PermissionId,
  26. Name: permission.PermissionName,
  27. ParentID: permission.ParentId,
  28. }
  29. node.Children = append(node.Children, childNode)
  30. assemblePermissionNode(list, childNode, current+1, level)
  31. }
  32. }
  33. }
  34. }
  35. func GetPermissionListWithRisk() (dtos []PermissionDTO, err error) {
  36. permissions, err := permissionDao.GetPermissionListWithRisk()
  37. if err != nil {
  38. logger.Error("获取设置风险等级的品种列表失败:%v", err)
  39. }
  40. for _, permission := range permissions {
  41. dtos = append(dtos, PermissionDTO{
  42. PermissionId: permission.PermissionId,
  43. PermissionName: permission.Name,
  44. ParentId: permission.ParentId,
  45. RiskLevel: permission.RiskLevel,
  46. Sort: permission.Sort,
  47. })
  48. }
  49. return
  50. }
  51. func GetPermissionListByIds(permissionIds []int) (dtos []PermissionDTO, err error) {
  52. permissions, err := permissionDao.GetPermissionListByIds(permissionIds)
  53. if err != nil {
  54. logger.Error("通过ID查找品种列表失败:%v", err)
  55. }
  56. for _, permission := range permissions {
  57. dtos = append(dtos, PermissionDTO{
  58. PermissionId: permission.PermissionId,
  59. PermissionName: permission.Name,
  60. ParentId: permission.ParentId,
  61. RiskLevel: permission.RiskLevel,
  62. Sort: permission.Sort,
  63. })
  64. }
  65. return
  66. }
  67. func GetPermissionList() (root *PermissionNode, err error) {
  68. list, err := permissionDao.GetPermissionList()
  69. if err != nil {
  70. logger.Error("获取品种列表失败:%v", err)
  71. err = exception.New(exception.GetPermissionListFailed)
  72. return
  73. }
  74. root = &PermissionNode{
  75. ID: 0,
  76. ParentID: 0,
  77. }
  78. var dtoList []PermissionDTO
  79. for _, permission := range list {
  80. dtoList = append(dtoList, PermissionDTO{
  81. PermissionId: permission.PermissionId,
  82. PermissionName: permission.Name,
  83. ParentId: permission.ParentId,
  84. Sort: permission.Sort,
  85. })
  86. }
  87. assemblePermissionNode(dtoList, root, 0, 2)
  88. return
  89. }
  90. func SyncPermission(list []PermissionDTO) (err error) {
  91. var permissionList []permissionDao.Permission
  92. for _, dto := range list {
  93. permission := convert(dto)
  94. permissionList = append(permissionList, permission)
  95. }
  96. return permissionDao.BatchInsertOrUpdate(permissionList)
  97. }
  98. func convert(dto PermissionDTO) permissionDao.Permission {
  99. return permissionDao.Permission{
  100. PermissionId: dto.PermissionId,
  101. Name: dto.PermissionName,
  102. ParentId: dto.ParentId,
  103. Sort: dto.Sort,
  104. }
  105. }