package controller import ( "net/http" "github.com/gin-gonic/gin" "github.com/mhaya/game/game_cluster/nodes/webadmin/entity" "github.com/mhaya/game/game_cluster/nodes/webadmin/service" ) type Role struct { } func NewRole() *Role { return &Role{} } // Add 新增角色 // @Summary 新增角色 // @Description 新增角色 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data body entity.RoleAddReq true "新增角色" // @Success 200 {object} entity.Response // @Router /v1/admin/role/add [post] func (r *Role) Add(ctx *gin.Context) { req := new(entity.RoleAddReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).Add(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // List 角色列表 // @Summary 角色列表 // @Description 角色列表 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data query entity.RoleListReq true "角色列表" // @Success 200 {object} entity.Response // @Router /v1/admin/role/list [get] func (r *Role) List(ctx *gin.Context) { req := new(entity.RoleListReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } list, err := new(service.Role).List(ctx, req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", "data": list, "count": req.Count, }) } // Update 修改角色 // @Summary 修改角色 // @Description 修改角色 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data body entity.RoleUpdateReq true "修改角色" // @Success 200 {object} entity.Response // @Router /v1/admin/role/update [post] func (r *Role) Update(ctx *gin.Context) { req := new(entity.RoleUpdateReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).Update(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // Del 删除角色 // @Summary 删除角色 // @Description 删除角色 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data query entity.RoleDelReq true "删除角色" // @Success 200 {object} entity.Response // @Router /v1/admin/role/del [get] func (r *Role) Del(ctx *gin.Context) { req := new(entity.RoleDelReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).Del(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // AddRoleAccess 添加角色权限 // @Summary 添加角色权限 // @Description 添加角色权限 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data body entity.RoleAccessAddReq true "添加角色权限" // @Success 200 {object} entity.Response // @Router /v1/admin/role/role_access/add [post] func (r *Role) AddRoleAccess(ctx *gin.Context) { req := new(entity.RoleAccessAddReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).AddRoleAccess(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // UpdateRoleAccess 修改角色权限 // @Summary 修改角色权限 // @Description 修改角色权限 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data body entity.RoleAccessUpdateReq true "修改角色权限" // @Success 200 {object} entity.Response // @Router /v1/admin/role/role_access/update [post] func (r *Role) UpdateRoleAccess(ctx *gin.Context) { req := new(entity.RoleAccessUpdateReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).UpdateRoleAccess(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // DelRoleAccess 删除角色权限 // @Summary 删除角色权限 // @Description 删除角色权限 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data query entity.RoleAccessDelReq true "删除角色权限" // @Success 200 {object} entity.Response // @Router /v1/admin/role/role_access/del [get] func (r *Role) DelRoleAccess(ctx *gin.Context) { req := new(entity.RoleAccessDelReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).DelRoleAccess(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // GetRoleAccessList 获取角色权限列表根据角色ID // @Summary 获取角色权限列表根据角色ID // @Description 获取角色权限列表根据角色ID // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data query entity.RoleAccessListReq true "获取角色权限列表根据角色ID" // @Success 200 {object} []entity.AccessResp // @Router /v1/admin/role/role_access/list [get] func (r *Role) GetRoleAccessList(ctx *gin.Context) { req := new(entity.RoleAccessListReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } list, err := new(service.Role).GetRoleAccessList(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", "data": list, }) } // AddAccess 添加权限路由 // @Summary 添加权限路由 // @Description 添加权限路由 // @Tags 角色-路由 // @Accept application/json // @Produce application/json // @Param data body entity.AccessAddReq true "添加权限路由" // @Success 200 {object} entity.Response // @Router /v1/admin/role/access/add [post] func (r *Role) AddAccess(ctx *gin.Context) { req := new(entity.AccessAddReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).AddAccess(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // DelAccess // @Summary 删除权限路由 // @Description 删除权限路由 // @Tags 角色-路由 // @Accept application/json // @Produce application/json // @Param data query entity.AccessDelReq true "删除权限路由" // @Success 200 {object} entity.Response // @Router /v1/admin/role/access/del [Get] func (r *Role) DelAccess(ctx *gin.Context) { req := new(entity.AccessDelReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).DelAccess(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // UpdateAccess 修改权限路由 // @Summary 修改权限路由 // @Description 修改权限路由 // @Tags 角色-路由 // @Accept application/json // @Produce application/json // @Param data body entity.AccessUpdateReq true "修改权限路由" // @Success 200 {object} entity.Response // @Router /v1/admin/role/access/update [post] func (r *Role) UpdateAccess(ctx *gin.Context) { req := new(entity.AccessUpdateReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).UpdateAccess(ctx, *req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // ListAccess 获取权限路由列表 // @Summary 获取权限路由列表 // @Description 获取权限路由列表 // @Tags 角色-路由 // @Accept application/json // @Produce application/json // @Param data query entity.AccessListReq true "获取权限路由列表" // @Success 200 {object} []entity.AccessResp // @Router /v1/admin/role/access/list [get] func (r *Role) ListAccess(ctx *gin.Context) { req := new(entity.AccessListReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } list, err := new(service.Role).ListAccess(ctx, req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", "data": list, "total": req.Count, }) } // GetAdminRole // @Summary 获取该管理员的权限详情 // @Description 获取该管理员的权限详情 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data query entity.AdminBindRoleReq true "获取角色" // @Success 200 {object} entity.AdminBindRoleResp // @Router /v1/admin/role/admin_role_info [post] func (r *Role) GetAdminRole(ctx *gin.Context) { req := new(entity.AdminBindRoleReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } list, err := new(service.Role).GetAdminRole(ctx, req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", "data": list, }) return } // AdminBindRole 绑定角色 // @Summary 绑定角色 // @Description 绑定角色 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data body entity.AdminBindRoleReq true "绑定角色" // @Success 200 {object} entity.Response // @Router /v1/admin/role/admin_bind_role [post] func (r *Role) AdminBindRole(ctx *gin.Context) { req := new(entity.AdminBindRoleReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).AdminBindRole(ctx, req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) } // AdminUnBindRole 取消绑定角色 // @Summary 取消绑定角色 // @Description 取消绑定角色 // @Tags 角色 // @Accept application/json // @Produce application/json // @Param data body entity.AdminBindRoleReq true "取消绑定角色" // @Success 200 {object} entity.Response // @Router /v1/admin/role/admin_unbind_role [post] func (r *Role) AdminUnBindRole(ctx *gin.Context) { req := new(entity.AdminBindRoleReq) if err := ctx.ShouldBindJSON(&req); err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } err := new(service.Role).AdminUnBindRole(ctx, req) if err != nil { ctx.JSON(200, gin.H{ "code": 400, "msg": err.Error(), }) return } ctx.JSON(http.StatusOK, gin.H{ "code": 200, "msg": "success", }) }