updatemenu
This commit is contained in:
@@ -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
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user