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 ( import (
"fmt" "fmt"
"time"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model" "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() db = dao.GetDB()
) )
if menu == nil { if menu == nil {
return fmt.Errorf("添加失败!function nil") return fmt.Errorf("添加失败!menu nil")
} }
if menu.Name == "" || menu.Level == 0 { if menu.Name == "" || menu.Level == 0 {
return fmt.Errorf("添加失败!function 名称和等级必须有值!") return fmt.Errorf("添加失败!menu 名称和等级必须有值!")
} }
menus, err := dao.GetMenu(db, menu.Name, menu.Level) menus, err := dao.GetMenu(db, menu.Name, menu.Level)
if len(menus) > 0 { if len(menus) > 0 {
return fmt.Errorf("添加失败!已存在相同名称的 fuction name : %v", menu.Name) return fmt.Errorf("添加失败!已存在相同名称的 menu name : %v", menu.Name)
} }
dao.Begin(db) dao.Begin(db)
defer func() { defer func() {
@@ -38,3 +39,36 @@ func AddMenu(ctx *jxcontext.Context, menu *model.Menu) (err error) {
dao.Commit(db) dao.Commit(db)
return err 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
}

View File

@@ -40,3 +40,22 @@ func (c *PowerController) GetMenu() {
return retVal, "", err return retVal, "", err
}) })
} }
// @Title 修改功能(菜单)
// @Description 修改功能(菜单)
// @Param token header string true "认证token"
// @Param payload formData string true "Menu json实体"
// @Param menuID formData int true "菜单ID"
// @Param isDelete formData bool true "是否是删除"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /UpdateMenu [put]
func (c *PowerController) UpdateMenu() {
c.callUpdateMenu(func(params *tPowerUpdateMenuParams) (retVal interface{}, errCode string, err error) {
payload := make(map[string]interface{})
if err = utils.UnmarshalUseNumber([]byte(params.Payload), payload); err == nil {
retVal, err = cms.UpdateMenu(params.Ctx, params.MenuID, payload, params.IsDelete)
}
return retVal, "", err
})
}

View File

@@ -1449,6 +1449,15 @@ func init() {
Filters: nil, Filters: nil,
Params: nil}) Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:PowerController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:PowerController"],
beego.ControllerComments{
Method: "UpdateMenu",
Router: `/UpdateMenu`,
AllowHTTPMethods: []string{"put"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ReportController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ReportController"], beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ReportController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ReportController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "AutoFocusStoreSkus", Method: "AutoFocusStoreSkus",