/
url.go
176 lines (155 loc) · 3.3 KB
/
url.go
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
package Router2Mid
import (
"github.com/gin-gonic/gin"
)
//url封装体系
// RouterGlob 全局通用结构方法存储
type RouterGlob struct {
//路由结构体
Routers *gin.RouterGroup
//路由级别
level string
}
// RouterURL 方法覆盖
type RouterURL struct {
//全局方法
BaseData RouterGlob
}
// Top 根URL
func (t *RouterURL) Top(urlPath string) RouterURL {
//映射URL
return RouterURL{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group(urlPath, headerBaseData),
level: "top",
},
}
}
// Base 基础封装
func (t *RouterURL) Base(urlPath string) *RouterURL {
//映射URL
return &RouterURL{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group(urlPath),
level: "base",
},
}
}
// RouterURLPublic 有头级别路由
type RouterURLPublic struct {
//全局方法
BaseData RouterGlob
}
// Public 无头封装
func (t *RouterURL) Public() *RouterURLPublic {
//映射URL
return &RouterURLPublic{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group("/public"),
level: "public",
},
}
}
// RouterURLIOT IOT级别路由
type RouterURLIOT struct {
//全局方法
BaseData RouterGlob
}
// IOT 无头封装
func (t *RouterURL) IOT() *RouterURLIOT {
//映射URL
return &RouterURLIOT{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group("/iot"),
level: "iot",
},
}
}
// RouterURLHeader 有头级别路由
type RouterURLHeader struct {
//全局方法
BaseData RouterGlob
}
// Header 有头封装
func (t *RouterURL) Header() *RouterURLHeader {
//映射URL
return &RouterURLHeader{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group("/header", headerLoginBefore),
level: "header",
},
}
}
// RouterURLUser 用户级别路由
type RouterURLUser struct {
//全局方法
BaseData RouterGlob
}
// User 用户级别封装
func (t *RouterURL) User() *RouterURLUser {
//映射URL
return &RouterURLUser{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group("/user", headerLoggedUser),
level: "user",
},
}
}
// RouterURLManager 管理层级路由
type RouterURLManager struct {
//全局方法
BaseData RouterGlob
}
// Manager 管理级别封装
func (t *RouterURL) Manager() *RouterURLUser {
//映射URL
return &RouterURLUser{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group("/manager", headerLoggedUser),
level: "manager",
},
}
}
// RouterURLRole 用户角色级别路由
type RouterURLRole struct {
//全局方法
BaseData RouterGlob
//角色类型
RoleType string
}
// Role 用户级别封装
func (t *RouterURL) Role(roleType string) *RouterURLRole {
//映射URL
return &RouterURLRole{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group("/role", headerLoggedUser),
level: "role",
},
RoleType: roleType,
}
}
// RouterURLOrg 组织级别路由
type RouterURLOrg struct {
//全局方法
BaseData RouterGlob
}
// OB 组织成员级别封装
func (t *RouterURL) OB() *RouterURLOrg {
//映射URL
return &RouterURLOrg{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group("/ob", headerLoggedUser, headerSelectedOrg),
level: "ob",
},
}
}
// OM 组织管理级别封装
func (t *RouterURL) OM() *RouterURLOrg {
//映射URL
return &RouterURLOrg{
BaseData: RouterGlob{
Routers: t.BaseData.Routers.Group("/om", headerLoggedUser, headerSelectedOrg),
level: "om",
},
}
}