正在显示
3 个修改的文件
包含
62 行增加
和
57 行删除
@@ -92,47 +92,53 @@ func NewRoleService() *RoleService { | @@ -92,47 +92,53 @@ func NewRoleService() *RoleService { | ||
92 | // return role, nil | 92 | // return role, nil |
93 | //} | 93 | //} |
94 | // | 94 | // |
95 | -//func (rs *RoleService) Remove(in *command.DeleteRoleCommand) (interface{}, error) { | ||
96 | -// transactionContext, err := factory.ValidateStartTransaction(in) | ||
97 | -// if err != nil { | ||
98 | -// return nil, err | ||
99 | -// } | ||
100 | -// defer func() { | ||
101 | -// transactionContext.RollbackTransaction() | ||
102 | -// }() | ||
103 | -// | ||
104 | -// roleRepository := factory.CreateRoleRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
105 | -// roleUserRepository := factory.CreateRoleUserRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
106 | -// | ||
107 | -// role, err := roleRepository.FindOne(map[string]interface{}{"id": in.Id}) | ||
108 | -// if err != nil { | ||
109 | -// return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
110 | -// } | ||
111 | -// if _, err := roleRepository.Remove(role); err != nil { | ||
112 | -// return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
113 | -// } | ||
114 | -// | ||
115 | -// // 获取角色所有关联的用户,并删除 | ||
116 | -// _, roleUsers, err := roleUserRepository.Find(map[string]interface{}{"roleId": in.Id, "companyId": in.CompanyId}) | ||
117 | -// if err != nil { | ||
118 | -// return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
119 | -// } | ||
120 | -// ids := make([]int64, 0) | ||
121 | -// for i := range roleUsers { | ||
122 | -// ids = append(ids, roleUsers[i].Id) | ||
123 | -// } | ||
124 | -// if len(ids) > 0 { | ||
125 | -// err := roleUserRepository.BatchDeleteById(ids) | ||
126 | -// if err != nil { | ||
127 | -// return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
128 | -// } | ||
129 | -// } | ||
130 | -// | ||
131 | -// if err := transactionContext.CommitTransaction(); err != nil { | ||
132 | -// return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
133 | -// } | ||
134 | -// return role, nil | ||
135 | -//} | 95 | + |
96 | +func (rs *RoleService) Remove(in *command.DeleteRoleCommand) (interface{}, error) { | ||
97 | + transactionContext, err := factory.ValidateStartTransaction(in) | ||
98 | + if err != nil { | ||
99 | + return nil, err | ||
100 | + } | ||
101 | + defer func() { | ||
102 | + transactionContext.RollbackTransaction() | ||
103 | + }() | ||
104 | + | ||
105 | + roleRepository := factory.CreateRoleRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
106 | + roleUserRepository := factory.CreateRoleUserRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
107 | + | ||
108 | + role, err := roleRepository.FindOne(map[string]interface{}{"id": in.Id}) | ||
109 | + if err != nil { | ||
110 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
111 | + } | ||
112 | + | ||
113 | + if role.Type == domain.RoleTypeSystem { | ||
114 | + return nil, application.ThrowError(application.BUSINESS_ERROR, "系统预制角色不可删除") | ||
115 | + } | ||
116 | + | ||
117 | + if _, err := roleRepository.Remove(role); err != nil { | ||
118 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
119 | + } | ||
120 | + | ||
121 | + // 获取角色所有关联的用户,并删除 | ||
122 | + _, roleUsers, err := roleUserRepository.Find(map[string]interface{}{"roleId": in.Id, "companyId": in.CompanyId}) | ||
123 | + if err != nil { | ||
124 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
125 | + } | ||
126 | + ids := make([]int64, 0) | ||
127 | + for i := range roleUsers { | ||
128 | + ids = append(ids, roleUsers[i].Id) | ||
129 | + } | ||
130 | + if len(ids) > 0 { | ||
131 | + err := roleUserRepository.BatchDeleteById(ids) | ||
132 | + if err != nil { | ||
133 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
134 | + } | ||
135 | + } | ||
136 | + | ||
137 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
138 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
139 | + } | ||
140 | + return role, nil | ||
141 | +} | ||
136 | 142 | ||
137 | func (rs *RoleService) ListForUser(in *command.QueryRoleUserCommand) (interface{}, error) { | 143 | func (rs *RoleService) ListForUser(in *command.QueryRoleUserCommand) (interface{}, error) { |
138 | transactionContext, err := factory.StartTransaction() | 144 | transactionContext, err := factory.StartTransaction() |
@@ -12,7 +12,7 @@ type RoleController struct { | @@ -12,7 +12,7 @@ type RoleController struct { | ||
12 | beego.BaseController | 12 | beego.BaseController |
13 | } | 13 | } |
14 | 14 | ||
15 | -//func (controller *RoleController) CreateRole() { | 15 | +// func (controller *RoleController) CreateRole() { |
16 | // ruService := service.NewRoleService() | 16 | // ruService := service.NewRoleService() |
17 | // in := &command.CreateRoleCommand{} | 17 | // in := &command.CreateRoleCommand{} |
18 | // if err := controller.Unmarshal(in); err != nil { | 18 | // if err := controller.Unmarshal(in); err != nil { |
@@ -21,9 +21,9 @@ type RoleController struct { | @@ -21,9 +21,9 @@ type RoleController struct { | ||
21 | // in.CompanyId = middlewares.GetCompanyId(controller.Ctx) | 21 | // in.CompanyId = middlewares.GetCompanyId(controller.Ctx) |
22 | // controller.Response(ruService.Create(in)) | 22 | // controller.Response(ruService.Create(in)) |
23 | // } | 23 | // } |
24 | -//} | 24 | +// } |
25 | // | 25 | // |
26 | -//func (controller *RoleController) UpdateRole() { | 26 | +// func (controller *RoleController) UpdateRole() { |
27 | // ruService := service.NewRoleService() | 27 | // ruService := service.NewRoleService() |
28 | // in := &command.UpdateRoleCommand{} | 28 | // in := &command.UpdateRoleCommand{} |
29 | // if err := controller.Unmarshal(in); err != nil { | 29 | // if err := controller.Unmarshal(in); err != nil { |
@@ -32,18 +32,18 @@ type RoleController struct { | @@ -32,18 +32,18 @@ type RoleController struct { | ||
32 | // in.CompanyId = middlewares.GetCompanyId(controller.Ctx) | 32 | // in.CompanyId = middlewares.GetCompanyId(controller.Ctx) |
33 | // controller.Response(ruService.Update(in)) | 33 | // controller.Response(ruService.Update(in)) |
34 | // } | 34 | // } |
35 | -//} | ||
36 | -// | ||
37 | -//func (controller *RoleController) RemoveRole() { | ||
38 | -// ruService := service.NewRoleService() | ||
39 | -// in := &command.DeleteRoleCommand{} | ||
40 | -// if err := controller.Unmarshal(in); err != nil { | ||
41 | -// controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) | ||
42 | -// } else { | ||
43 | -// in.CompanyId = middlewares.GetCompanyId(controller.Ctx) | ||
44 | -// controller.Response(ruService.Remove(in)) | ||
45 | // } | 35 | // } |
46 | -//} | 36 | +func (controller *RoleController) RemoveRole() { |
37 | + ruService := service.NewRoleService() | ||
38 | + in := &command.DeleteRoleCommand{} | ||
39 | + if err := controller.Unmarshal(in); err != nil { | ||
40 | + controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) | ||
41 | + } else { | ||
42 | + ua := middlewares.GetUser(controller.Ctx) | ||
43 | + in.CompanyId = ua.CompanyId | ||
44 | + controller.Response(ruService.Remove(in)) | ||
45 | + } | ||
46 | +} | ||
47 | 47 | ||
48 | func (controller *RoleController) ListForUserRole() { | 48 | func (controller *RoleController) ListForUserRole() { |
49 | ruService := service.NewRoleService() | 49 | ruService := service.NewRoleService() |
@@ -53,7 +53,6 @@ func (controller *RoleController) ListForUserRole() { | @@ -53,7 +53,6 @@ func (controller *RoleController) ListForUserRole() { | ||
53 | } else { | 53 | } else { |
54 | ua := middlewares.GetUser(controller.Ctx) | 54 | ua := middlewares.GetUser(controller.Ctx) |
55 | in.CompanyId = ua.CompanyId | 55 | in.CompanyId = ua.CompanyId |
56 | - //in.CompanyId = middlewares.GetCompanyId(controller.Ctx) | ||
57 | controller.Response(ruService.ListForUser(in)) | 56 | controller.Response(ruService.ListForUser(in)) |
58 | } | 57 | } |
59 | } | 58 | } |
@@ -12,7 +12,7 @@ func init() { | @@ -12,7 +12,7 @@ func init() { | ||
12 | web.NSBefore(filters.AllowCors(), middlewares.CheckAdminToken()), | 12 | web.NSBefore(filters.AllowCors(), middlewares.CheckAdminToken()), |
13 | //web.NSRouter("/", &controllers.RoleController{}, "Post:CreateRole"), | 13 | //web.NSRouter("/", &controllers.RoleController{}, "Post:CreateRole"), |
14 | //web.NSRouter("/", &controllers.RoleController{}, "Put:UpdateRole"), | 14 | //web.NSRouter("/", &controllers.RoleController{}, "Put:UpdateRole"), |
15 | - //web.NSRouter("/", &controllers.RoleController{}, "Delete:RemoveRole"), | 15 | + web.NSRouter("/", &controllers.RoleController{}, "Delete:RemoveRole"), |
16 | //web.NSRouter("/:Id", &controllers.RoleController{}, "Get:GetRole"), | 16 | //web.NSRouter("/:Id", &controllers.RoleController{}, "Get:GetRole"), |
17 | web.NSRouter("/all", &controllers.RoleController{}, "Post:ListForUserRole"), | 17 | web.NSRouter("/all", &controllers.RoleController{}, "Post:ListForUserRole"), |
18 | ) | 18 | ) |
-
请 注册 或 登录 后发表评论