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
}

View File

@@ -40,3 +40,22 @@ func (c *PowerController) GetMenu() {
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,
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.ControllerComments{
Method: "AutoFocusStoreSkus",