|
@@ -1,6 +1,12 @@
|
|
|
package controllers
|
|
|
|
|
|
-import "eta/eta_mini_bridge/models"
|
|
|
+import (
|
|
|
+ "eta/eta_mini_bridge/models"
|
|
|
+ "eta/eta_mini_bridge/utils"
|
|
|
+ "fmt"
|
|
|
+ "sort"
|
|
|
+ "strconv"
|
|
|
+)
|
|
|
|
|
|
type ChartPermissionController struct {
|
|
|
BaseAuthController
|
|
@@ -9,7 +15,6 @@ type ChartPermissionController struct {
|
|
|
// List
|
|
|
// @Title 系统品种一级列表
|
|
|
// @Description 系统品种一级列表
|
|
|
-// @Param UserId query int true "角色ID"
|
|
|
// @Success 200 {object} models.LoginResp
|
|
|
// @router /list [get]
|
|
|
func (this *ChartPermissionController) List() {
|
|
@@ -88,3 +93,129 @@ func (this *ChartPermissionController) AllList() {
|
|
|
br.Msg = "列表获取成功"
|
|
|
br.Success = true
|
|
|
}
|
|
|
+
|
|
|
+// Public
|
|
|
+// @Title 获取公有共有权限列表
|
|
|
+// @Description 获取所有公有权限列表
|
|
|
+// @Success 200 {object} []models.ChartPermission
|
|
|
+// @router /public/list [get]
|
|
|
+func (this *ChartPermissionController) Public() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if err := recover(); err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ items, err := models.GetChartPermissionList()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "权限列表获取失败"
|
|
|
+ br.ErrMsg = "权限列表获取失败,系统错误,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rootMap := make(map[int]*models.ChartPermission)
|
|
|
+ publicList := make([]*models.ChartPermission, 0)
|
|
|
+ for _, item := range items {
|
|
|
+ if item.ParentId == 0 {
|
|
|
+ rootMap[item.ChartPermissionId] = item
|
|
|
+ } else if item.IsPublic == 1 {
|
|
|
+ publicList = append(publicList, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 公有权限
|
|
|
+ publicView := getChartPermissionTree(rootMap, publicList)
|
|
|
+ chartList := make([]*models.ChartPermissionView, 0)
|
|
|
+
|
|
|
+ for _, v := range publicView {
|
|
|
+ chartList = append(chartList, v)
|
|
|
+ }
|
|
|
+ sort.Sort(models.BySortChartPermissionView(chartList))
|
|
|
+ br.Msg = "列表获取成功"
|
|
|
+ br.Data = chartList
|
|
|
+ br.Success = true
|
|
|
+ br.Ret = 200
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// Private
|
|
|
+// @Title 获取私有共有权限列表
|
|
|
+// @Description 获取所有私有权限列表
|
|
|
+// @Success 200 {object} []models.ChartPermission
|
|
|
+// @router /private/list [get]
|
|
|
+func (this *ChartPermissionController) Private() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if err := recover(); err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ items, err := models.GetChartPermissionList()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "权限列表获取失败"
|
|
|
+ br.ErrMsg = "权限列表获取失败,系统错误,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rootMap := make(map[int]*models.ChartPermission)
|
|
|
+ privateList := make([]*models.ChartPermission, 0)
|
|
|
+ for _, item := range items {
|
|
|
+ if item.ParentId == 0 {
|
|
|
+ rootMap[item.ChartPermissionId] = item
|
|
|
+ } else if item.IsPublic == 0 {
|
|
|
+ privateList = append(privateList, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 私有权限
|
|
|
+ privateView := getChartPermissionTree(rootMap, privateList)
|
|
|
+ chartList := make([]*models.ChartPermissionView, 0)
|
|
|
+ for _, v := range privateView {
|
|
|
+ chartList = append(chartList, v)
|
|
|
+ }
|
|
|
+
|
|
|
+ sort.Sort(models.BySortChartPermissionView(chartList))
|
|
|
+ br.Msg = "列表获取成功"
|
|
|
+ br.Data = chartList
|
|
|
+ br.Success = true
|
|
|
+ br.Ret = 200
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// getChartPermissionTree获得品种权限的树形结构
|
|
|
+func getChartPermissionTree(rootMap map[int]*models.ChartPermission, childChartPermissionList []*models.ChartPermission) map[int]*models.ChartPermissionView {
|
|
|
+ resultMap := make(map[int]*models.ChartPermissionView)
|
|
|
+ for _, v := range childChartPermissionList {
|
|
|
+ if perm, ok := resultMap[v.ParentId]; ok {
|
|
|
+ perm.Child = append(perm.Child, &models.ChartPermissionView{
|
|
|
+ ChartPermissionId: v.ChartPermissionId,
|
|
|
+ PermissionName: v.PermissionName,
|
|
|
+ IsPublic: v.IsPublic,
|
|
|
+ Sort: v.Sort,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ if root, ok := rootMap[v.ParentId]; ok {
|
|
|
+ resultMap[v.ParentId] = &models.ChartPermissionView{
|
|
|
+ ChartPermissionId: root.ChartPermissionId,
|
|
|
+ PermissionName: root.PermissionName,
|
|
|
+ IsPublic: 0,
|
|
|
+ Sort: root.Sort,
|
|
|
+ Child: make([]*models.ChartPermissionView, 0),
|
|
|
+ }
|
|
|
+ resultMap[v.ParentId].Child = append(resultMap[v.ParentId].Child, &models.ChartPermissionView{
|
|
|
+ ChartPermissionId: v.ChartPermissionId,
|
|
|
+ PermissionName: v.PermissionName,
|
|
|
+ IsPublic: v.IsPublic,
|
|
|
+ Sort: v.Sort,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ utils.ApiLog.Info("私有权限列表获取失败,未找到根节点,权限ID:" + strconv.Itoa(v.ChartPermissionId))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return resultMap
|
|
|
+}
|