Commit e59949b8 authored by 黄智's avatar 黄智

角色模块

parent 0c9d92ab
......@@ -13,7 +13,7 @@ type SystemRole struct {
CreatedBy int `json:"created_by"` // 角色创建人
CreatedTime time.Time `json:"created_time"` // 角色创建时间
UpdatedTime time.Time `json:"updated_time"` // 角色更新时间
UpdatedBy string `json:"updated_by"` // 角色更新人
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"` // 是否删除
......
package entity
import "time"
type SystemRoleMenu struct {
Id int64 `json:"id" xorm:"pk autoincr" ` // 主键自增id
RoleId string `json:"role_id" xorm:"role_id"` // 角色id(uuid)
MenuId string `json:"menu_id" xorm:"menu_id" ` // 菜单id(uuid)
CreatedTime time.Time `json:"created_time" xorm:"created" ` // 创建时间
}
package entity
import "time"
type SystemUserRole struct {
Id int64 `json:"id" xorm:"pk autoincr" ` // 主键自增id
UserId int `json:"user_id" xorm:"user_id" ` // 用户id 唯一标识
RoleId string `json:"role_id" xorm:"role_id"` // 角色id(uuid)
CreatedTime time.Time `json:"created_time" xorm:"created" ` // 创建时间
}
package request
type CreateSystemRoleReq struct {
RoleName string `json:"role_name" vd:"len($)>0;msg:'请输入角色名称'"` // 角色名称
RoleDesc string `json:"role_desc"` // 角色描述
State int `json:"state"` // 状态0禁用1启用
RoleId string `json:"role_id"` // 角色id(uuid)
DataPurview int `json:"data_purview" vd:"$>0;msg:'请输入数据权限'"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
MenuIds []int `json:"menu_ids" ` // 菜单ids
CreatedBy string `json:"created_by"` // 用户创建人
RoleName string `json:"role_name" vd:"len($)>0;msg:'请输入角色名称'"` // 角色名称
RoleDesc string `json:"role_desc"` // 角色描述
State int `json:"state"` // 状态0禁用1启用
RoleId string `json:"role_id"` // 角色id(uuid)
//DataPurview int `json:"data_purview" vd:"$>0;msg:'请输入数据权限'"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
MenuIds []int `json:"menu_ids" ` // 菜单ids
CreatedBy int `json:"created_by"` // 用户创建人
}
type UpdateSystemRoleReq struct {
Id int `json:"id"` // id
RoleName string `json:"role_name" vd:"len($)>0;msg:'请输入角色名称'"` // 角色名称
RoleDesc string `json:"role_desc"` // 角色描述
State int `json:"state"` // 状态0禁用1启用
DataPurview int `json:"data_purview" vd:"$>0;msg:'请输入数据权限'"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
MenuIds []int `json:"menu_ids" ` // 菜单ids
UpdatedBy string `json:"updated_by"` // 角色更新人
Id int `json:"id"` // id
RoleName string `json:"role_name" vd:"len($)>0;msg:'请输入角色名称'"` // 角色名称
RoleDesc string `json:"role_desc"` // 角色描述
State int `json:"state"` // 状态0禁用1启用
//DataPurview int `json:"data_purview" vd:"$>0;msg:'请输入数据权限'"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
MenuIds []int `json:"menu_ids" ` // 菜单ids
UpdatedBy int `json:"updated_by"` // 角色更新人
}
type SystemRoleListReq struct {
IsAdmin int `json:"is_admin"`
IsAdmin int `json:"is_admin"`
Search string `json:"search" form:"search"`
Pagination
}
type SystemAllotUserListReq struct {
Pagination
RoleId int `json:"role_id" form:"role_id" vd:"$>0;msg:'请输入role_id'"` // 角色id
IsAdmin int `json:"is_admin" form:"is_admin"` // 账户类型
OrganizationId int64 `json:"organization_id" form:"organization_id"` // 所属组织
Search string `json:"search" form:"search"`
RoleId int `json:"role_id" form:"role_id" vd:"$>0;msg:'请输入role_id'"` // 角色id
IsAdmin int `json:"is_admin" form:"is_admin"` // 账户类型
OrganizationId int64 `json:"organization_id" form:"organization_id"` // 所属组织
}
type SystemRoleDetailReq struct {
Id string `json:"id" form:"id" vd:"len($)>0;msg:'请输入id'"` // id
......
......@@ -13,27 +13,27 @@ type SystemUserRole struct {
}
type SystemRoleList struct {
Id int64 `json:"id"` // id
RoleName string `json:"role_name"` // 角色名称
RoleDesc string `json:"role_desc"` // 角色描述
State int `json:"state"` // 状态0禁用1启用
CreatedBy string `json:"created_by"` // 角色创建人
CreatedTime time.Time `json:"created_time"` // 角色创建时间
RoleType int `json:"role_type"` // 角色类型(0 普通角色 1 内置角色类型 不能删除和编辑 )
RoleId string `json:"role_id"` // 角色id(uuid)
DataPurview int `json:"data_purview"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
UserCount int `json:"user_count"` // 用户数
CantAllot int `json:"cant_allot"` // 是否可分配用户
SystemAccount string `json:"system_account" xorm:"system_account"` // 系统账号
Id int64 `json:"id"` // id
RoleName string `json:"role_name"` // 角色名称
RoleDesc string `json:"role_desc"` // 角色描述
State int `json:"state"` // 状态0禁用1启用
CreatedBy string `json:"created_by"` // 角色创建人
CreatedTime time.Time `json:"created_time"` // 角色创建时间
RoleType int `json:"role_type"` // 角色类型(0 普通角色 1 内置角色类型 不能删除和编辑 )
RoleId string `json:"role_id"` // 角色id(uuid)
//DataPurview int `json:"data_purview"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
UserCount int `json:"user_count"` // 用户数
CantAllot int `json:"cant_allot"` // 是否可分配用户
SystemAccount string `json:"system_account" xorm:"system_account"` // 系统账号
}
// SystemRoleDetailRes 系统角色详情
type SystemRoleDetailRes struct {
Id int64 `json:"id"` // id
RoleName string `json:"role_name"` // 角色名称
RoleDesc string `json:"role_desc"` // 角色描述
State int `json:"state"` // 状态0禁用1启用
DataPurview int `json:"data_purview"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
Id int64 `json:"id"` // id
RoleName string `json:"role_name"` // 角色名称
RoleDesc string `json:"role_desc"` // 角色描述
State int `json:"state"` // 状态0禁用1启用
//DataPurview int `json:"data_purview"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
RoleId string `json:"role_id"` // 角色id(uuid)
CreatedTime jsontime.Time `json:"created_time"` // 角色创建时间
UpdatedTime jsontime.Time `json:"updated_time"` // 角色更新时间
......@@ -49,16 +49,16 @@ type SystemRoleListRes struct {
CreatedTime jsontime.Time `json:"created_time"` // 角色创建时间
RoleType int `json:"role_type"` // 角色类型(0 普通角色 1 内置角色类型 不能删除和编辑 )
RoleId string `json:"role_id"` // 角色id(uuid)
DataPurview int `json:"data_purview"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
UserCount int `json:"user_count"` // 用户数
CantAllot int `json:"cant_allot"` // 是否可分配用户
//DataPurview int `json:"data_purview"` // 数据权限:1-仅自己,2-本组织所有,3-全平台所有
UserCount int `json:"user_count"` // 用户数
CantAllot int `json:"cant_allot"` // 是否可分配用户
}
type SystemAllotUserList struct {
Id int32 `json:"id" ` // id
SystemAccount string `json:"system_account"` // 系统账号
IsAdmin int `json:"is_admin"` // 用户类型
ContactPhone string `json:"contact_phone"` // 联系人电话
Phone string `json:"phone"` // 联系人电话
OrganizationId string `json:"organization_id"` // 所属组织
OrganizationName string `json:"organization_name" xorm:"name"` // 所属组织
State int `json:"state"` // 状态0禁用1启用
......@@ -72,7 +72,7 @@ type SystemAllotUserListRes struct {
Id int32 `json:"id" ` // id
SystemAccount string `json:"system_account"` // 系统账号
IsAdmin int `json:"is_admin"` // 用户类型
ContactPhone string `json:"contact_phone"` // 联系人电话
Phone string `json:"phone"` // 联系人电话
OrganizationId string `json:"organization_id"` // 所属组织
OrganizationName string `json:"organization_name"` // 所属组织
State int `json:"state"` // 状态0禁用1启用
......
package controller
import (
"errors"
vd "github.com/bytedance/go-tagexpr/validator"
"github.com/gin-gonic/gin"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/request"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/router/middleware/header"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/service"
)
// CreateSystemRole 创建角色
func CreateSystemRole(c *gin.Context) {
params := request.CreateSystemRoleReq{}
if err := c.ShouldBindJSON(&params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), nil)
return
}
if err := vd.Validate(params); err != nil {
SendJsonResponse(c, err, "")
return
}
user := header.GetUser(c)
if user.Id == 0 {
SendJsonResponse(c, resp.LoginFail.ErrorDetail(errors.New("登录失败")), nil)
return
}
params.CreatedBy = user.Id
_, err := service.CreateSystemRole(params)
if err != nil {
SendJsonResponse(c, err, nil)
return
}
SendJsonResponse(c, resp.OK, nil)
}
// UpdateSystemRole 编辑角色
func UpdateSystemRole(c *gin.Context) {
params := request.UpdateSystemRoleReq{}
if err := c.ShouldBindJSON(&params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), nil)
return
}
if err := vd.Validate(params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), "")
return
}
user := header.GetUser(c)
if user.Id == 0 {
SendJsonResponse(c, resp.LoginFail.ErrorDetail(errors.New("登录失败")), nil)
return
}
params.UpdatedBy = user.Id
// params.UpdatedBy = "1746af3c-059d-4870-b076-6e78c617a142"
_, err := service.UpdateSystemRole(params)
if err != nil {
SendJsonResponse(c, err, nil)
return
}
SendJsonResponse(c, resp.OK, nil)
}
// SystemRoleState 修改角色状态
func SystemRoleState(c *gin.Context) {
params := request.SystemRoleStateReq{}
params.Id = c.Param("id")
params.State = c.Param("state")
if err := vd.Validate(params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), "")
return
}
_, err := service.SystemRoleState(params)
if err != nil {
SendJsonResponse(c, err, nil)
return
}
SendJsonResponse(c, resp.OK, nil)
}
// SystemRoleList 系统角色列表
func SystemRoleList(c *gin.Context) {
params := request.SystemRoleListReq{}
// 绑定分页数据
if err := c.ShouldBindQuery(&params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), nil)
return
}
user := header.GetUser(c)
if user.Id == 0 {
SendJsonResponse(c, resp.LoginFail.ErrorDetail(errors.New("登录失败")), nil)
return
}
//params.IsAdmin = user.IsAdmin
// 分页数据初始化 limit page Offset
//params.PageInfo = params.PageInfo.InitPage()
list, count, err := service.SystemRoleList(&params)
if err != nil {
SendJsonResponse(c, err, nil)
return
}
SendJsonPageResponse(c, err, list, count)
}
// SystemAllotUserList 角色可分配账户列表
func SystemAllotUserList(c *gin.Context) {
params := request.SystemAllotUserListReq{}
// 绑定分页数据
if err := c.ShouldBindQuery(&params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), nil)
return
}
// 分页数据初始化 limit page Offset
//params.PageInfo = params.PageInfo.InitPage()
list, count, err := service.SystemAllotUserList(&params)
if err != nil {
SendJsonResponse(c, err, nil)
return
}
SendJsonPageResponse(c, err, list, count)
}
// SystemRoleDetail 系统角色详情
func SystemRoleDetail(c *gin.Context) {
params := request.SystemRoleDetailReq{}
params.Id = c.Param("id")
if err := vd.Validate(params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), "")
return
}
result, err := service.SystemRoleDetail(params)
if err != nil {
SendJsonResponse(c, err, nil)
return
}
SendJsonResponse(c, resp.OK, result)
}
// SystemRoleAllotmentUser 给角色分配账户
func SystemRoleAllotmentUser(c *gin.Context) {
params := request.SystemRoleAllotmentUserReq{}
if err := c.ShouldBindJSON(&params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), nil)
return
}
if err := vd.Validate(params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), "")
return
}
err := service.SystemRoleAllotmentUser(&params)
if err != nil {
SendJsonResponse(c, err, nil)
return
}
SendJsonResponse(c, resp.OK, nil)
}
// DeleteSystemRole 删除角色
func DeleteSystemRole(c *gin.Context) {
params := request.DeleteSystemRoleReq{}
if err := c.ShouldBindJSON(&params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), nil)
return
}
if err := vd.Validate(params); err != nil {
SendJsonResponse(c, resp.InvalidParam.ErrorDetail(err), "")
return
}
err := service.DeleteSystemRole(params)
if err != nil {
SendJsonResponse(c, err, nil)
return
}
SendJsonResponse(c, resp.OK, nil)
}
......@@ -38,6 +38,8 @@ func Load(r *gin.Engine, middleware ...gin.HandlerFunc) {
InitOrganizationRouter(r)
// 初始化用户相关路由
InitSystemUserRouter(r)
// 初始化角色相关路由
InitSystemRoleRouter(r)
// 初始化菜单相关路由(r)
InitSystemMenuRouter(r)
// 初始化指标配置路由
......
package router
import (
"fmt"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/conf"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/controller"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/router/middleware/header"
"github.com/gin-gonic/gin"
)
// InitSystemRoleRouter 初始化角色相关路由
func InitSystemRoleRouter(e *gin.Engine) {
base := e.Group(fmt.Sprintf("%s/role", conf.Options.Prefix), header.SetContext)
{
base.PUT("create", controller.CreateSystemRole) // 添加系统角色
base.POST("update", controller.UpdateSystemRole) // 编辑系统角色
base.POST("state/:id/:state", controller.SystemRoleState) // 系统角色状态
base.GET("list", controller.SystemRoleList) // 系统角色列表
base.GET("detail/:id", controller.SystemRoleDetail) // 系统角色详情
base.POST("allotment/user", controller.SystemRoleAllotmentUser) // 角色分配账户
base.GET("allotment/list", controller.SystemAllotUserList) // 角色可分配账户列表
base.DELETE("delete", controller.DeleteSystemRole) // 删除系统角色
}
}
This diff is collapsed.
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