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 }