updatemenu

This commit is contained in:
苏尹岚
2020-09-27 14:21:49 +08:00
parent 49ef3ed9e0
commit c27a92003c
3 changed files with 65 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ package cms
import (
"fmt"
"time"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
@@ -17,14 +18,14 @@ func AddMenu(ctx *jxcontext.Context, menu *model.Menu) (err error) {
db = dao.GetDB()
)
if menu == nil {
return fmt.Errorf("添加失败!function nil")
return fmt.Errorf("添加失败!menu nil")
}
if menu.Name == "" || menu.Level == 0 {
return fmt.Errorf("添加失败!function 名称和等级必须有值!")
return fmt.Errorf("添加失败!menu 名称和等级必须有值!")
}
menus, err := dao.GetMenu(db, menu.Name, menu.Level)
if len(menus) > 0 {
return fmt.Errorf("添加失败!已存在相同名称的 fuction name : %v", menu.Name)
return fmt.Errorf("添加失败!已存在相同名称的 menu name : %v", menu.Name)
}
dao.Begin(db)
defer func() {
@@ -38,3 +39,36 @@ func AddMenu(ctx *jxcontext.Context, menu *model.Menu) (err error) {
dao.Commit(db)
return err
}
func UpdateMenu(ctx *jxcontext.Context, menuID int, payload map[string]interface{}, isDelete bool) (num int64, err error) {
var (
db = dao.GetDB()
)
menu := &model.Menu{}
menu.ID = menuID
err = dao.GetEntity(db, menu)
if err != nil {
return 0, err
}
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if !isDelete {
valid := dao.StrictMakeMapByStructObject(payload, menu, ctx.GetUserName())
if len(valid) > 0 {
if num, err = dao.UpdateEntityLogically(db, menu, valid, ctx.GetUserName(), nil); err != nil {
dao.Rollback(db)
return 0, err
}
}
} else {
menu.DeletedAt = time.Now()
num, err = dao.UpdateEntity(db, menu, "DeletedAt")
}
dao.Commit(db)
return num, err
}