classify.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_mini_bridge/models"
  5. "eta/eta_mini_bridge/models/request"
  6. "eta/eta_mini_bridge/models/response"
  7. "eta/eta_mini_bridge/utils"
  8. )
  9. type ClassifyController struct {
  10. BaseAuthController
  11. }
  12. // @Title 根据分类id获取一级品种
  13. // @Description 根据分类id获取一级品种
  14. // @Param request body request.ClassifyReq true "type json string"
  15. // @Success 200 {object} response.ReportDetailResp
  16. // @router /chart_permission/first [post]
  17. func (this *ClassifyController) FirstChartPermission() {
  18. br := new(models.BaseResponse).Init()
  19. defer func() {
  20. this.Data["json"] = br
  21. this.ServeJSON()
  22. }()
  23. var req request.ClassifyReq
  24. if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
  25. br.Msg = "参数错误"
  26. br.ErrMsg = "参数错误,Err:" + err.Error()
  27. return
  28. }
  29. if len(req.ClassifyIds) == 0 {
  30. br.Msg = "分类id错误,获取失败"
  31. return
  32. }
  33. permissionClassifyMap, err := models.GetChartPermissionListByClassifyIds(req.ClassifyIds)
  34. if err != nil {
  35. br.Msg = "品种获取失败"
  36. br.ErrMsg = "获取品种和分类的映射失败,系统错误,Err:" + err.Error()
  37. return
  38. }
  39. classifyToPermissionMap2 := make(map[int][]int)
  40. chartPermissionIds := make([]int, 0)
  41. for _, v := range permissionClassifyMap {
  42. classifyToPermissionMap2[v.ClassifyId] = append(classifyToPermissionMap2[v.ClassifyId], v.ChartPermissionId)
  43. chartPermissionIds = append(chartPermissionIds, v.ChartPermissionId)
  44. }
  45. // 获取二级品种的权限,并建立映射
  46. chartPermissionList2, err := models.GetChartPermissionListByIds(chartPermissionIds)
  47. if err != nil {
  48. br.Msg = "二级品种获取失败"
  49. br.ErrMsg = "二级品种获取失败,系统错误,Err:" + err.Error()
  50. return
  51. }
  52. chartPermissionViewMap2 := make(map[int]*models.ChartPermission)
  53. for _, v := range chartPermissionList2 {
  54. chartPermissionViewMap2[v.ChartPermissionId] = v
  55. }
  56. // 获取一级品种的权限,并建立映射
  57. chartPermissionList1, err := models.GetChildChartPermissionListById(0)
  58. if err != nil {
  59. br.Msg = "获取研报一级品种权限失败"
  60. br.ErrMsg = "获取研报一级品种权限失败,Err:" + err.Error()
  61. return
  62. }
  63. chartPermissionMap1 := make(map[int]*models.ChartPermission)
  64. for _, v := range chartPermissionList1 {
  65. chartPermissionMap1[v.ChartPermissionId] = v
  66. }
  67. var resp []*response.ClassifyPermissionItemResp
  68. for _, v := range req.ClassifyIds {
  69. t := new(response.ClassifyPermissionItemResp)
  70. t.ClassifyId = v
  71. for _, vv := range classifyToPermissionMap2[v] {
  72. if item, ok := chartPermissionViewMap2[vv]; ok {
  73. parent2 := item.ParentId
  74. t.PermissionNames = append(t.PermissionNames, chartPermissionMap1[parent2].PermissionName)
  75. }
  76. }
  77. t.PermissionNames = utils.Unique(t.PermissionNames)
  78. resp = append(resp, t)
  79. }
  80. br.Data = resp
  81. br.Success = true
  82. br.Ret = 200
  83. br.Msg = "获取成功"
  84. }