正在显示
13 个修改的文件
包含
413 行增加
和
32 行删除
@@ -5,7 +5,6 @@ import ( | @@ -5,7 +5,6 @@ import ( | ||
5 | "oppmg/common/log" | 5 | "oppmg/common/log" |
6 | "oppmg/protocol" | 6 | "oppmg/protocol" |
7 | servecompany "oppmg/services/company" | 7 | servecompany "oppmg/services/company" |
8 | - "oppmg/storage/redisdata" | ||
9 | "oppmg/utils" | 8 | "oppmg/utils" |
10 | "strings" | 9 | "strings" |
11 | ) | 10 | ) |
@@ -302,7 +301,7 @@ func (c *CompanyController) UserDelete() { | @@ -302,7 +301,7 @@ func (c *CompanyController) UserDelete() { | ||
302 | c.ResposeJson(msg) | 301 | c.ResposeJson(msg) |
303 | }() | 302 | }() |
304 | type Parameter struct { | 303 | type Parameter struct { |
305 | - Userid int64 `json:"user_id"` | 304 | + UserCompanyId []int64 `json:"ids"` |
306 | } | 305 | } |
307 | var param Parameter | 306 | var param Parameter |
308 | if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | 307 | if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { |
@@ -311,20 +310,15 @@ func (c *CompanyController) UserDelete() { | @@ -311,20 +310,15 @@ func (c *CompanyController) UserDelete() { | ||
311 | return | 310 | return |
312 | } | 311 | } |
313 | companyId := c.GetCompanyId() | 312 | companyId := c.GetCompanyId() |
314 | - err := servecompany.UserDelete(param.Userid, companyId) | ||
315 | - if err == nil { | ||
316 | - e := redisdata.DeleteLoginToken(param.Userid) | ||
317 | - if e != nil { | ||
318 | - log.Error(e.Error()) | ||
319 | - } | ||
320 | - } | 313 | + err := servecompany.UserDelete(param.UserCompanyId, companyId) |
314 | + | ||
321 | msg = protocol.NewReturnResponse(nil, err) | 315 | msg = protocol.NewReturnResponse(nil, err) |
322 | return | 316 | return |
323 | } | 317 | } |
324 | 318 | ||
325 | //UserEdit 禁用、启用用户 TODO | 319 | //UserEdit 禁用、启用用户 TODO |
326 | -//@Router /user/forbid [post] | ||
327 | -func (c *CompanyController) UserForbid() { | 320 | +//@Router /user/allow_forbid [post] |
321 | +func (c *CompanyController) UserAllowForbid() { | ||
328 | var msg *protocol.ResponseMessage | 322 | var msg *protocol.ResponseMessage |
329 | defer func() { | 323 | defer func() { |
330 | c.ResposeJson(msg) | 324 | c.ResposeJson(msg) |
@@ -333,14 +327,27 @@ func (c *CompanyController) UserForbid() { | @@ -333,14 +327,27 @@ func (c *CompanyController) UserForbid() { | ||
333 | UserCompanyIds []int64 `json:"ids"` | 327 | UserCompanyIds []int64 `json:"ids"` |
334 | Status int `json:"status"` // [1:执行禁用操作][2:执行启用操作] | 328 | Status int `json:"status"` // [1:执行禁用操作][2:执行启用操作] |
335 | } | 329 | } |
336 | - var param protocol.RequestUserEdit | 330 | + var param Parameter |
337 | if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | 331 | if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { |
338 | log.Error("json 解析失败 err:%s", err) | 332 | log.Error("json 解析失败 err:%s", err) |
339 | msg = protocol.BadRequestParam("1") | 333 | msg = protocol.BadRequestParam("1") |
340 | return | 334 | return |
341 | } | 335 | } |
336 | + var ( | ||
337 | + err error | ||
338 | + ) | ||
339 | + companyid := c.GetCompanyId() | ||
340 | + switch param.Status { | ||
341 | + case 1: | ||
342 | + err = servecompany.UserForbid(param.UserCompanyIds, companyid) | ||
343 | + case 2: | ||
344 | + err = servecompany.UserAllow(param.UserCompanyIds, companyid) | ||
345 | + default: | ||
346 | + msg = protocol.BadRequestParam("1") | ||
347 | + return | ||
348 | + } | ||
342 | 349 | ||
343 | - msg = protocol.NewReturnResponse(nil, nil) | 350 | + msg = protocol.NewReturnResponse(nil, err) |
344 | return | 351 | return |
345 | } | 352 | } |
346 | 353 | ||
@@ -406,3 +413,45 @@ func (c *CompanyController) DepartmentUser() { | @@ -406,3 +413,45 @@ func (c *CompanyController) DepartmentUser() { | ||
406 | msg = protocol.NewReturnResponse(resultdata, err) | 413 | msg = protocol.NewReturnResponse(resultdata, err) |
407 | return | 414 | return |
408 | } | 415 | } |
416 | + | ||
417 | +//CurrentCompanyEdit 编辑当前公司 | ||
418 | +func (c *CompanyController) CurrentCompanyEdit() { | ||
419 | + var msg *protocol.ResponseMessage | ||
420 | + defer func() { | ||
421 | + c.ResposeJson(msg) | ||
422 | + }() | ||
423 | + type Parameter struct { | ||
424 | + Logo string `json:"string"` | ||
425 | + } | ||
426 | + var param Parameter | ||
427 | + if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | ||
428 | + log.Error("json 解析失败 err:%s", err) | ||
429 | + msg = protocol.BadRequestParam("1") | ||
430 | + return | ||
431 | + } | ||
432 | + companyid := c.GetCompanyId() | ||
433 | + err := servecompany.CompanyInfoEdit(companyid, param.Logo) | ||
434 | + msg = protocol.NewReturnResponse(nil, err) | ||
435 | + return | ||
436 | +} | ||
437 | + | ||
438 | +//CurrentCompanyInfo 获取当前公司数据 | ||
439 | +func (c *CompanyController) CurrentCompanyInfo() { | ||
440 | + var msg *protocol.ResponseMessage | ||
441 | + defer func() { | ||
442 | + c.ResposeJson(msg) | ||
443 | + }() | ||
444 | + // type Parameter struct { | ||
445 | + // Logo string `json:"string"` | ||
446 | + // } | ||
447 | + // var param Parameter | ||
448 | + // if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | ||
449 | + // log.Error("json 解析失败 err:%s", err) | ||
450 | + // msg = protocol.BadRequestParam("1") | ||
451 | + // return | ||
452 | + // } | ||
453 | + companyid := c.GetCompanyId() | ||
454 | + companybase, err := servecompany.CompanyBaseInfo(companyid) | ||
455 | + msg = protocol.NewReturnResponse(companybase, err) | ||
456 | + return | ||
457 | +} |
@@ -188,3 +188,41 @@ func (c *RbacController) RoleList() { | @@ -188,3 +188,41 @@ func (c *RbacController) RoleList() { | ||
188 | msg = protocol.NewReturnResponse(rolelist, err) | 188 | msg = protocol.NewReturnResponse(rolelist, err) |
189 | return | 189 | return |
190 | } | 190 | } |
191 | + | ||
192 | +//PermissionList | ||
193 | +//@router /menu/list [post] | ||
194 | +func (c *RbacController) MenuList() { | ||
195 | + var msg *protocol.ResponseMessage | ||
196 | + defer func() { | ||
197 | + c.ResposeJson(msg) | ||
198 | + }() | ||
199 | + list, err := serverbac.GetMenuAll() | ||
200 | + msg = protocol.NewReturnResponse(list, err) | ||
201 | + return | ||
202 | +} | ||
203 | + | ||
204 | +//GetRoleHasMenu 获取角色下的菜单 | ||
205 | +//@router /role/menu | ||
206 | +func (c *RbacController) RoleHasMenu() { | ||
207 | + var msg *protocol.ResponseMessage | ||
208 | + defer func() { | ||
209 | + c.ResposeJson(msg) | ||
210 | + }() | ||
211 | + type Parameter struct { | ||
212 | + RoleId int64 `json:"role_id"` | ||
213 | + } | ||
214 | + var param Parameter | ||
215 | + if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil { | ||
216 | + log.Error("json 解析失败 err:%s", err) | ||
217 | + msg = protocol.BadRequestParam("1") | ||
218 | + return | ||
219 | + } | ||
220 | + companyid := c.GetCompanyId() | ||
221 | + list, err := serverbac.GetRoleHasMenu(param.RoleId, companyid) | ||
222 | + msg = protocol.NewReturnResponse(list, err) | ||
223 | + return | ||
224 | +} | ||
225 | + | ||
226 | +func (c *RbacController) RoleMenuEdit() { | ||
227 | + return | ||
228 | +} |
@@ -82,13 +82,14 @@ func GetCompanyById(id int64) (v *Company, err error) { | @@ -82,13 +82,14 @@ func GetCompanyById(id int64) (v *Company, err error) { | ||
82 | 82 | ||
83 | // UpdateCompany updates Company by Id and returns error if | 83 | // UpdateCompany updates Company by Id and returns error if |
84 | // the record to be updated doesn't exist | 84 | // the record to be updated doesn't exist |
85 | -func UpdateCompanyById(m *Company) (err error) { | 85 | +func UpdateCompanyById(m *Company, col []string) (err error) { |
86 | o := orm.NewOrm() | 86 | o := orm.NewOrm() |
87 | v := Company{Id: m.Id} | 87 | v := Company{Id: m.Id} |
88 | // ascertain id exists in the database | 88 | // ascertain id exists in the database |
89 | if err = o.Read(&v); err == nil { | 89 | if err = o.Read(&v); err == nil { |
90 | var num int64 | 90 | var num int64 |
91 | - if num, err = o.Update(m); err == nil { | 91 | + m.UpdateAt = time.Now() |
92 | + if num, err = o.Update(m, col...); err == nil { | ||
92 | fmt.Println("Number of records updated in database:", num) | 93 | fmt.Println("Number of records updated in database:", num) |
93 | } | 94 | } |
94 | } | 95 | } |
models/menu.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "time" | ||
5 | + | ||
6 | + "github.com/astaxie/beego/orm" | ||
7 | +) | ||
8 | + | ||
9 | +type Menu struct { | ||
10 | + Id int `orm:"column(id);auto" description:"主键"` | ||
11 | + Name string `orm:"column(name);size(10)" description:"菜单名称"` | ||
12 | + Icon string `orm:"column(icon);size(128)" description:"菜单图标地址"` | ||
13 | + ParentId int `orm:"column(parent_id)" description:"上一级菜单 id"` | ||
14 | + Type int `orm:"column(type)" description:"类型:1为 pc 2为app"` | ||
15 | + Url string `orm:"column(url);size(128)" description:"菜单地址"` | ||
16 | + SeniorStatus int `orm:"column(senior_status)" description:"类型:是否有高级设置 1是 0 否"` | ||
17 | + Code string `orm:"column(code);size(128)" description:"菜单编码"` | ||
18 | + Sort int `orm:"column(sort)" description:"同级菜单序号 "` | ||
19 | + CreateTime time.Time `orm:"column(create_time);type(timestamp);null" description:"创建时间"` | ||
20 | + Enabled int8 `orm:"column(enabled)" description:"是否有效"` | ||
21 | +} | ||
22 | + | ||
23 | +func (t *Menu) TableName() string { | ||
24 | + return "menu" | ||
25 | +} | ||
26 | + | ||
27 | +func init() { | ||
28 | + orm.RegisterModel(new(Menu)) | ||
29 | +} | ||
30 | + | ||
31 | +// GetMenuById retrieves Menu by Id. Returns error if | ||
32 | +// Id doesn't exist | ||
33 | +func GetMenuById(id int) (v *Menu, err error) { | ||
34 | + o := orm.NewOrm() | ||
35 | + v = &Menu{Id: id} | ||
36 | + if err = o.Read(v); err == nil { | ||
37 | + return v, nil | ||
38 | + } | ||
39 | + return nil, err | ||
40 | +} |
models/role_menu.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/astaxie/beego/orm" | ||
5 | +) | ||
6 | + | ||
7 | +type RoleMenu struct { | ||
8 | + Id int64 `orm:"column(id);auto" description:"主键"` | ||
9 | + RoleId int64 `orm:"column(role_id);null" description:"role.id"` | ||
10 | + MenuId int64 `orm:"column(menu_id);null" description:"menu.id"` | ||
11 | + Opption string `orm:"column(opption);size(500);null" description:"配置"` | ||
12 | +} | ||
13 | + | ||
14 | +func (t *RoleMenu) TableName() string { | ||
15 | + return "role_menu" | ||
16 | +} | ||
17 | + | ||
18 | +func init() { | ||
19 | + orm.RegisterModel(new(RoleMenu)) | ||
20 | +} | ||
21 | + | ||
22 | +// AddRoleMenu insert a new RoleMenu into database and returns | ||
23 | +// last inserted Id on success. | ||
24 | +func AddRoleMenu(m *RoleMenu) (id int64, err error) { | ||
25 | + o := orm.NewOrm() | ||
26 | + id, err = o.Insert(m) | ||
27 | + return | ||
28 | +} | ||
29 | + | ||
30 | +func GetRoleMenuByRole(roleid int64) ([]RoleMenu, error) { | ||
31 | + var ( | ||
32 | + list []RoleMenu | ||
33 | + err error | ||
34 | + ) | ||
35 | + o := orm.NewOrm() | ||
36 | + _, err = o.QueryTable(&RoleMenu{}). | ||
37 | + Filter("role_id", roleid). | ||
38 | + All(&list) | ||
39 | + if err == orm.ErrNoRows { | ||
40 | + return list, nil | ||
41 | + } | ||
42 | + return list, err | ||
43 | +} |
@@ -114,3 +114,9 @@ type UserListItem struct { | @@ -114,3 +114,9 @@ type UserListItem struct { | ||
114 | Departments string `json:"departments" orm:"-"` | 114 | Departments string `json:"departments" orm:"-"` |
115 | Enable int8 `json:"enable" orm:"column(enable)"` | 115 | Enable int8 `json:"enable" orm:"column(enable)"` |
116 | } | 116 | } |
117 | + | ||
118 | +type ResponseCompanyBase struct { | ||
119 | + CompanyId int64 `json:"id"` | ||
120 | + Name string `json:"name"` | ||
121 | + Logo string `json:"logo"` | ||
122 | +} |
@@ -3,7 +3,7 @@ package protocol | @@ -3,7 +3,7 @@ package protocol | ||
3 | var errmessge ErrorMap = map[string]string{ | 3 | var errmessge ErrorMap = map[string]string{ |
4 | //操作 | 4 | //操作 |
5 | "0": "成功", | 5 | "0": "成功", |
6 | - "1": "无效请求", | 6 | + "1": "网络连接无响应", |
7 | //角色相关 | 7 | //角色相关 |
8 | "10001": "请先删除该分组下的其他角色", | 8 | "10001": "请先删除该分组下的其他角色", |
9 | "10002": "请先删除该角色下的人员", | 9 | "10002": "请先删除该角色下的人员", |
@@ -57,3 +57,24 @@ type RequestRolePermission struct { | @@ -57,3 +57,24 @@ type RequestRolePermission struct { | ||
57 | RoleID int `json:"role_id"` | 57 | RoleID int `json:"role_id"` |
58 | PermissionID []int `json:"permission_id"` | 58 | PermissionID []int `json:"permission_id"` |
59 | } | 59 | } |
60 | + | ||
61 | +type PermissionItem struct { | ||
62 | + Id int64 `json:"id"` | ||
63 | + Name string `json:"name"` | ||
64 | + Icon string `json:"icon"` | ||
65 | + ParentId int64 `json:"parent_id"` | ||
66 | + SeniorStatus int8 `json:"senior_status"` | ||
67 | + Sort int `json:"sort"` | ||
68 | +} | ||
69 | + | ||
70 | +//TODO PermissionItem 实现排序接口 | ||
71 | + | ||
72 | +// | ||
73 | +type ResponseRoleMenus struct { | ||
74 | + RoleId int64 `json:"role_id"` | ||
75 | + RoleName string `json:"role_name"` | ||
76 | + MenuId []int64 `json:"menu_ids"` | ||
77 | +} | ||
78 | + | ||
79 | +type ResponseRolePermission struct { | ||
80 | +} |
routers/permission.go
0 → 100644
1 | +package routers | ||
2 | + | ||
3 | +// type PermissionBase struct { | ||
4 | +// Check int8 `json:"check"` | ||
5 | +// } | ||
6 | + | ||
7 | +//职位管理相关 | ||
8 | +type PermissionWithPosition struct { | ||
9 | + Check int8 `json:"check"` | ||
10 | +} | ||
11 | + | ||
12 | +func (c PermissionWithPosition) Code() string { | ||
13 | + return "OPPMG_POSITION" | ||
14 | +} | ||
15 | + | ||
16 | +//部门管理相关 | ||
17 | +type PermissionWithDepart struct { | ||
18 | + Check int8 `json:"check"` | ||
19 | +} |
@@ -9,7 +9,7 @@ import ( | @@ -9,7 +9,7 @@ import ( | ||
9 | ) | 9 | ) |
10 | 10 | ||
11 | func init() { | 11 | func init() { |
12 | - nsV1 := beego.NewNamespace("v1", | 12 | + nsV1 := beego.NewNamespace("/v1", |
13 | beego.NSBefore(middleware.AllowOption), | 13 | beego.NSBefore(middleware.AllowOption), |
14 | beego.NSBefore(middleware.LogRequestData), | 14 | beego.NSBefore(middleware.LogRequestData), |
15 | //beego.NSBefore(middleware.AuthToken), | 15 | //beego.NSBefore(middleware.AuthToken), |
@@ -34,12 +34,15 @@ func init() { | @@ -34,12 +34,15 @@ func init() { | ||
34 | beego.NSRouter("/role_group/edit", &controllers.RbacController{}, "post:RoleGroupUpdate"), | 34 | beego.NSRouter("/role_group/edit", &controllers.RbacController{}, "post:RoleGroupUpdate"), |
35 | beego.NSRouter("/role_group/delete", &controllers.RbacController{}, "post:RoleGroupDelete"), | 35 | beego.NSRouter("/role_group/delete", &controllers.RbacController{}, "post:RoleGroupDelete"), |
36 | beego.NSRouter("/role/list", &controllers.RbacController{}, "post:RoleList"), | 36 | beego.NSRouter("/role/list", &controllers.RbacController{}, "post:RoleList"), |
37 | + beego.NSRouter("/menu/list", &controllers.RbacController{}, "post:MenuList"), | ||
38 | + beego.NSRouter("/role/menu", &controllers.RbacController{}, "post:RoleHasMenu"), | ||
37 | ), | 39 | ), |
38 | beego.NSNamespace("/user", | 40 | beego.NSNamespace("/user", |
39 | beego.NSRouter("/list", &controllers.CompanyController{}, "post:UserList"), | 41 | beego.NSRouter("/list", &controllers.CompanyController{}, "post:UserList"), |
40 | beego.NSRouter("/add", &controllers.CompanyController{}, "post:UserAdd"), | 42 | beego.NSRouter("/add", &controllers.CompanyController{}, "post:UserAdd"), |
41 | beego.NSRouter("/edit", &controllers.CompanyController{}, "post:UserEdit"), | 43 | beego.NSRouter("/edit", &controllers.CompanyController{}, "post:UserEdit"), |
42 | beego.NSRouter("/delete", &controllers.CompanyController{}, "post:UserDelete"), | 44 | beego.NSRouter("/delete", &controllers.CompanyController{}, "post:UserDelete"), |
45 | + beego.NSRouter("/allow_forbid", &controllers.CompanyController{}, "post:UserAllowForbid"), | ||
43 | ), | 46 | ), |
44 | beego.NSNamespace("/auth", | 47 | beego.NSNamespace("/auth", |
45 | beego.NSRouter("/change_company", &controllers.AuthController{}, "post:ChangeCompany"), | 48 | beego.NSRouter("/change_company", &controllers.AuthController{}, "post:ChangeCompany"), |
@@ -406,3 +406,34 @@ func initUserRole(newUserCompany *models.UserCompany, newRole *models.Role, o or | @@ -406,3 +406,34 @@ func initUserRole(newUserCompany *models.UserCompany, newRole *models.Role, o or | ||
406 | 406 | ||
407 | return newUserRole, nil | 407 | return newUserRole, nil |
408 | } | 408 | } |
409 | + | ||
410 | +func CompanyInfoEdit(companyid int64, logo string) error { | ||
411 | + data := models.Company{ | ||
412 | + Id: companyid, | ||
413 | + Logo: logo, | ||
414 | + } | ||
415 | + err := models.UpdateCompanyById(&data, []string{"Logo"}) | ||
416 | + if err != nil { | ||
417 | + log.Info("更新公司数据失败:%s", err) | ||
418 | + return protocol.NewErrWithMessage("1") | ||
419 | + } | ||
420 | + | ||
421 | + return nil | ||
422 | +} | ||
423 | +func CompanyBaseInfo(companyid int64) (*protocol.ResponseCompanyBase, error) { | ||
424 | + var ( | ||
425 | + err error | ||
426 | + mcompany *models.Company | ||
427 | + ) | ||
428 | + mcompany, err = models.GetCompanyById(companyid) | ||
429 | + if err != nil { | ||
430 | + log.Error("获取公司基础数据失败:%s", err) | ||
431 | + return nil, protocol.NewErrWithMessage("1") | ||
432 | + } | ||
433 | + companyinfo := &protocol.ResponseCompanyBase{ | ||
434 | + CompanyId: mcompany.Id, | ||
435 | + Name: mcompany.Name, | ||
436 | + Logo: mcompany.Logo, | ||
437 | + } | ||
438 | + return companyinfo, nil | ||
439 | +} |
@@ -5,6 +5,7 @@ import ( | @@ -5,6 +5,7 @@ import ( | ||
5 | "oppmg/common/log" | 5 | "oppmg/common/log" |
6 | "oppmg/models" | 6 | "oppmg/models" |
7 | "oppmg/protocol" | 7 | "oppmg/protocol" |
8 | + "oppmg/storage/redisdata" | ||
8 | "oppmg/utils" | 9 | "oppmg/utils" |
9 | "strings" | 10 | "strings" |
10 | "time" | 11 | "time" |
@@ -375,17 +376,31 @@ func UserEdit(param protocol.RequestUserEdit) error { | @@ -375,17 +376,31 @@ func UserEdit(param protocol.RequestUserEdit) error { | ||
375 | return nil | 376 | return nil |
376 | } | 377 | } |
377 | 378 | ||
378 | -func UserDelete(userid, companyid int64) error { | ||
379 | - ok := models.ExistUserCompany(userid, companyid) | ||
380 | - if !ok { | ||
381 | - e := fmt.Errorf("ExistUserCompany(userid, companyid) [%d,%d] ==false ", userid, companyid) | ||
382 | - log.Error(e.Error()) | ||
383 | - return protocol.NewErrWithMessage("1") | 379 | +func UserDelete(userCompanyids []int64, companyid int64) error { |
380 | + if len(userCompanyids) == 0 { | ||
381 | + return nil | ||
384 | } | 382 | } |
383 | + var ( | ||
384 | + updateIds []models.UserCompany | ||
385 | + err error | ||
386 | + ) | ||
385 | o := orm.NewOrm() | 387 | o := orm.NewOrm() |
386 | - _, err := o.QueryTable(&models.UserCompany{}). | ||
387 | - Filter("user_id", userid). | ||
388 | - Filter("company_id"). | 388 | + _, err = o.QueryTable(&models.UserCompany{}). |
389 | + Filter("id__in", userCompanyids). | ||
390 | + Filter("company_id", companyid). | ||
391 | + All(&updateIds, "Id", "UserId") | ||
392 | + if err != nil { | ||
393 | + log.Error("获取用户数据失败:%s", err) | ||
394 | + return protocol.NewErrWithMessage("1") | ||
395 | + } | ||
396 | + var ( | ||
397 | + ids []int64 | ||
398 | + ) | ||
399 | + for _, v := range updateIds { | ||
400 | + ids = append(ids, v.Id) | ||
401 | + } | ||
402 | + _, err = o.QueryTable(&models.UserCompany{}). | ||
403 | + Filter("id__in", ids). | ||
389 | Update(orm.Params{ | 404 | Update(orm.Params{ |
390 | "delete_at": time.Now().String(), | 405 | "delete_at": time.Now().String(), |
391 | }) | 406 | }) |
@@ -394,6 +409,13 @@ func UserDelete(userid, companyid int64) error { | @@ -394,6 +409,13 @@ func UserDelete(userid, companyid int64) error { | ||
394 | log.Error(e.Error()) | 409 | log.Error(e.Error()) |
395 | return protocol.NewErrWithMessage("1") | 410 | return protocol.NewErrWithMessage("1") |
396 | } | 411 | } |
412 | + for _, v := range updateIds { | ||
413 | + e := redisdata.DeleteLoginToken(v.UserId) | ||
414 | + if e != nil { | ||
415 | + log.Error(e.Error()) | ||
416 | + } | ||
417 | + } | ||
418 | + | ||
397 | return nil | 419 | return nil |
398 | } | 420 | } |
399 | 421 | ||
@@ -510,22 +532,64 @@ func GetUserRole(usercompanyid int64) []protocol.RoleBase { | @@ -510,22 +532,64 @@ func GetUserRole(usercompanyid int64) []protocol.RoleBase { | ||
510 | return data | 532 | return data |
511 | } | 533 | } |
512 | 534 | ||
513 | -//启用、禁用用户 | ||
514 | -func UserForbid(userCompanyIds []int64, companyid int64, enable int8) error { | ||
515 | - if len(userCompanyIds) == 0 { | 535 | +//禁用用户 |
536 | +func UserForbid(userCompanyids []int64, companyid int64) error { | ||
537 | + if len(userCompanyids) == 0 { | ||
516 | return nil | 538 | return nil |
517 | } | 539 | } |
518 | - if !(enable == models.USERCOMPANY_ENABLE_NO || enable == models.USERCOMPANY_ENABLE_YES) { | ||
519 | - log.Error("enable err") | 540 | + var ( |
541 | + updateIds []models.UserCompany | ||
542 | + err error | ||
543 | + ) | ||
544 | + o := orm.NewOrm() | ||
545 | + _, err = o.QueryTable(&models.UserCompany{}). | ||
546 | + Filter("id__in", userCompanyids). | ||
547 | + Filter("company_id", companyid). | ||
548 | + All(&updateIds, "Id", "UserId") | ||
549 | + if err != nil { | ||
550 | + log.Error("获取用户数据失败:%s", err) | ||
520 | return protocol.NewErrWithMessage("1") | 551 | return protocol.NewErrWithMessage("1") |
521 | } | 552 | } |
553 | + var ( | ||
554 | + ids []int64 | ||
555 | + ) | ||
556 | + for _, v := range updateIds { | ||
557 | + ids = append(ids, v.Id) | ||
558 | + } | ||
559 | + num, err := o.QueryTable(&models.UserCompany{}). | ||
560 | + Filter("delete_at", 0). | ||
561 | + Filter("company_id", companyid). | ||
562 | + Filter("id__in", ids). | ||
563 | + Update(orm.Params{ | ||
564 | + "enable": models.USERCOMPANY_ENABLE_NO, | ||
565 | + "update_at": time.Now(), | ||
566 | + }) | ||
567 | + if err != nil { | ||
568 | + log.Error("更新user_company失败:%s", err) | ||
569 | + protocol.NewErrWithMessage("1") | ||
570 | + } | ||
571 | + log.Info("更新记录数:%d", num) | ||
572 | + for _, v := range updateIds { | ||
573 | + e := redisdata.DeleteLoginToken(v.UserId) | ||
574 | + if e != nil { | ||
575 | + log.Error(e.Error()) | ||
576 | + } | ||
577 | + } | ||
578 | + return nil | ||
579 | +} | ||
580 | + | ||
581 | +//启用用户 | ||
582 | +func UserAllow(userCompanyIds []int64, companyid int64) error { | ||
583 | + if len(userCompanyIds) == 0 { | ||
584 | + return nil | ||
585 | + } | ||
522 | o := orm.NewOrm() | 586 | o := orm.NewOrm() |
523 | num, err := o.QueryTable(&models.UserCompany{}). | 587 | num, err := o.QueryTable(&models.UserCompany{}). |
524 | Filter("delete_at", 0). | 588 | Filter("delete_at", 0). |
525 | Filter("company_id", companyid). | 589 | Filter("company_id", companyid). |
526 | Filter("id__in", userCompanyIds). | 590 | Filter("id__in", userCompanyIds). |
527 | Update(orm.Params{ | 591 | Update(orm.Params{ |
528 | - "enable": enable, | 592 | + "enable": models.USERCOMPANY_ENABLE_YES, |
529 | "update_at": time.Now(), | 593 | "update_at": time.Now(), |
530 | }) | 594 | }) |
531 | if err != nil { | 595 | if err != nil { |
1 | package rbac | 1 | package rbac |
2 | + | ||
3 | +import ( | ||
4 | + "oppmg/common/log" | ||
5 | + "oppmg/models" | ||
6 | + "oppmg/protocol" | ||
7 | + "oppmg/utils" | ||
8 | +) | ||
9 | + | ||
10 | +//获取全部的权限菜单 | ||
11 | +func GetMenuAll() ([]protocol.PermissionItem, error) { | ||
12 | + const datasql string = `SELECT id,name,icon,parent_id,senior_status,sort | ||
13 | + FROM menu WHERE enabled=1 ORDER BY sort ` | ||
14 | + var ( | ||
15 | + list []protocol.PermissionItem | ||
16 | + err error | ||
17 | + ) | ||
18 | + err = utils.ExecuteQueryAll(&list, datasql) | ||
19 | + if err != nil { | ||
20 | + log.Error("EXECUTE SQL err:%s", err) | ||
21 | + return nil, protocol.NewErrWithMessage("1") | ||
22 | + } | ||
23 | + return list, nil | ||
24 | +} | ||
25 | + | ||
26 | +// | ||
27 | +func GetRoleHasMenu(roleid int64, companyid int64) (*protocol.ResponseRoleMenus, error) { | ||
28 | + var ( | ||
29 | + roleData *models.Role | ||
30 | + err error | ||
31 | + ) | ||
32 | + roleData, err = models.GetRoleById(roleid) | ||
33 | + if err != nil { | ||
34 | + log.Error("获取角色数据失败:%s", err) | ||
35 | + return nil, err | ||
36 | + } | ||
37 | + if roleData.Types != models.ROLETYPES_ROLE { | ||
38 | + log.Error("角色类型错误") | ||
39 | + return nil, protocol.NewErrWithMessage("1") | ||
40 | + } | ||
41 | + if roleData.CompanyId != companyid { | ||
42 | + log.Error("角色的公司id不匹配") | ||
43 | + return nil, protocol.NewErrWithMessage("1") | ||
44 | + } | ||
45 | + var ( | ||
46 | + rolemenu []models.RoleMenu | ||
47 | + ids []int64 | ||
48 | + ) | ||
49 | + rolemenu, err = models.GetRoleMenuByRole(roleid) | ||
50 | + if err != nil { | ||
51 | + log.Error("获取角色下的菜单数据失败:%s", err) | ||
52 | + return nil, protocol.NewErrWithMessage("1") | ||
53 | + } | ||
54 | + for _, v := range rolemenu { | ||
55 | + ids = append(ids, v.MenuId) | ||
56 | + } | ||
57 | + data := &protocol.ResponseRoleMenus{ | ||
58 | + RoleId: roleData.Id, | ||
59 | + RoleName: roleData.Name, | ||
60 | + MenuId: ids, | ||
61 | + } | ||
62 | + return data, nil | ||
63 | +} | ||
64 | + | ||
65 | +func RoleMenuEdit(companyid int64, roleid int64, menuids []int64) { | ||
66 | + | ||
67 | +} |
-
请 注册 或 登录 后发表评论