Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-operation-api
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-operation-api
Commits
63baf5dd
Commit
63baf5dd
authored
Jul 03, 2023
by
黄智
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户角色相关补完
parent
d9b3e447
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
72 additions
and
61 deletions
+72
-61
src/bean/entity/system_role.go
src/bean/entity/system_role.go
+12
-12
src/controller/system_user.go
src/controller/system_user.go
+4
-4
src/pkg/beagle/resp/resp.go
src/pkg/beagle/resp/resp.go
+3
-0
src/service/organization.go
src/service/organization.go
+13
-13
src/service/system_role.go
src/service/system_role.go
+3
-3
src/service/system_user.go
src/service/system_user.go
+37
-29
No files found.
src/bean/entity/system_role.go
View file @
63baf5dd
package
entity
import
(
"time"
"
gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/json
time"
)
// SystemRole 系统角色
type
SystemRole
struct
{
Id
int64
`json:"id" xorm:"pk autoincr"`
// id
RoleName
string
`json:"role_name"`
// 角色名称
RoleDesc
string
`json:"role_desc"`
// 角色描述
State
int
`json:"state"`
// 状态0禁用1启用
CreatedBy
int
`json:"created_by"`
// 角色创建人
CreatedTime
time
.
Time
`json:"created_time"`
// 角色创建时间
UpdatedTime
time
.
Time
`json:"updated_time"`
// 角色更新时间
UpdatedBy
int
`json:"updated_by"`
// 角色更新人
RoleType
int
`json:"role_type"`
// 角色类型(0 普通角色 1 内置角色类型 不能删除和编辑 )
RoleId
string
`json:"role_id"`
// 角色id(uuid)
IsDeleted
int
`json:"is_deleted" xorm:"is_deleted"`
// 是否删除
Id
int64
`json:"id" xorm:"pk autoincr"`
// id
RoleName
string
`json:"role_name"`
// 角色名称
RoleDesc
string
`json:"role_desc"`
// 角色描述
State
int
`json:"state"`
// 状态0禁用1启用
CreatedBy
int
`json:"created_by"`
// 角色创建人
CreatedTime
json
time
.
Time
`json:"created_time"`
// 角色创建时间
UpdatedTime
json
time
.
Time
`json:"updated_time"`
// 角色更新时间
UpdatedBy
int
`json:"updated_by"`
// 角色更新人
RoleType
int
`json:"role_type"`
// 角色类型(0 普通角色 1 内置角色类型 不能删除和编辑 )
RoleId
string
`json:"role_id"`
// 角色id(uuid)
IsDeleted
int
`json:"is_deleted" xorm:"is_deleted"`
// 是否删除
}
src/controller/system_user.go
View file @
63baf5dd
...
...
@@ -29,13 +29,13 @@ func OrgUserDetail(c *gin.Context) {
// 组织添加用户时查询的角色列表
func
OrgUserRoles
(
c
*
gin
.
Context
)
{
isAdmin
:=
c
.
Query
(
"is_admin
"
)
if
isAdmin
==
""
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithMsg
(
"
用户类型
必填"
),
nil
)
oid
:=
c
.
Query
(
"oid
"
)
if
oid
==
""
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithMsg
(
"
组织id
必填"
),
nil
)
return
}
svc
:=
service
.
User
{}
result
,
err
:=
svc
.
OrgUserRoles
(
cast
.
ToInt
(
isAdmin
))
result
,
err
:=
svc
.
OrgUserRoles
(
cast
.
ToInt
(
oid
))
if
err
!=
nil
{
SendJsonResponse
(
c
,
err
,
nil
)
return
...
...
src/pkg/beagle/resp/resp.go
View file @
63baf5dd
...
...
@@ -18,6 +18,9 @@ type Resp struct {
func
(
r
Resp
)
WithMsg
(
msg
string
)
Resp
{
r
.
Msg
=
msg
if
r
.
Data
==
nil
{
r
.
Data
=
msg
}
return
r
}
...
...
src/service/organization.go
View file @
63baf5dd
...
...
@@ -281,19 +281,19 @@ func (o *Organization) OrgDetail(input request.QueryOrgDetailInput) (interface{}
for
_
,
v
:=
range
orgAdminUsers
{
ids
=
append
(
ids
,
v
.
Id
)
}
//
var systemUserRoles []response.SystemUserRole
//
if err := db.Table("system_user_role").Alias("sur").Select("sur.system_id, sr.role_name").
// Join("left", "system_role sr", "sr.role_id = sur.role_id").In("sur.system_id", system_
ids).Find(&systemUserRoles); err != nil {
//
conf.Logger.Error("查询用户角色信息失败", zap.Error(err))
// return nil, res
.DbSelectError.ErrorDetail(err)
//
}
//
for i, v := range orgAdminUsers {
//
for _, s := range systemUserRoles {
// if v.SystemId == s.System
Id {
//
orgAdminUsers[i].SystemRole = append(orgAdminUsers[i].SystemRole, s.RoleName)
//
}
//
}
//
}
var
systemUserRoles
[]
response
.
SystemUserRole
if
err
:=
db
.
Table
(
"system_user_role"
)
.
Alias
(
"sur"
)
.
Select
(
"sur.system_id, sr.role_name"
)
.
Join
(
"left"
,
"system_role sr"
,
"sr.role_id = sur.role_id"
)
.
In
(
"sur.user_id"
,
ids
)
.
Find
(
&
systemUserRoles
);
err
!=
nil
{
conf
.
Logger
.
Error
(
"查询用户角色信息失败"
,
zap
.
Error
(
err
))
return
nil
,
resp
.
DbSelectError
.
ErrorDetail
(
err
)
}
for
i
,
v
:=
range
orgAdminUsers
{
for
_
,
s
:=
range
systemUserRoles
{
if
v
.
Id
==
s
.
User
Id
{
orgAdminUsers
[
i
]
.
SystemRole
=
append
(
orgAdminUsers
[
i
]
.
SystemRole
,
s
.
RoleName
)
}
}
}
var
orgInfo
response
.
OrgDetail
if
_
,
err
=
db
.
Table
(
"system_organization"
)
.
Alias
(
"so"
)
.
...
...
src/service/system_role.go
View file @
63baf5dd
...
...
@@ -32,8 +32,8 @@ func CreateSystemRole(params request.CreateSystemRoleReq) (resultData int64, err
RoleDesc
:
params
.
RoleDesc
,
State
:
params
.
State
,
CreatedBy
:
params
.
CreatedBy
,
CreatedTime
:
time
.
Now
(
),
UpdatedTime
:
time
.
Now
(
),
CreatedTime
:
jsontime
.
Time
(
time
.
Now
()
),
UpdatedTime
:
jsontime
.
Time
(
time
.
Now
()
),
UpdatedBy
:
params
.
CreatedBy
,
RoleType
:
roleTypeNormal
,
RoleId
:
roleId
,
...
...
@@ -107,7 +107,7 @@ func UpdateSystemRole(params request.UpdateSystemRoleReq) (resultData int64, err
RoleName
:
params
.
RoleName
,
RoleDesc
:
params
.
RoleDesc
,
State
:
params
.
State
,
UpdatedTime
:
time
.
Now
(
),
UpdatedTime
:
jsontime
.
Time
(
time
.
Now
()
),
UpdatedBy
:
params
.
UpdatedBy
,
//DataPurview: params.DataPurview,
}
...
...
src/service/system_user.go
View file @
63baf5dd
...
...
@@ -49,28 +49,36 @@ func (o *User) OrgUserDetail(id int) (interface{}, error) {
}
//查询用户角色
//
var systemUserRoles []response.SystemUserRole
//
if err := db.Table("system_user_role").Alias("sur").Select(" sr.role_name").
//
Join("left", "system_role sr", "sr.role_id = sur.role_id").Where("sur.user_id = ?", result.Id).Find(&systemUserRoles); err != nil {
//
conf.Logger.Error("查询用户角色信息失败", zap.Error(err))
//
return nil, resp.DbSelectError.ErrorDetail(err)
//
}
//
for _, v := range systemUserRoles {
//
result.SystemRole = append(result.SystemRole, v.RoleName)
//
}
var
systemUserRoles
[]
response
.
SystemUserRole
if
err
:=
db
.
Table
(
"system_user_role"
)
.
Alias
(
"sur"
)
.
Select
(
" sr.role_name"
)
.
Join
(
"left"
,
"system_role sr"
,
"sr.role_id = sur.role_id"
)
.
Where
(
"sur.user_id = ?"
,
result
.
Id
)
.
Find
(
&
systemUserRoles
);
err
!=
nil
{
conf
.
Logger
.
Error
(
"查询用户角色信息失败"
,
zap
.
Error
(
err
))
return
nil
,
resp
.
DbSelectError
.
ErrorDetail
(
err
)
}
for
_
,
v
:=
range
systemUserRoles
{
result
.
SystemRole
=
append
(
result
.
SystemRole
,
v
.
RoleName
)
}
return
result
,
nil
}
// 组织添加用户时查询角色列表 查询非内置角色 + 平台运营者
func
(
o
*
User
)
OrgUserRoles
(
hasAdmin
int
)
(
interface
{},
error
)
{
func
(
o
*
User
)
OrgUserRoles
(
oid
int
)
(
interface
{},
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
return
nil
,
resp
.
DbConnectError
.
ErrorDetail
(
err
)
}
session
:=
db
.
Table
(
"system_role"
)
.
Where
(
"role_type = 0 and is_deleted = 0 and state = 1 "
)
if
hasAdmin
==
1
{
session
.
Or
(
"role_type = 1 and is_deleted = 0 and state = 1"
)
var
org
entity
.
SystemOrganization
_
,
err
=
db
.
Table
(
"system_organization"
)
.
Where
(
"id = ?"
,
oid
)
.
Get
(
&
org
)
if
err
!=
nil
{
conf
.
Logger
.
Error
(
"查询机构信息失败"
,
zap
.
Error
(
err
))
return
nil
,
resp
.
DbSelectError
.
ErrorDetail
(
err
)
}
session
:=
db
.
Table
(
"system_role"
)
.
Where
(
" is_deleted = 0 and state = 1 "
)
if
org
.
DataType
==
2
{
session
.
Where
(
"role_type <= 2"
)
}
else
{
session
.
Where
(
"role_type <= 1"
)
}
var
roles
[]
entity
.
SystemRole
if
err
:=
session
.
Find
(
&
roles
);
err
!=
nil
{
...
...
@@ -137,14 +145,14 @@ func (o *User) OrgAddUser(input request.OrgUserInput) error {
return
nil
,
resp
.
DbInsertError
.
ErrorDetail
(
err
)
}
//
var systemUserRoles []entity.SystemUserRole
//
for _, v := range input.SelectRole {
// systemUserRoles = append(systemUserRoles, entity.SystemUserRole{SystemId: system
Id, RoleId: v})
//
}
//
if _, err := s.Table("system_user_role").Insert(&systemUserRoles); err != nil {
//
conf.Logger.Error("创建用户角色失败", zap.Error(err))
// return nil, res
.DbInsertError.ErrorDetail(err)
//
}
var
systemUserRoles
[]
entity
.
SystemUserRole
for
_
,
v
:=
range
input
.
SelectRole
{
systemUserRoles
=
append
(
systemUserRoles
,
entity
.
SystemUserRole
{
UserId
:
userModel
.
Id
,
RoleId
:
v
})
}
if
_
,
err
:=
s
.
Table
(
"system_user_role"
)
.
Insert
(
&
systemUserRoles
);
err
!=
nil
{
conf
.
Logger
.
Error
(
"创建用户角色失败"
,
zap
.
Error
(
err
))
return
nil
,
resp
.
DbInsertError
.
ErrorDetail
(
err
)
}
return
nil
,
nil
})
return
err
...
...
@@ -234,14 +242,14 @@ func (o *User) DelOrgUser(input request.DelOrgUser) error {
}
//删除用户关联角色
//
var user_ids []int
//
for _, v := range baseUsers {
//
user_ids = append(user_ids, v.Id)
//
}
//
if _, err := db.Table("system_user_role").In("user_id", user_ids).Delete(&entity.SystemUserRole{}); err != nil {
//
conf.Logger.Error("删除用户关联角色失败", zap.Error(err))
// return nil, res
.DbDeleteError.ErrorDetail(err)
//
}
var
user_ids
[]
int
for
_
,
v
:=
range
baseUsers
{
user_ids
=
append
(
user_ids
,
v
.
Id
)
}
if
_
,
err
:=
db
.
Table
(
"system_user_role"
)
.
In
(
"user_id"
,
user_ids
)
.
Delete
(
&
entity
.
SystemUserRole
{});
err
!=
nil
{
conf
.
Logger
.
Error
(
"删除用户关联角色失败"
,
zap
.
Error
(
err
))
return
nil
,
resp
.
DbDeleteError
.
ErrorDetail
(
err
)
}
return
nil
,
nil
})
return
err
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment