menu.go
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package domain
// 系统菜单
type Menu struct {
// 菜单编号
MenuId int64 `json:"menuId"`
// 父级id
ParentId int64 `json:"parentId"`
// 菜单名称
MenuName string `json:"menuName"`
// 菜单编码 SYSTEM_USER_EDIT / 100101 (字符编码)
Code string `json:"code"`
// 权限编码 users:edit
AccessCode string `json:"accessCode"`
// 菜单类型 (目录catalog、菜单menu、按钮button)
MenuType string `json:"menuType"`
// 菜单图标
Icon string `json:"icon"`
// 排序
Sort int `json:"sort"`
// 菜单说明
Remark string `json:"remark"`
// 菜单类别 (web:1、app:2)
Category string `json:"category"`
// 父级节点路径("0,11,12,")
ParentPath string `json:"parentPath"`
// 菜单是否公开状态,[0:隐藏],[1:显示],默认显示
IsPublish int `json:"isPublish"`
// 菜单是否是系统级,[0:否],[1:是],默认否
IsSystem int `json:"isSystem"`
}
type MenuRepository interface {
Save(menu *Menu) (*Menu, error)
Remove(menu *Menu) (*Menu, error)
FindOne(queryOptions map[string]interface{}) (*Menu, error)
Find(queryOptions map[string]interface{}) (int64, []*Menu, error)
}
func (menu *Menu) Identify() interface{} {
if menu.MenuId == 0 {
return nil
}
return menu.MenuId
}
func (menu *Menu) Update(data map[string]interface{}) error {
if menuId, ok := data["menuId"]; ok {
menu.MenuId = menuId.(int64)
}
if parentId, ok := data["parentId"]; ok {
menu.ParentId = parentId.(int64)
}
if menuName, ok := data["menuName"]; ok {
menu.MenuName = menuName.(string)
}
if code, ok := data["code"]; ok {
menu.Code = code.(string)
}
if accessCode, ok := data["accessCode"]; ok {
menu.AccessCode = accessCode.(string)
}
if menuType, ok := data["menuType"]; ok {
menu.MenuType = menuType.(string)
}
if icon, ok := data["icon"]; ok {
menu.Icon = icon.(string)
}
if sort, ok := data["sort"]; ok {
menu.Sort = sort.(int)
}
if desc, ok := data["desc"]; ok {
menu.Remark = desc.(string)
}
if category, ok := data["category"]; ok {
menu.Category = category.(string)
}
if parentPath, ok := data["parentPath"]; ok {
menu.ParentPath = parentPath.(string)
}
if isPublish, ok := data["isPublish"]; ok {
menu.IsPublish = isPublish.(int)
}
if isSystem, ok := data["isSystem"]; ok {
menu.IsSystem = isSystem.(int)
}
return nil
}