浏览代码

fix:修改分类获取品种名称

zqbao 9 月之前
父节点
当前提交
e3e998bb83
共有 4 个文件被更改,包括 54 次插入23 次删除
  1. 43 20
      controllers/classify.go
  2. 4 2
      controllers/report.go
  3. 6 0
      models/response/classify.go
  4. 1 1
      routers/commentsRouter.go

+ 43 - 20
controllers/classify.go

@@ -4,8 +4,8 @@ import (
 	"encoding/json"
 	"eta/eta_mini_bridge/models"
 	"eta/eta_mini_bridge/models/request"
+	"eta/eta_mini_bridge/models/response"
 	"eta/eta_mini_bridge/utils"
-	"strconv"
 )
 
 type ClassifyController struct {
@@ -14,9 +14,9 @@ type ClassifyController struct {
 
 // @Title 根据分类id获取一级品种
 // @Description 根据分类id获取一级品种
-// @Param   ClassifyId   query   int  true       "二级分类ID"
+// @Param	request	body request.ClassifyReq true "type json string"
 // @Success 200 {object} response.ReportDetailResp
-// @router /chart_permission/first [get]
+// @router /chart_permission/first [post]
 func (this *ClassifyController) FirstChartPermission() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
@@ -33,36 +33,59 @@ func (this *ClassifyController) FirstChartPermission() {
 		br.Msg = "分类id错误,获取失败"
 		return
 	}
-	classifyId, _ := this.GetInt("ClassifyId", 0)
-	if classifyId <= 0 {
-		br.Msg = "分类id错误,获取失败"
-		return
-	}
-	chartPermissionIds, err := models.GetChartPermissionIdsListByClassifyIds(req.ClassifyIds)
+	permissionClassifyMap, err := models.GetChartPermissionListByClassifyIds(req.ClassifyIds)
 	if err != nil {
-		br.Msg = "二级品种获取失败"
-		br.ErrMsg = "二级品种id获取失败,系统错误,Err:" + err.Error()
+		br.Msg = "品种获取失败"
+		br.ErrMsg = "获取品种和分类的映射失败,系统错误,Err:" + err.Error()
 		return
 	}
-	chartPermissionList, err := models.GetChartPermissionListByIds(chartPermissionIds)
+
+	classifyToPermissionMap2 := make(map[int][]int)
+	chartPermissionIds := make([]int, 0)
+	for _, v := range permissionClassifyMap {
+		classifyToPermissionMap2[v.ClassifyId] = append(classifyToPermissionMap2[v.ClassifyId], v.ChartPermissionId)
+		chartPermissionIds = append(chartPermissionIds, v.ChartPermissionId)
+	}
+
+	// 获取二级品种的权限,并建立映射
+	chartPermissionList2, err := models.GetChartPermissionListByIds(chartPermissionIds)
 	if err != nil {
 		br.Msg = "二级品种获取失败"
 		br.ErrMsg = "二级品种获取失败,系统错误,Err:" + err.Error()
 		return
 	}
-	fisrtPermissionIds := make([]string, 0)
-	for _, chartPermission := range chartPermissionList {
-		fisrtPermissionIds = append(fisrtPermissionIds, strconv.Itoa(chartPermission.ParentId))
+	chartPermissionViewMap2 := make(map[int]*models.ChartPermission)
+	for _, v := range chartPermissionList2 {
+		chartPermissionViewMap2[v.ChartPermissionId] = v
 	}
-	fisrtPermissionIds = utils.Unique(fisrtPermissionIds)
-	firstPermissionList, err := models.GetChartPermissionListByStrIds(fisrtPermissionIds)
+
+	// 获取一级品种的权限,并建立映射
+	chartPermissionList1, err := models.GetChildChartPermissionListById(0)
 	if err != nil {
-		br.Msg = "一级品种获取失败"
-		br.ErrMsg = "一级品种获取失败,系统错误,Err:" + err.Error()
+		br.Msg = "获取研报一级品种权限失败"
+		br.ErrMsg = "获取研报一级品种权限失败,Err:" + err.Error()
 		return
 	}
+	chartPermissionMap1 := make(map[int]*models.ChartPermission)
+	for _, v := range chartPermissionList1 {
+		chartPermissionMap1[v.ChartPermissionId] = v
+	}
+
+	var resp []*response.ClassifyPermissionItemResp
+	for _, v := range req.ClassifyIds {
+		t := new(response.ClassifyPermissionItemResp)
+		t.ClassifyId = v
+		for _, vv := range classifyToPermissionMap2[v] {
+			if item, ok := chartPermissionViewMap2[vv]; ok {
+				parent2 := item.ParentId
+				t.PermissionNames = append(t.PermissionNames, chartPermissionMap1[parent2].PermissionName)
+			}
+		}
+		t.PermissionNames = utils.Unique(t.PermissionNames)
+		resp = append(resp, t)
+	}
 
-	br.Data = firstPermissionList
+	br.Data = resp
 	br.Success = true
 	br.Ret = 200
 	br.Msg = "获取成功"

+ 4 - 2
controllers/report.go

@@ -550,8 +550,10 @@ func (this *ReportController) RecentList() {
 	for _, v := range list {
 		var permissionNames []string
 		for _, vv := range classifyToPermissionMap2[v.ClassifyIdSecond] {
-			parent2 := chartPermissionViewMap2[vv].ParentId
-			permissionNames = append(permissionNames, chartPermissionMap1[parent2].PermissionName)
+			if item, ok := chartPermissionViewMap2[vv]; ok {
+				parent2 := item.ParentId
+				permissionNames = append(permissionNames, chartPermissionMap1[parent2].PermissionName)
+			}
 		}
 		v.PermissionNames = utils.Unique(permissionNames)
 	}

+ 6 - 0
models/response/classify.go

@@ -0,0 +1,6 @@
+package response
+
+type ClassifyPermissionItemResp struct {
+	ClassifyId      int      `description:"二级分类id"`
+	PermissionNames []string `description:"权限名称列表"`
+}

+ 1 - 1
routers/commentsRouter.go

@@ -110,7 +110,7 @@ func init() {
         beego.ControllerComments{
             Method: "FirstChartPermission",
             Router: `/chart_permission/first`,
-            AllowHTTPMethods: []string{"get"},
+            AllowHTTPMethods: []string{"post"},
             MethodParams: param.Make(),
             Filters: nil,
             Params: nil})