Commit 63baf5dd authored by 黄智's avatar 黄智

用户角色相关补完

parent d9b3e447
package entity
import (
"time"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/jsontime"
)
// 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 jsontime.Time `json:"created_time"` // 角色创建时间
UpdatedTime jsontime.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"` // 是否删除
}
......@@ -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
......
......@@ -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
}
......
......@@ -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.SystemId {
// 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.UserId {
orgAdminUsers[i].SystemRole = append(orgAdminUsers[i].SystemRole, s.RoleName)
}
}
}
var orgInfo response.OrgDetail
if _, err = db.Table("system_organization").Alias("so").
......
......@@ -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,
}
......
......@@ -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: systemId, 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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment