-
Notifications
You must be signed in to change notification settings - Fork 181
/
homePageMenusModels.go
111 lines (97 loc) · 2.47 KB
/
homePageMenusModels.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
package models
import (
"encoding/json"
"github.com/hzwy23/dbobj"
"github.com/hzwy23/hauth/utils/logs"
)
const redirect = `
<script type="text/javascript">
$.Hconfirm({
cancelBtn:false,
header:"Get Special Page Failure",
body:"Get special page failed, Please contact your administrator",
callback:function () {
window.location.href="/"
}
})
</script>
`
type HomePageMenusModel struct {
mur UserRolesModel
mut UserThemeModel
mts ThemeResourceModel
mrs RoleAndResourceModel
}
type homePageMenuData struct {
Res_id string
Res_name string
Res_url string
Res_bg_color string
Res_class string
Res_img string
Group_id string
Res_up_id string
Res_open_type string
}
func (this HomePageMenusModel) Get(id, typeId, useId string) ([]byte, error) {
// 首先获取用户主题信息
theme, err := this.mut.Get(useId)
if err != nil || len(theme) != 1 {
logs.Error(err)
return nil, err
}
// 获取这个主题的所有资源信息
theme_resource, err := this.mts.Get(theme[0].Theme_id)
if err != nil {
logs.Error(err)
return nil, err
}
// 获取这个用户的角色信息
roles, err := this.mur.GetRolesByUser(useId)
if err != nil {
logs.Error(err)
return nil, err
}
var role_list []string
for _, val := range roles {
role_list = append(role_list, val.Role_id)
}
// 获取角色拥有的资源信息
role_resource, err := this.mrs.Gets(role_list, id, typeId)
if err != nil {
logs.Error(err)
return nil, err
}
var mres = make(map[string]resData)
for _, val := range role_resource {
mres[val.Res_id] = val
}
// 获取角色拥有的资源信息
var rst []homePageMenuData
for _, t_res := range theme_resource {
if val, ok := mres[t_res.Res_id]; ok {
var one homePageMenuData
one.Res_id = t_res.Res_id
one.Res_up_id = val.Res_up_id
one.Res_name = val.Res_name
one.Group_id = t_res.Group_id
one.Res_bg_color = t_res.Res_bg_color
one.Res_class = t_res.Res_class
one.Res_img = t_res.Res_img
one.Res_url = t_res.Res_url
one.Res_open_type = t_res.Res_type
rst = append(rst, one)
}
}
return json.Marshal(rst)
}
func (this HomePageMenusModel) GetUrl(user_id, id string) (string, error) {
row := dbobj.QueryRow(sys_rdbms_011, user_id, id)
var url string
err := row.Scan(&url)
if err != nil {
logs.Error("Get Special Page failure, user_id is :", user_id, "menu id is :", id, "details error is:", err)
return redirect, err
}
return url, nil
}