@ -4,6 +4,7 @@ import (
"appPlatform/models/modelAppPlatform"
"appPlatform/overall"
"appPlatform/overall/publicmethod"
"time"
"github.com/gin-gonic/gin"
)
@ -97,3 +98,273 @@ func (a *ApiMethod) MenuOptions(c *gin.Context) {
routerThree := publicmethod . GetMenuOptionsThree ( 0 , menusList )
publicmethod . Result ( 0 , routerThree , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 05 - 22 16 : 40 : 42
@ 功能 : 新增菜单
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) AddNewMenu ( c * gin . Context ) {
var requestData AddNewMenuCont
c . ShouldBindJSON ( & requestData )
if requestData . Name == "" {
publicmethod . Result ( 1 , requestData , c , "请输入菜单名称!" )
return
}
if requestData . Visible == 0 {
requestData . Visible = 1
}
if requestData . Sort == 0 {
requestData . Sort = 50
}
types := publicmethod . MenuTypeToInt ( requestData . Types )
var menuCont modelAppPlatform . Menus
menuCont . Name = requestData . Name //菜单名称"`
menuCont . Types = types //菜单类型(1-菜单;2-目录;3-外链;4-按钮权限"`
menuCont . Path = requestData . Path //路由路径"`
menuCont . Component = requestData . Component //组件路径(vue页面完整路径,省略.vue后缀)"`
menuCont . Perm = publicmethod . GetUUid ( 3 ) //权限标识"`
menuCont . Visible = requestData . Visible //显示状态(1:显示;2:隐藏,3:删除)"`
menuCont . Sort = requestData . Sort //排序(数字越小排名越靠前))"`
menuCont . Icon = requestData . Icon //菜单图标"`
menuCont . Redirect = requestData . Redirect //跳转路径"`
menuCont . ParentId = requestData . ParentId //父菜单ID"`
menuCont . Time = time . Now ( ) . Unix ( ) //创建时间"`
err := overall . CONSTANT_DB_AppPlatform . Create ( & menuCont ) . Error
if err != nil {
publicmethod . Result ( 104 , err , c )
return
}
publicmethod . Result ( 0 , err , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 05 - 23 16 : 21 : 32
@ 功能 : 查看菜单
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) GetOneMenuCont ( c * gin . Context ) {
var requestData publicmethod . PublicId
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if requestData . Id == "" {
publicmethod . Result ( 1 , requestData , c , "未知菜单!" )
return
}
var menuCont modelAppPlatform . Menus
err = menuCont . GetCont ( map [ string ] interface { } { "`id`" : requestData . Id } )
if err != nil {
publicmethod . Result ( 107 , err , c )
return
}
var sendCont EditMenuCont
sendCont . Id = menuCont . Id
sendCont . ParentId = menuCont . ParentId //父菜单ID
sendCont . Name = menuCont . Name //菜单名称
sendCont . Visible = menuCont . Visible //菜单是否可见(1:是;2:否;)
sendCont . Icon = menuCont . Icon //菜单图标
sendCont . Sort = menuCont . Sort //排序
sendCont . Component = menuCont . Component //组件路径
sendCont . Path = menuCont . Path //路由路径
sendCont . Redirect = menuCont . Redirect //跳转路由路径
sendCont . Types = publicmethod . MenuType ( menuCont . Types ) //菜单类型
publicmethod . Result ( 0 , sendCont , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 05 - 23 16 : 44 : 14
@ 功能 : 修改菜单
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) EditMenusCont ( c * gin . Context ) {
var requestData EditMenuCont
c . ShouldBindJSON ( & requestData )
if requestData . Id == 0 {
publicmethod . Result ( 1 , requestData , c , "未知菜单!" )
return
}
if requestData . Name == "" {
publicmethod . Result ( 1 , requestData , c , "请输入菜单名称!" )
return
}
if requestData . Visible == 0 {
requestData . Visible = 1
}
if requestData . Sort == 0 {
requestData . Sort = 50
}
whe := publicmethod . MapOut [ string ] ( )
whe [ "`id`" ] = requestData . Id
var menuCont modelAppPlatform . Menus
err := menuCont . GetCont ( whe )
if err != nil {
publicmethod . Result ( 107 , err , c )
return
}
editCont := publicmethod . MapOut [ string ] ( )
if requestData . Name != menuCont . Name {
editCont [ "name" ] = requestData . Name
}
types := publicmethod . MenuTypeToInt ( requestData . Types )
if types != menuCont . Types {
editCont [ "type" ] = types
}
if requestData . Path != menuCont . Path {
editCont [ "path" ] = requestData . Path
}
if requestData . Component != menuCont . Component {
editCont [ "component" ] = requestData . Component
}
if requestData . Visible == 0 {
requestData . Visible = 1
}
if requestData . Visible != menuCont . Visible {
editCont [ "visible" ] = requestData . Visible
}
if requestData . Sort == 0 {
requestData . Sort = 50
}
if requestData . Sort != menuCont . Sort {
editCont [ "sort" ] = requestData . Sort
}
if requestData . Icon != menuCont . Icon {
editCont [ "icon" ] = requestData . Icon
}
if requestData . Redirect != menuCont . Redirect {
editCont [ "redirect" ] = requestData . Redirect
}
if requestData . ParentId != menuCont . ParentId {
editCont [ "parentId" ] = requestData . ParentId
}
if len ( editCont ) > 0 {
editCont [ "time" ] = time . Now ( ) . Unix ( )
}
err = menuCont . EiteCont ( whe , editCont )
if err != nil {
publicmethod . Result ( 106 , err , c )
return
}
publicmethod . Result ( 0 , err , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 05 - 24 10 : 33 : 12
@ 功能 : 删除菜单
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) DeltMenusCont ( c * gin . Context ) {
var requestData publicmethod . PublicId
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if requestData . Id == "" {
publicmethod . Result ( 1 , requestData , c , "未知菜单!" )
return
}
var menuCont modelAppPlatform . Menus
err = menuCont . GetCont ( map [ string ] interface { } { "`id`" : requestData . Id } )
if err != nil {
publicmethod . Result ( 107 , err , c )
return
}
editCont := publicmethod . MapOut [ string ] ( )
editCont [ "`visible`" ] = 3
editCont [ "`time`" ] = time . Now ( ) . Unix ( )
err = menuCont . EiteCont ( map [ string ] interface { } { "`id`" : requestData . Id } , editCont )
if err != nil {
publicmethod . Result ( 106 , err , c )
return
}
var sunMenus GetSunMenus
sunMenus . GetSunMenusList ( menuCont . Id )
if len ( sunMenus . Id ) > 0 {
overall . CONSTANT_DB_AppPlatform . Model ( & modelAppPlatform . Menus { } ) . Where ( "`id` IN ?" , sunMenus . Id ) . Updates ( editCont )
}
publicmethod . Result ( 0 , err , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 05 - 24 10 : 52 : 12
@ 功能 : 获取所有子菜单
@ 参数
# superior 上级菜单Id
@ 返回值
#
@ 方法原型
# func ( g * GetSunMenus ) GetSunMenusList ( superior int )
* /
func ( g * GetSunMenus ) GetSunMenusList ( superior int ) {
var menuId [ ] int
err := overall . CONSTANT_DB_AppPlatform . Model ( & modelAppPlatform . Menus { } ) . Select ( "`id`" ) . Where ( "`visible` IN (1,2) AND `parentId` = ?" , superior ) . Find ( & menuId ) . Error
if err != nil {
return
}
if len ( menuId ) > 0 {
for _ , v := range menuId {
if ! publicmethod . IsInTrue [ int ] ( v , g . Id ) {
g . Id = append ( g . Id , v )
}
g . GetSunMenusList ( v )
}
}
}