hxz 2 gadi atpakaļ
vecāks
revīzija
0fc19a7922

+ 83 - 0
app/system/controller/menu.go

@@ -1 +1,84 @@
 package controller
+
+import (
+	"github.com/gin-gonic/gin"
+	"iot_manager_service/app/system/dao"
+	"iot_manager_service/app/system/service"
+	"iot_manager_service/util"
+	"net/http"
+	"strconv"
+)
+
+var Menu = new(menu)
+
+type menu struct{}
+
+func (c *menu) GetDetail(ctx *gin.Context) {
+	id := ctx.Query("id")
+	iId, err := strconv.ParseInt(id, 10, 64)
+	if err != nil {
+		ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(err.Error(), nil))
+		return
+	}
+	detail, err := service.MenuService.Get(iId)
+	if err != nil {
+		ctx.JSON(http.StatusOK, err)
+		return
+	}
+	ctx.JSON(http.StatusOK, util.SuccessResponse(util.Succeeded, detail))
+}
+
+func (c *menu) List(ctx *gin.Context) {
+
+}
+func (c *menu) LazyList(ctx *gin.Context) {
+
+}
+func (c *menu) MenuList(ctx *gin.Context) {
+
+}
+func (c *menu) LazyMenuList(ctx *gin.Context) {
+
+}
+func (c *menu) Submit(ctx *gin.Context) {
+	var req dao.Menu
+	if err := ctx.ShouldBindJSON(&req); err != nil {
+		ctx.JSON(http.StatusOK, util.ParamsInvalidResponse(err.Error(), nil))
+		return
+	}
+	err := service.MenuService.Submit(req)
+	ctx.JSON(http.StatusOK, err)
+}
+func (c *menu) Remove(ctx *gin.Context) {
+
+}
+func (c *menu) Routes(ctx *gin.Context) {
+
+}
+func (c *menu) RoutesExt(cxt *gin.Context) {
+
+}
+func (c *menu) Buttons(ctx *gin.Context) {
+
+}
+func (c *menu) Tree(ctx *gin.Context) {
+
+}
+func (c *menu) GrantTree(ctx *gin.Context) {
+
+}
+func (c *menu) RoleTreeKeys(ctx *gin.Context) {
+
+}
+func (c *menu) GrantTopTree(ctx *gin.Context) {
+
+}
+func (c *menu) TopTreeKeys(ctx *gin.Context) {
+
+}
+func (c *menu) TopMenu(ctx *gin.Context) {
+
+}
+func (c *menu) authRoutes(ctx *gin.Context) {
+
+}

+ 1 - 0
app/system/dao/common.go

