Files
web_ylsa/api_iris/service/admin/menus.go
2025-07-11 16:54:11 +08:00

104 lines
2.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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(&param)
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(&param).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(&param)
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(&param).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
}