正在显示
16 个修改的文件
包含
178 行增加
和
67 行删除
@@ -29,8 +29,8 @@ log_level = "${LOG_LEVEL||debug}" | @@ -29,8 +29,8 @@ log_level = "${LOG_LEVEL||debug}" | ||
29 | ##统一用户中心相关配置 | 29 | ##统一用户中心相关配置 |
30 | ucenter_check_alt = "rsF0pL!6DwjBO735" | 30 | ucenter_check_alt = "rsF0pL!6DwjBO735" |
31 | ucenter_base_url = "http://suplus-ucenter-dev.fjmaimaimai.com" | 31 | ucenter_base_url = "http://suplus-ucenter-dev.fjmaimaimai.com" |
32 | -ucenter_app_key = "0692f2b7e8d6dbd8526579864b87e3bfbc5d5c31" | ||
33 | -ucenter_secret = "0692f2b7e8d6dbd8526579864b87e3bfbc5d5c31" | 32 | +ucenter_app_key = "39aefef9e22744a3b2d2d3791824ae7b" |
33 | +ucenter_secret = "cykbjnfqgctn" | ||
34 | # 审批流程修改 消息发布 | 34 | # 审批流程修改 消息发布 |
35 | message_publish = "audit_change" | 35 | message_publish = "audit_change" |
36 | #---自定义配置 结束---- | 36 | #---自定义配置 结束---- |
@@ -59,8 +59,15 @@ func (c *AuthController) Login() { | @@ -59,8 +59,15 @@ func (c *AuthController) Login() { | ||
59 | msg = protocol.NewReturnResponse(nil, err) | 59 | msg = protocol.NewReturnResponse(nil, err) |
60 | return | 60 | return |
61 | } | 61 | } |
62 | + err = serveauth.ResetLoginToken(logintoken) | ||
63 | + if err != nil { | ||
64 | + log.Error("token 信息记录数据库失败") | ||
65 | + } | ||
62 | err = serveauth.ResetLoginTokenRedis(logintoken) | 66 | err = serveauth.ResetLoginTokenRedis(logintoken) |
63 | - msg = protocol.NewReturnResponse(logintoken, err) | 67 | + if err != nil { |
68 | + log.Error("token 信息记录redis失败") | ||
69 | + } | ||
70 | + msg = protocol.NewReturnResponse(logintoken, nil) | ||
64 | return | 71 | return |
65 | } | 72 | } |
66 | 73 |
@@ -226,6 +226,7 @@ func (c *RbacController) RoleHasMenu() { | @@ -226,6 +226,7 @@ func (c *RbacController) RoleHasMenu() { | ||
226 | return | 226 | return |
227 | } | 227 | } |
228 | 228 | ||
229 | +//TODO | ||
229 | func (c *RbacController) GetRoleMenuAll() { | 230 | func (c *RbacController) GetRoleMenuAll() { |
230 | var msg *protocol.ResponseMessage | 231 | var msg *protocol.ResponseMessage |
231 | defer func() { | 232 | defer func() { |
@@ -237,6 +238,25 @@ func (c *RbacController) GetRoleMenuAll() { | @@ -237,6 +238,25 @@ func (c *RbacController) GetRoleMenuAll() { | ||
237 | return | 238 | return |
238 | } | 239 | } |
239 | 240 | ||
241 | +//RoleMenuEdit 设置角色的菜单 | ||
242 | +//@router /role/menu/edit | ||
240 | func (c *RbacController) RoleMenuEdit() { | 243 | func (c *RbacController) RoleMenuEdit() { |
244 | + var msg *protocol.ResponseMessage | ||
245 | + defer func() { | ||
246 | + c.ResposeJson(msg) | ||
247 | + }() | ||
248 | + type Parameter struct { | ||
249 | + RoleId int64 `json:"role_id"` | ||
250 | + MenuIds []int64 `json:"menu_ids"` | ||
251 | + } | ||
252 | + var param Parameter | ||
253 | + if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | ||
254 | + log.Error("json 解析失败 err:%s", err) | ||
255 | + msg = protocol.BadRequestParam("1") | ||
256 | + return | ||
257 | + } | ||
258 | + companyid := c.GetCompanyId() | ||
259 | + err := serverbac.RoleMenuEdit(companyid, param.RoleId, param.MenuIds) | ||
260 | + msg = protocol.NewReturnResponse(nil, err) | ||
241 | return | 261 | return |
242 | } | 262 | } |
@@ -89,7 +89,7 @@ var AllowOption = func(ctx *context.Context) { | @@ -89,7 +89,7 @@ var AllowOption = func(ctx *context.Context) { | ||
89 | }) | 89 | }) |
90 | f(ctx) | 90 | f(ctx) |
91 | ctx.Output.SetStatus(204) | 91 | ctx.Output.SetStatus(204) |
92 | - ctx.Output.Body([]byte("{}")) | 92 | + ctx.Output.Body(nil) |
93 | return | 93 | return |
94 | } | 94 | } |
95 | 95 |
@@ -38,3 +38,14 @@ func GetMenuById(id int) (v *Menu, err error) { | @@ -38,3 +38,14 @@ func GetMenuById(id int) (v *Menu, err error) { | ||
38 | } | 38 | } |
39 | return nil, err | 39 | return nil, err |
40 | } | 40 | } |
41 | + | ||
42 | +func GetMenuByIds(ids []int64) (v []*Menu, err error) { | ||
43 | + o := orm.NewOrm() | ||
44 | + _, err = o.QueryTable(&Menu{}). | ||
45 | + Filter("id__in", ids). | ||
46 | + All(&v) | ||
47 | + if err == orm.ErrNoRows { | ||
48 | + return v, nil | ||
49 | + } | ||
50 | + return v, nil | ||
51 | +} |
@@ -7,7 +7,7 @@ import ( | @@ -7,7 +7,7 @@ import ( | ||
7 | type RoleMenu struct { | 7 | type RoleMenu struct { |
8 | Id int64 `orm:"column(id);auto" description:"主键"` | 8 | Id int64 `orm:"column(id);auto" description:"主键"` |
9 | RoleId int64 `orm:"column(role_id);null" description:"role.id"` | 9 | RoleId int64 `orm:"column(role_id);null" description:"role.id"` |
10 | - MenuId int64 `orm:"column(menu_id);null" description:"menu.id"` | 10 | + MenuId int `orm:"column(menu_id);null" description:"menu.id"` |
11 | Opption string `orm:"column(opption);size(500);null" description:"配置"` | 11 | Opption string `orm:"column(opption);size(500);null" description:"配置"` |
12 | Code string `orm:"column(code)"` | 12 | Code string `orm:"column(code)"` |
13 | } | 13 | } |
@@ -20,14 +20,6 @@ func init() { | @@ -20,14 +20,6 @@ func init() { | ||
20 | orm.RegisterModel(new(RoleMenu)) | 20 | orm.RegisterModel(new(RoleMenu)) |
21 | } | 21 | } |
22 | 22 | ||
23 | -// AddRoleMenu insert a new RoleMenu into database and returns | ||
24 | -// last inserted Id on success. | ||
25 | -func AddRoleMenu(m *RoleMenu) (id int64, err error) { | ||
26 | - o := orm.NewOrm() | ||
27 | - id, err = o.Insert(m) | ||
28 | - return | ||
29 | -} | ||
30 | - | ||
31 | func GetRoleMenuByRole(roleid int64) ([]RoleMenu, error) { | 23 | func GetRoleMenuByRole(roleid int64) ([]RoleMenu, error) { |
32 | var ( | 24 | var ( |
33 | list []RoleMenu | 25 | list []RoleMenu |
@@ -16,6 +16,7 @@ type User struct { | @@ -16,6 +16,7 @@ type User struct { | ||
16 | CsAccount int64 `orm:"column(cs_account)" description:"客服有话说ID"` | 16 | CsAccount int64 `orm:"column(cs_account)" description:"客服有话说ID"` |
17 | IsKefu int8 `orm:"column(is_kefu)" description:"是否是客服 0:否 1:是"` | 17 | IsKefu int8 `orm:"column(is_kefu)" description:"是否是客服 0:否 1:是"` |
18 | ImToken string `orm:"column(im_token);size(128)" description:"网易云token"` | 18 | ImToken string `orm:"column(im_token);size(128)" description:"网易云token"` |
19 | + Accid int64 `orm:"column(accid)" description:"网易云id"` | ||
19 | LastLoginTime time.Time `orm:"column(last_login_time);type(timestamp)" description:"最后一次登录时间"` | 20 | LastLoginTime time.Time `orm:"column(last_login_time);type(timestamp)" description:"最后一次登录时间"` |
20 | CreateAt time.Time `orm:"column(create_at);type(timestamp);auto_now_add" description:"创建时间"` | 21 | CreateAt time.Time `orm:"column(create_at);type(timestamp);auto_now_add" description:"创建时间"` |
21 | EnableStatus int8 `orm:"column(enable_status)" description:"是否有效"` | 22 | EnableStatus int8 `orm:"column(enable_status)" description:"是否有效"` |
@@ -131,7 +131,7 @@ type TemplateItem struct { | @@ -131,7 +131,7 @@ type TemplateItem struct { | ||
131 | 131 | ||
132 | type VisibleObject struct { | 132 | type VisibleObject struct { |
133 | Id string `json:"id"` | 133 | Id string `json:"id"` |
134 | - Name string `json:"name",omitempty` | 134 | + Name string `json:"name,omitempty"` |
135 | Type int `json:"type"` //1:部门 2:指定人员 | 135 | Type int `json:"type"` //1:部门 2:指定人员 |
136 | } | 136 | } |
137 | 137 |
@@ -7,6 +7,7 @@ var errmessge ErrorMap = map[string]string{ | @@ -7,6 +7,7 @@ var errmessge ErrorMap = map[string]string{ | ||
7 | //角色相关 | 7 | //角色相关 |
8 | "10001": "请先删除该分组下的其他角色", | 8 | "10001": "请先删除该分组下的其他角色", |
9 | "10002": "请先删除该角色下的人员", | 9 | "10002": "请先删除该角色下的人员", |
10 | + "10003": "无效角色", | ||
10 | //职位相关 | 11 | //职位相关 |
11 | "10011": "该职位已被使用无法删除", | 12 | "10011": "该职位已被使用无法删除", |
12 | //安全认证相关 | 13 | //安全认证相关 |
@@ -38,6 +38,7 @@ func init() { | @@ -38,6 +38,7 @@ func init() { | ||
38 | beego.NSRouter("/role/list", &controllers.RbacController{}, "post:RoleList"), | 38 | beego.NSRouter("/role/list", &controllers.RbacController{}, "post:RoleList"), |
39 | beego.NSRouter("/menu/list", &controllers.RbacController{}, "post:MenuList"), | 39 | beego.NSRouter("/menu/list", &controllers.RbacController{}, "post:MenuList"), |
40 | beego.NSRouter("/role/menu", &controllers.RbacController{}, "post:RoleHasMenu"), | 40 | beego.NSRouter("/role/menu", &controllers.RbacController{}, "post:RoleHasMenu"), |
41 | + beego.NSRouter("/role/menu/edit", &controllers.RbacController{}, "post:RoleMenuEdit"), | ||
41 | ), | 42 | ), |
42 | beego.NSNamespace("/user", | 43 | beego.NSNamespace("/user", |
43 | beego.NSRouter("/list", &controllers.CompanyController{}, "post:UserList"), | 44 | beego.NSRouter("/list", &controllers.CompanyController{}, "post:UserList"), |
@@ -3,11 +3,13 @@ package auth | @@ -3,11 +3,13 @@ package auth | ||
3 | import ( | 3 | import ( |
4 | "crypto/sha1" | 4 | "crypto/sha1" |
5 | "encoding/hex" | 5 | "encoding/hex" |
6 | + "encoding/json" | ||
6 | "fmt" | 7 | "fmt" |
7 | "io" | 8 | "io" |
8 | "oppmg/common/log" | 9 | "oppmg/common/log" |
9 | "oppmg/models" | 10 | "oppmg/models" |
10 | "oppmg/protocol" | 11 | "oppmg/protocol" |
12 | + "oppmg/services/ucenter" | ||
11 | "oppmg/storage/redisdata" | 13 | "oppmg/storage/redisdata" |
12 | "oppmg/utils" | 14 | "oppmg/utils" |
13 | "strings" | 15 | "strings" |
@@ -79,7 +81,7 @@ func ResetLoginToken(loginToken protocol.LoginAuthToken) error { | @@ -79,7 +81,7 @@ func ResetLoginToken(loginToken protocol.LoginAuthToken) error { | ||
79 | uAuth.RefreshToken = loginToken.RefreshToken | 81 | uAuth.RefreshToken = loginToken.RefreshToken |
80 | uAuth.RefreshTokenExp = time.Unix(loginToken.RefreshExpires, 0) | 82 | uAuth.RefreshTokenExp = time.Unix(loginToken.RefreshExpires, 0) |
81 | uAuth.UpdateAt = nowTime | 83 | uAuth.UpdateAt = nowTime |
82 | - upCol := []string{"CurrentCompanyId", "AccessToken", "RefreshToken", "RefreshTokenExp", "UpdateAt"} | 84 | + upCol := []string{"CurrentCompanyId", "AccessTokenExp", "RefreshTokenExp", "AccessToken", "RefreshToken", "RefreshTokenExp", "UpdateAt"} |
83 | if err = models.UpdateUserAuthById(uAuth, upCol); err != nil { | 85 | if err = models.UpdateUserAuthById(uAuth, upCol); err != nil { |
84 | e := fmt.Errorf("UpdateUserAuthById err:%s", err) | 86 | e := fmt.Errorf("UpdateUserAuthById err:%s", err) |
85 | log.Error(e.Error()) | 87 | log.Error(e.Error()) |
@@ -189,7 +191,7 @@ func LoginAuthByUCenter(account, password string) (protocol.LoginAuthToken, erro | @@ -189,7 +191,7 @@ func LoginAuthByUCenter(account, password string) (protocol.LoginAuthToken, erro | ||
189 | } | 191 | } |
190 | if ok := userdata.IsEnable(); !ok { | 192 | if ok := userdata.IsEnable(); !ok { |
191 | log.Debug("userdata.IsEnable()==false") | 193 | log.Debug("userdata.IsEnable()==false") |
192 | - return logintoken, protocol.NewErrWithMessage("10021") | 194 | + return logintoken, protocol.NewErrWithMessage("10022") |
193 | } | 195 | } |
194 | if companys, err = getUserCompanyReal(userdata.Id); err != nil { | 196 | if companys, err = getUserCompanyReal(userdata.Id); err != nil { |
195 | log.Error("getUserCompanyReal err:%s", err) | 197 | log.Error("getUserCompanyReal err:%s", err) |
@@ -197,33 +199,55 @@ func LoginAuthByUCenter(account, password string) (protocol.LoginAuthToken, erro | @@ -197,33 +199,55 @@ func LoginAuthByUCenter(account, password string) (protocol.LoginAuthToken, erro | ||
197 | } | 199 | } |
198 | if len(companys) == 0 { | 200 | if len(companys) == 0 { |
199 | log.Debug("no company") | 201 | log.Debug("no company") |
200 | - return logintoken, protocol.NewErrWithMessage("10021") | 202 | + return logintoken, protocol.NewErrWithMessage("10022") |
201 | } | 203 | } |
202 | companyid = companys[0].Id | 204 | companyid = companys[0].Id |
203 | - // var uclientReturn ucenter.ResponseLogin | ||
204 | - // param := ucenter.RequesLogin{ | ||
205 | - // Phone: account, | ||
206 | - // Password: password, | ||
207 | - // } | ||
208 | - // uclient := ucenter.NewUCenterClient() | ||
209 | - // btBody, err := uclient.Call(param) | ||
210 | - // if err != nil { | ||
211 | - // log.Error("统一用户中心请求失败 err:%s", err) | ||
212 | - // return logintoken, protocol.NewErrWithMessage("1") | ||
213 | - // } | ||
214 | - // err = json.Unmarshal(btBody, &uclientReturn) | ||
215 | - // if err != nil { | ||
216 | - // log.Error("解析统一用户中心响应失败 err:%s", err) | ||
217 | - // return logintoken, protocol.NewErrWithMessage("1") | ||
218 | - // } | ||
219 | - // if !(uclientReturn.Code == ucenter.ResponseCode0 && | ||
220 | - // uclientReturn.Msg == ucenter.ResponseMsgOk) { | ||
221 | - // return logintoken, protocol.NewErrWithMessage("10021") | ||
222 | - // } | 205 | + var uclientReturn *ucenter.ResponseLogin |
206 | + uclientReturn, err = requestUCenterLogin(account, password) | ||
207 | + if err != nil { | ||
208 | + return logintoken, protocol.NewErrWithMessage("10021") | ||
209 | + } | ||
210 | + //更新用户数据 | ||
211 | + _ = uclientReturn | ||
212 | + userdata.Accid = uclientReturn.Data.Accid | ||
213 | + userdata.Icon = uclientReturn.Data.Avatar | ||
214 | + userdata.ImToken = uclientReturn.Data.Imtoken | ||
215 | + userdata.NickName = uclientReturn.Data.NickName | ||
216 | + userdata.CsAccount = uclientReturn.Data.CustomerAccount | ||
217 | + userdata.LastLoginTime = time.Now() | ||
218 | + err = models.UpdateUserById(userdata, []string{"Accid", "Icon", "ImToken", "NickName", "CsAccount", "LastLoginTime"}) | ||
219 | + if err != nil { | ||
220 | + log.Error("更新用户数据失败:%s", err) | ||
221 | + } | ||
223 | logintoken, _ = GenerateAuthToken(userdata.Id, companyid) | 222 | logintoken, _ = GenerateAuthToken(userdata.Id, companyid) |
224 | return logintoken, err | 223 | return logintoken, err |
225 | } | 224 | } |
226 | 225 | ||
226 | +func requestUCenterLogin(account, password string) (*ucenter.ResponseLogin, error) { | ||
227 | + var uclientReturn *ucenter.ResponseLogin | ||
228 | + param := ucenter.RequesLogin{ | ||
229 | + Type: 1, | ||
230 | + Phone: account, | ||
231 | + Password: password, | ||
232 | + } | ||
233 | + uclient := ucenter.NewUCenterClient() | ||
234 | + btBody, err := uclient.Call(param) | ||
235 | + if err != nil { | ||
236 | + log.Error("统一用户中心请求失败 err:%s", err) | ||
237 | + return nil, protocol.NewErrWithMessage("1") | ||
238 | + } | ||
239 | + err = json.Unmarshal(btBody, &uclientReturn) | ||
240 | + if err != nil { | ||
241 | + log.Error("解析统一用户中心响应失败 err:%s", err) | ||
242 | + return nil, protocol.NewErrWithMessage("1") | ||
243 | + } | ||
244 | + if !(uclientReturn.Code == ucenter.ResponseCode0 && | ||
245 | + uclientReturn.Msg == ucenter.ResponseMsgOk) { | ||
246 | + return nil, protocol.NewErrWithMessage("10021") | ||
247 | + } | ||
248 | + return uclientReturn, nil | ||
249 | +} | ||
250 | + | ||
227 | type companybase struct { | 251 | type companybase struct { |
228 | Id int64 `orm:"column(id)"` | 252 | Id int64 `orm:"column(id)"` |
229 | Name string `orm:"coumn(name)"` | 253 | Name string `orm:"coumn(name)"` |
@@ -5,6 +5,8 @@ import ( | @@ -5,6 +5,8 @@ import ( | ||
5 | "oppmg/models" | 5 | "oppmg/models" |
6 | "oppmg/protocol" | 6 | "oppmg/protocol" |
7 | "oppmg/utils" | 7 | "oppmg/utils" |
8 | + | ||
9 | + "github.com/astaxie/beego/orm" | ||
8 | ) | 10 | ) |
9 | 11 | ||
10 | //获取全部的权限菜单 | 12 | //获取全部的权限菜单 |
@@ -52,7 +54,7 @@ func GetRoleHasMenu(roleid int64, companyid int64) (*protocol.ResponseRoleMenus, | @@ -52,7 +54,7 @@ func GetRoleHasMenu(roleid int64, companyid int64) (*protocol.ResponseRoleMenus, | ||
52 | return nil, protocol.NewErrWithMessage("1") | 54 | return nil, protocol.NewErrWithMessage("1") |
53 | } | 55 | } |
54 | for _, v := range rolemenu { | 56 | for _, v := range rolemenu { |
55 | - ids = append(ids, v.MenuId) | 57 | + ids = append(ids, int64(v.MenuId)) |
56 | } | 58 | } |
57 | data := &protocol.ResponseRoleMenus{ | 59 | data := &protocol.ResponseRoleMenus{ |
58 | RoleId: roleData.Id, | 60 | RoleId: roleData.Id, |
@@ -103,6 +105,54 @@ func GetRoleHasMenuAll(roleid int64, companyid int64) (map[string]PermissionCont | @@ -103,6 +105,54 @@ func GetRoleHasMenuAll(roleid int64, companyid int64) (map[string]PermissionCont | ||
103 | return returnList, nil | 105 | return returnList, nil |
104 | } | 106 | } |
105 | 107 | ||
106 | -func RoleMenuEdit(companyid int64, roleid int64, menuids []int64) { | 108 | +func RoleMenuEdit(companyid int64, roleId int64, menuids []int64) error { |
109 | + roleMenus, err := GetRoleHasMenu(companyid, roleId) | ||
110 | + if err != nil { | ||
111 | + return err | ||
112 | + } | ||
113 | + var ( | ||
114 | + oldMenuIds []int64 | ||
115 | + addMenuIds []int64 | ||
116 | + delMenuIds []int64 | ||
117 | + addMenu []*models.Menu | ||
118 | + ) | ||
119 | + oldMenuIds = roleMenus.MenuId | ||
120 | + addMenuIds = utils.ArrayInt64Diff(menuids, oldMenuIds) | ||
121 | + delMenuIds = utils.ArrayInt64Diff(oldMenuIds, menuids) | ||
122 | + if len(addMenuIds) > 0 { | ||
123 | + addMenu, err = models.GetMenuByIds(addMenuIds) | ||
124 | + if err != nil { | ||
125 | + log.Error("获取菜单数据失败:%s", err) | ||
126 | + return protocol.NewErrWithMessage("1") | ||
127 | + } | ||
128 | + } | ||
129 | + o := orm.NewOrm() | ||
130 | + o.Begin() | ||
131 | + if len(delMenuIds) > 0 { | ||
132 | + _, err = o.QueryTable(&models.RoleMenu{}). | ||
133 | + Filter("role_id", roleId). | ||
134 | + Filter("menu_id__in", delMenuIds). | ||
135 | + Delete() | ||
136 | + if err != nil { | ||
137 | + log.Error("删除角色和菜单关系失败:%s", err) | ||
138 | + o.Rollback() | ||
139 | + return protocol.NewErrWithMessage("1") | ||
140 | + } | ||
141 | + } | ||
142 | + for _, v := range addMenu { | ||
143 | + m := models.RoleMenu{ | ||
144 | + RoleId: roleId, | ||
145 | + MenuId: v.Id, | ||
146 | + Code: v.Code, | ||
147 | + Opption: "{}", | ||
148 | + } | ||
149 | + if _, err = o.Insert(&m); err != nil { | ||
150 | + log.Error("添加角色和菜单关系失败:%s", err) | ||
151 | + o.Rollback() | ||
152 | + return protocol.NewErrWithMessage("1") | ||
153 | + } | ||
154 | + } | ||
155 | + o.Commit() | ||
156 | + return nil | ||
107 | 157 | ||
108 | } | 158 | } |
@@ -158,11 +158,6 @@ func RoleGroupDelete(param protocol.RequestRoleDelete) error { | @@ -158,11 +158,6 @@ func RoleGroupDelete(param protocol.RequestRoleDelete) error { | ||
158 | return nil | 158 | return nil |
159 | } | 159 | } |
160 | 160 | ||
161 | -//CanSetRole 操作员是否可以操作角色 | ||
162 | -func CanSetRole(adminId int64, groupId int64) bool { | ||
163 | - return false | ||
164 | -} | ||
165 | - | ||
166 | func GetRoleList(companyId int64) ([]protocol.RoleGroup, error) { | 161 | func GetRoleList(companyId int64) ([]protocol.RoleGroup, error) { |
167 | var ( | 162 | var ( |
168 | roleGroups []protocol.RoleGroup | 163 | roleGroups []protocol.RoleGroup |
@@ -213,19 +208,3 @@ func getRoleGroupByCompany(companyid int64) ([]protocol.RoleInfo, error) { | @@ -213,19 +208,3 @@ func getRoleGroupByCompany(companyid int64) ([]protocol.RoleInfo, error) { | ||
213 | err = utils.ExecuteQueryAll(&roles, datasql, companyid, models.ROLETYPES_GROUP) | 208 | err = utils.ExecuteQueryAll(&roles, datasql, companyid, models.ROLETYPES_GROUP) |
214 | return roles, err | 209 | return roles, err |
215 | } | 210 | } |
216 | - | ||
217 | -func GetRoleGroup() error { | ||
218 | - return nil | ||
219 | -} | ||
220 | - | ||
221 | -func RoleHasPermission() error { | ||
222 | - return nil | ||
223 | -} | ||
224 | - | ||
225 | -func PermissionHasRole() error { | ||
226 | - return nil | ||
227 | -} | ||
228 | - | ||
229 | -func RolsHasUser() error { | ||
230 | - return nil | ||
231 | -} |
@@ -14,6 +14,7 @@ type CommResponse struct { | @@ -14,6 +14,7 @@ type CommResponse struct { | ||
14 | 14 | ||
15 | //RequesLogin 用户登录 | 15 | //RequesLogin 用户登录 |
16 | type RequesLogin struct { | 16 | type RequesLogin struct { |
17 | + Type int8 `json:"type"` | ||
17 | Password string `json:"password"` | 18 | Password string `json:"password"` |
18 | Phone string `json:"phone"` | 19 | Phone string `json:"phone"` |
19 | } | 20 | } |
@@ -27,7 +28,7 @@ func (r RequesLogin) Format() []byte { | @@ -27,7 +28,7 @@ func (r RequesLogin) Format() []byte { | ||
27 | 28 | ||
28 | //Format 实现IUCenterParam接口 | 29 | //Format 实现IUCenterParam接口 |
29 | func (r RequesLogin) GetPath() (string, string) { | 30 | func (r RequesLogin) GetPath() (string, string) { |
30 | - return "/auth/login", "POST" | 31 | + return "/auth/serverLogin", "POST" |
31 | } | 32 | } |
32 | 33 | ||
33 | //Format 实现IUCenterParam接口 | 34 | //Format 实现IUCenterParam接口 |
@@ -44,10 +45,13 @@ func (r RequesLogin) Valid() error { | @@ -44,10 +45,13 @@ func (r RequesLogin) Valid() error { | ||
44 | type ResponseLogin struct { | 45 | type ResponseLogin struct { |
45 | CommResponse | 46 | CommResponse |
46 | Data struct { | 47 | Data struct { |
47 | - Id int64 `json:"id"` | ||
48 | - Phone string `json:"phone"` | ||
49 | - NickName string `json:"nickname"` //昵称 | ||
50 | - Avatar string `json:"avatar"` //头像 | 48 | + Id int64 `json:"id"` |
49 | + Phone string `json:"phone"` | ||
50 | + NickName string `json:"nickname"` //昵称 | ||
51 | + Avatar string `json:"avatar"` //头像 | ||
52 | + Imtoken string `json:"imtoken"` //网易云imtoken | ||
53 | + Accid int64 `json:"accid"` | ||
54 | + CustomerAccount int64 `json:"customerAccount"` //客服id | ||
51 | } `json:"data"` | 55 | } `json:"data"` |
52 | } | 56 | } |
53 | 57 |
@@ -55,7 +55,7 @@ func buildCheckSum(nowTime string) string { | @@ -55,7 +55,7 @@ func buildCheckSum(nowTime string) string { | ||
55 | //httpDo post发送json | 55 | //httpDo post发送json |
56 | func (client UCenterClient) httpDo(path string, mathod string, posts []byte) ([]byte, error) { | 56 | func (client UCenterClient) httpDo(path string, mathod string, posts []byte) ([]byte, error) { |
57 | httpclient := http.Client{ | 57 | httpclient := http.Client{ |
58 | - Timeout: 5 * time.Second, //请求超时时间5秒 | 58 | + Timeout: 10 * time.Second, //请求超时时间5秒 |
59 | } | 59 | } |
60 | reqURL := client.baseUrl + path | 60 | reqURL := client.baseUrl + path |
61 | req, err := http.NewRequest(mathod, reqURL, bytes.NewReader(posts)) | 61 | req, err := http.NewRequest(mathod, reqURL, bytes.NewReader(posts)) |
@@ -64,7 +64,9 @@ func (client UCenterClient) httpDo(path string, mathod string, posts []byte) ([] | @@ -64,7 +64,9 @@ func (client UCenterClient) httpDo(path string, mathod string, posts []byte) ([] | ||
64 | } | 64 | } |
65 | req.Header = client.buildHeader() | 65 | req.Header = client.buildHeader() |
66 | resp, err := httpclient.Do(req) | 66 | resp, err := httpclient.Do(req) |
67 | + | ||
67 | log.Info("====>Send To UCenter:%s", string(posts)) | 68 | log.Info("====>Send To UCenter:%s", string(posts)) |
69 | + // log.Info("====>Send Header:%v", req.Header) | ||
68 | if err != nil { | 70 | if err != nil { |
69 | return nil, err | 71 | return nil, err |
70 | } | 72 | } |
@@ -14,7 +14,7 @@ func ArrayInt64Diff(arr1 []int64, arr2 []int64) []int64 { | @@ -14,7 +14,7 @@ func ArrayInt64Diff(arr1 []int64, arr2 []int64) []int64 { | ||
14 | } | 14 | } |
15 | setmap := make(map[int64]bool) | 15 | setmap := make(map[int64]bool) |
16 | for i := range arr2 { | 16 | for i := range arr2 { |
17 | - setmap[arr1[i]] = true | 17 | + setmap[arr2[i]] = true |
18 | } | 18 | } |
19 | var result []int64 | 19 | var result []int64 |
20 | for i := range arr1 { | 20 | for i := range arr1 { |
@@ -26,6 +26,25 @@ func ArrayInt64Diff(arr1 []int64, arr2 []int64) []int64 { | @@ -26,6 +26,25 @@ func ArrayInt64Diff(arr1 []int64, arr2 []int64) []int64 { | ||
26 | return result | 26 | return result |
27 | } | 27 | } |
28 | 28 | ||
29 | +//ArrayIntDiff 返回切片的差集:arr1-arr2 | ||
30 | +func ArrayIntDiff(arr1 []int, arr2 []int) []int { | ||
31 | + if len(arr2) == 0 { | ||
32 | + return arr1 | ||
33 | + } | ||
34 | + setmap := make(map[int]bool) | ||
35 | + for i := range arr2 { | ||
36 | + setmap[arr1[i]] = true | ||
37 | + } | ||
38 | + var result []int | ||
39 | + for i := range arr1 { | ||
40 | + if _, ok := setmap[arr1[i]]; !ok { | ||
41 | + result = append(result, arr1[i]) | ||
42 | + } | ||
43 | + } | ||
44 | + | ||
45 | + return result | ||
46 | +} | ||
47 | + | ||
29 | //ArrayStringIn 检查s字符串是否在切片sl中 | 48 | //ArrayStringIn 检查s字符串是否在切片sl中 |
30 | func ArrayStringIn(arr1 []string, s string) bool { | 49 | func ArrayStringIn(arr1 []string, s string) bool { |
31 | for _, v := range arr1 { | 50 | for _, v := range arr1 { |
-
请 注册 或 登录 后发表评论