@@ -15,6 +15,7 @@ func InitDB(db *gorm.DB) {
 		&Tenant{},
 		&Role{},
 		&RoleMenu{},
+		&Menu{},
 	).Error
 	if err != nil {
 		panic(fmt.Sprintf("AutoMigrate err : %v", err))

+ 31 - 0
app/system/dao/menu.go

@@ -1 +1,32 @@
 package dao
+
+// Menu 角色
+type Menu struct {
+	ID        int64  `gorm:"primary_key" json:"id"`                  //编号
+	ParentId  int64  `gorm:"type:bigint; default 0" json:"parentId"` //父级菜单
+	Code      string `gorm:"type:varchar(255)" json:"code"`          //菜单编号
+	Name      string `gorm:"type:varchar(255)" json:"name"`          //菜单名称
+	Alias     string `gorm:"type:varchar(255)" json:"alias"`         //菜单别名
+	Path      string `gorm:"type:varchar(255)" json:"path"`          //请求地址
+	Source    string `gorm:"type:varchar(255)" json:"source"`        //菜单资源
+	Sort      int    `gorm:"type:int" json:"sort"`                   //排序
+	Category  int    `gorm:"type:int" json:"category"`               //菜单类型
+	Action    int    `gorm:"type:int;default 0" json:"action"`       //操作按钮类型
+	IsOpen    int    `gorm:"type: int;default 1" json:"isOpen"`      //是否打开新页面
+	Remark    string `gorm:"type:varchar(255)" json:"remark"`        //备注
+	IsDeleted int    `gorm:"type:int" json:"isDeleted"`              //是否删除
+}
+
+func (Menu) TableName() string {
+	return "menu"
+}
+func (c *Menu) Get() error {
+	return Db.Model(&c).Where("id = ?", c.ID).Find(&c).Error
+}
+func (c *Menu) Save() error {
+	return Db.Model(&c).Save(&c).Error
+}
+
+func (c *Menu) Update() error {
+	return Db.Model(&c).Where(" id = ? ", c.ID).Update(&c).Error
+}

+ 10 - 0
app/system/model/menu.go

@@ -1 +1,11 @@
 package model
+
+import "iot_manager_service/app/system/dao"
+
+type RsqMenuList struct {
+	Records []dao.Menu `js+on:"records"` //记录列表
+	Current int        `json:"current"`  //当前分页
+	Size    int        `json:"size"`     //每页数量
+	Pages   int        `json:"pages"`    //总页数
+	Total   int        `json:"total"`    //总数
+}

+ 36 - 0
app/system/service/menuService.go

@@ -1 +1,37 @@
 package service
+
+import (
+	"iot_manager_service/app/system/dao"
+	"iot_manager_service/util"
+)
+
+var MenuService = new(menuService)
+
+type menuService struct{}
+
+func (s *menuService) Get(id int64) (*dao.Menu, error) {
+	menu := &dao.Menu{
+		ID: id,
+	}
+	err := menu.Get()
+	if err != nil {
+		return nil, err
+	}
+	return menu, nil
+}
+
+func (s *menuService) Submit(req dao.Menu) *util.Errors {
+	role := &req
+	if role.ID == 0 {
+		err := role.Save()
+		if err != nil {
+			return util.FailResponse(err.Error(), nil)
+		}
+		return util.SuccessResponse(util.Succeeded, nil)
+	}
+	err := role.Update()
+	if err != nil {
+		return util.FailResponse(err.Error(), nil)
+	}
+	return util.SuccessResponse(util.Succeeded, nil)
+}

+ 1 - 1
app/system/service/roleService.go

@@ -52,7 +52,7 @@ func (s *roleService) Tree() (*model.RspRoleTree, error) {
 		return nil, err
 	}
 	rsp := &model.RspRoleTree{}
-
+	//上级角色——多个下级角色数组
 	tmp := make(map[int64][]dao.Role)
 	for _, role := range roles {
 		childes, isExist := tmp[role.ParentId]

+ 21 - 0
router/router.go

@@ -385,4 +385,25 @@ func InitRouter(engine *gin.Engine) {
 		role.POST("/remove", system.Role.Remove)
 		role.POST("/grant", system.Role.Grant)
 	}
+	//菜单
+	menu := engine.Group("/api/blade-system/menu")
+	{
+		menu.GET("/detail", system.Menu.GetDetail)
+		menu.GET("list", system.Menu.List)
+		menu.GET("lazyList", system.Menu.LazyList)
+		menu.GET("menuList", system.Menu.MenuList)
+		menu.GET("lazyMenuList", system.Menu.LazyMenuList)
+		menu.POST("submit", system.Menu.Submit)
+		menu.POST("remove", system.Menu.Remove)
+		menu.GET("routes", system.Menu.Routes)
+		menu.GET("routesExt", system.Menu.RoutesExt)
+		menu.GET("buttons", system.Menu.Buttons)
+		menu.GET("tree", system.Menu.Tree)
+		menu.GET("grantTree", system.Menu.GrantTree)
+		menu.GET("roleTreeKeys", system.Menu.RoleTreeKeys)
+		menu.GET("grantTopTree", system.Menu.GrantTopTree)
+		menu.GET("topTreeKeys", system.Menu.GrantTopTree)
+		menu.GET("topMenu", system.Menu.TopMenu)
+		menu.GET("authRoutes", system.Menu.Routes)
+	}
 }