104 lines
2.4 KiB
Go
104 lines
2.4 KiB
Go
package admin
|
||
|
||
import (
|
||
"errors"
|
||
"github.com/kataras/iris/v12"
|
||
"github.com/sirupsen/logrus"
|
||
"main/database"
|
||
"main/model"
|
||
"main/utils"
|
||
)
|
||
|
||
func getMenu(ctx iris.Context) {
|
||
err := ctx.JSON(utils.FormatRes(iris.StatusOK, "", utils.MenuList))
|
||
if utils.ErrHandle(ctx, err) {
|
||
return
|
||
}
|
||
}
|
||
|
||
func addMenu(ctx iris.Context) {
|
||
var param model.Menus
|
||
err := ctx.ReadJSON(¶m)
|
||
if utils.ErrHandle(ctx, err) || utils.DataIsNil(param) {
|
||
return
|
||
}
|
||
if (len(param.MenuId) != 3 && len(param.MenuId) != 5) || param.MenuId[0:3] == "000" {
|
||
utils.ErrHandle(ctx, errors.New("菜单ID格式错误"))
|
||
return
|
||
}
|
||
if checkMenuExist(param) {
|
||
utils.ErrHandle(ctx, errors.New("菜单ID已存在"))
|
||
return
|
||
}
|
||
db := database.GetInstance().GetMysqlDb()
|
||
if err1 := db.Create(¶m).Error; err1 != nil {
|
||
logrus.Errorln("sql执行失败:", err1)
|
||
}
|
||
err = ctx.JSON(utils.FormatRes(iris.StatusOK, "", "success"))
|
||
if utils.ErrHandle(ctx, err) {
|
||
return
|
||
}
|
||
utils.UpdateMenuList()
|
||
}
|
||
|
||
func updateMenu(ctx iris.Context) {
|
||
var param model.Menus
|
||
err := ctx.ReadJSON(¶m)
|
||
if utils.ErrHandle(ctx, err) || utils.DataIsNil(param) {
|
||
return
|
||
}
|
||
if (len(param.MenuId) != 3 && len(param.MenuId) != 5) || param.MenuId[0:3] == "000" {
|
||
utils.ErrHandle(ctx, errors.New("菜单ID格式错误"))
|
||
return
|
||
}
|
||
if !checkMenuIDExist(param) || checkMenuExist(param) {
|
||
utils.ErrHandle(ctx, errors.New("菜单ID已存在"))
|
||
return
|
||
}
|
||
db := database.GetInstance().GetMysqlDb()
|
||
if err1 := db.Save(¶m).Error; err1 != nil {
|
||
logrus.Errorln("sql执行失败:", err1)
|
||
}
|
||
err = ctx.JSON(utils.FormatRes(iris.StatusOK, "", "success"))
|
||
if utils.ErrHandle(ctx, err) {
|
||
return
|
||
}
|
||
utils.UpdateMenuList()
|
||
}
|
||
|
||
func deleteMenu(ctx iris.Context) {
|
||
menuId := ctx.URLParam("menu_id")
|
||
db := database.GetInstance().GetMysqlDb()
|
||
utils.UpdateMenuList()
|
||
for _, menu := range utils.MenuList {
|
||
if menu.MenuId == menuId || menu.MenuId[0:3] == menuId {
|
||
if err := db.Delete(&menu).Error; err != nil {
|
||
logrus.Errorln("sql执行失败:", err)
|
||
}
|
||
}
|
||
}
|
||
err := ctx.JSON(utils.FormatRes(iris.StatusOK, "", "success"))
|
||
if utils.ErrHandle(ctx, err) {
|
||
return
|
||
}
|
||
utils.UpdateMenuList()
|
||
}
|
||
|
||
func checkMenuExist(menu model.Menus) bool {
|
||
for _, m := range utils.MenuList {
|
||
if menu.MenuId == m.MenuId && menu.ID != m.ID {
|
||
return true
|
||
}
|
||
}
|
||
return false
|
||
}
|
||
|
||
func checkMenuIDExist(menu model.Menus) bool {
|
||
for _, m := range utils.MenuList {
|
||
if menu.ID == m.ID {
|
||
return true
|
||
}
|
||
}
|
||
return false
|
||
}
|