init: import web_huangguo2 server project
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,400 @@
|
||||
package web_acc
|
||||
|
||||
import (
|
||||
"videoweb/pub/common"
|
||||
"videoweb/pub/common/pageopt"
|
||||
"videoweb/pub/common/srvdef"
|
||||
"videoweb/pub/models/mwacc"
|
||||
"videoweb/pub/pubdef"
|
||||
"videoweb/web/service/srv_mwacc"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
)
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-列表
|
||||
// @Description 角色-列表
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param param body pubdef.Page true "参数列表"
|
||||
// @Success 200 {object} MwRoleListResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/list [GET]
|
||||
func RoleGetList(c *gin.Context) {
|
||||
var req pubdef.Page
|
||||
|
||||
if err := c.ShouldBindQuery(&req); err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
if req.PageNum <= 0 {
|
||||
req.PageNum = 1
|
||||
}
|
||||
if req.PageSize <= 0 {
|
||||
req.PageSize = 10
|
||||
}
|
||||
|
||||
skip := (req.PageNum - 1) * req.PageSize
|
||||
limit := req.PageSize
|
||||
|
||||
// 获取分页信息
|
||||
var mats []pageopt.Matcher
|
||||
dbRoleRec, err := mwacc.GetRoleList(c, skip, limit, mats...)
|
||||
if err != nil {
|
||||
common.ServerJSON(c, srvdef.Failure, "")
|
||||
return
|
||||
}
|
||||
|
||||
// 获取总条数
|
||||
roleCount, err := mwacc.RoleCountByFilter(c, bson.M{})
|
||||
|
||||
if err != nil {
|
||||
common.ServerJSON(c, srvdef.Failure, "")
|
||||
return
|
||||
}
|
||||
|
||||
webRoleRec := make([]*MwRoleRec, 0)
|
||||
for _, v := range dbRoleRec {
|
||||
webRoleRec = append(webRoleRec, &MwRoleRec{
|
||||
Id: v.Id,
|
||||
Name: v.Name,
|
||||
Desc: v.Desc,
|
||||
IsEnb: v.IsEnb,
|
||||
ApiMenus: v.ApiMenus[:],
|
||||
CreatedAt: v.CreatedAt,
|
||||
UpdatedAt: v.UpdatedAt,
|
||||
})
|
||||
}
|
||||
|
||||
// 返回正确信息
|
||||
common.ServerJSON(c, srvdef.Success, MwRoleListResp{TotalCount: roleCount, RoleRecs: webRoleRec})
|
||||
return
|
||||
}
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-添加
|
||||
// @Description 角色-添加
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param param body MwRoleAddReq true "参数列表"
|
||||
// @Success 200 {object} MwRoleAddResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/add [POST]
|
||||
func RoleAdd(c *gin.Context) {
|
||||
var req MwRoleAddReq
|
||||
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
ok, _ := mwacc.RoleAdd(c, req.Name, req.Desc, req.IsEnb)
|
||||
if !ok {
|
||||
common.ServerJSON(c, srvdef.Failure, "")
|
||||
return
|
||||
}
|
||||
// 返回正确信息
|
||||
common.ServerJSON(c, srvdef.Success, MwRoleAddResp{Result: true})
|
||||
return
|
||||
}
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-删除
|
||||
// @Description 角色-删除
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param param body MwRoleDelReq true "参数列表"
|
||||
// @Success 200 {object} MwRoleDelResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/del [POST]
|
||||
func RoleDel(c *gin.Context) {
|
||||
var req MwRoleDelReq
|
||||
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
ok, err := srv_mwacc.RoleDel(c, req.Id)
|
||||
if !ok {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
common.ServerJSON(c, srvdef.Success, MwRoleDelResp{Result: true})
|
||||
return
|
||||
}
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-获取信息
|
||||
// @Description 角色-获取信息
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param param body MwRoleGetInfoReq true "参数列表"
|
||||
// @Success 200 {object} MwRoleGetInfoResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/getinfo [GET]
|
||||
func RoleGetInfo(c *gin.Context) {
|
||||
|
||||
var req MwRoleGetInfoReq
|
||||
|
||||
if err := c.ShouldBindQuery(&req); err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
roleInfo, err := srv_mwacc.RoleGetInfo(c, req.Id)
|
||||
|
||||
if err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resq := &MwRoleGetInfoResp{
|
||||
RoleRec: &MwRoleRec{
|
||||
Id: roleInfo.Id,
|
||||
Name: roleInfo.Name,
|
||||
Desc: roleInfo.Desc,
|
||||
IsEnb: roleInfo.IsEnb,
|
||||
ApiMenus: roleInfo.ApiMenus[:],
|
||||
CreatedAt: roleInfo.CreatedAt,
|
||||
UpdatedAt: roleInfo.UpdatedAt,
|
||||
},
|
||||
}
|
||||
common.ServerJSON(c, srvdef.Success, resq)
|
||||
return
|
||||
}
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-更新
|
||||
// @Description 角色-更新
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param param body MwRoleUpReq true "参数列表"
|
||||
// @Success 200 {object} MwRoleUpResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/up [POST]
|
||||
func RoleUp(c *gin.Context) {
|
||||
|
||||
var req MwRoleUpReq
|
||||
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
// RoleUp
|
||||
_, err := srv_mwacc.RoleUp(c, req.Id, req.Name, req.Desc, req.IsEnb)
|
||||
if err != nil {
|
||||
common.ServerJSON(c, srvdef.Failure, MwRoleUpResp{Result: false})
|
||||
return
|
||||
}
|
||||
|
||||
common.ServerJSON(c, srvdef.Success, MwRoleUpResp{Result: true})
|
||||
return
|
||||
}
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-使能
|
||||
// @Description 角色-使能
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param param body MwRoleEnableReq true "参数列表"
|
||||
// @Success 200 {object} MwRoleEnableResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/enable [POST]
|
||||
func RoleEnable(c *gin.Context) {
|
||||
|
||||
var req MwRoleEnableReq
|
||||
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
_, err := srv_mwacc.RoleEnable(c, req.Id, req.IsEnb)
|
||||
if err != nil {
|
||||
common.ServerJSON(c, err.Code, err.Msg)
|
||||
return
|
||||
}
|
||||
common.ServerJSON(c, srvdef.Success, MwRoleEnableResp{Result: true})
|
||||
return
|
||||
}
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-下拉列表
|
||||
// @Description 角色-下拉列表
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} MwRoleDropResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/drop [POST]
|
||||
func RoleGetDrop(c *gin.Context) {
|
||||
data, _ := mwacc.RoleDrop(c)
|
||||
|
||||
roleDropArr := make([]*MwRoleDrop, 0)
|
||||
for _, v := range data {
|
||||
roleDropArr = append(roleDropArr, &MwRoleDrop{Id: v.Id, Name: v.Name})
|
||||
}
|
||||
common.ServerJSON(c, srvdef.Success, MwRoleDropResp{RoleDrop: roleDropArr})
|
||||
return
|
||||
}
|
||||
|
||||
func DbRouterToWebRouter(dbRouter *mwacc.Router) (webRouter *Router) {
|
||||
if dbRouter == nil {
|
||||
return
|
||||
}
|
||||
|
||||
webRouter = &Router{
|
||||
Path: dbRouter.Path,
|
||||
Component: dbRouter.Component,
|
||||
Redirect: dbRouter.Redirect,
|
||||
Name: dbRouter.Name,
|
||||
IsShow: dbRouter.IsShow,
|
||||
Hidden: dbRouter.Hidden,
|
||||
Meta: &Router_Meta{
|
||||
Title: dbRouter.Meta.Title,
|
||||
Icon: dbRouter.Meta.Icon,
|
||||
NoCache: dbRouter.Meta.NoCache,
|
||||
},
|
||||
Children: make([]*Router, 0),
|
||||
ApiUrl: make([]*Router_ApiUrl, 0),
|
||||
}
|
||||
for _, v := range dbRouter.Children {
|
||||
webRouter.Children = append(webRouter.Children, DbRouterToWebRouter(&v))
|
||||
}
|
||||
for _, v := range dbRouter.ApiUrl {
|
||||
webRouter.ApiUrl = append(webRouter.ApiUrl, &Router_ApiUrl{
|
||||
Url: v.Url[:],
|
||||
Desc: v.Desc,
|
||||
Status: v.Status,
|
||||
Method: v.Method[:],
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-获取权限
|
||||
// @Description 角色-获取权限
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param param body MwRoleGetAuthReq true "参数列表"
|
||||
// @Success 200 {object} MwRoleGetAuthResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/getauth [GET]
|
||||
func RoleGetAuth(c *gin.Context) {
|
||||
var req MwRoleGetAuthReq
|
||||
|
||||
if err := c.ShouldBindQuery(&req); err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
roleInfo, err := srv_mwacc.RoleGetInfo(c, req.Id)
|
||||
if err != nil {
|
||||
common.ServerJSON(c, srvdef.Failure, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if roleInfo == nil {
|
||||
common.ServerJSON(c, srvdef.Failure, "没找到角色")
|
||||
return
|
||||
}
|
||||
|
||||
if roleInfo.Id == 0 {
|
||||
common.ServerJSON(c, srvdef.Failure, "没找到角色2")
|
||||
return
|
||||
}
|
||||
|
||||
resq := &MwRoleGetAuthResp{
|
||||
Id: req.Id,
|
||||
Router: make([]*Router, 0),
|
||||
}
|
||||
|
||||
for _, v := range roleInfo.Router {
|
||||
|
||||
resq.Router = append(resq.Router, DbRouterToWebRouter(&v))
|
||||
}
|
||||
|
||||
common.ServerJSON(c, srvdef.Success, resq)
|
||||
return
|
||||
}
|
||||
|
||||
// 网站Router转数据库Router
|
||||
func WebRouterToDbRouter(webRouter *Router) (dbRouter *mwacc.Router) {
|
||||
|
||||
if webRouter == nil {
|
||||
return
|
||||
}
|
||||
|
||||
dbRouter = &mwacc.Router{
|
||||
Path: webRouter.Path,
|
||||
Component: webRouter.Component,
|
||||
Redirect: webRouter.Redirect,
|
||||
Name: webRouter.Name,
|
||||
IsShow: webRouter.IsShow,
|
||||
Hidden: webRouter.Hidden,
|
||||
Meta: mwacc.Meta{
|
||||
Title: webRouter.Meta.Title,
|
||||
Icon: webRouter.Meta.Icon,
|
||||
NoCache: webRouter.Meta.NoCache,
|
||||
},
|
||||
Children: make([]mwacc.Router, 0),
|
||||
ApiUrl: make([]mwacc.Apiurl, 0),
|
||||
}
|
||||
for _, v := range webRouter.Children {
|
||||
dbRouter.Children = append(dbRouter.Children, *WebRouterToDbRouter(v))
|
||||
}
|
||||
for _, v := range webRouter.ApiUrl {
|
||||
dbRouter.ApiUrl = append(dbRouter.ApiUrl, mwacc.Apiurl{
|
||||
Url: v.Url[:],
|
||||
Desc: v.Desc,
|
||||
Status: v.Status,
|
||||
Method: v.Method[:],
|
||||
})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// @Tags 角色
|
||||
// @Summary 角色-更新权限
|
||||
// @Description 角色-更新权限
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param param body MwRoleUpAuthReq true "参数列表"
|
||||
// @Success 200 {object} MwRoleUpAuthResp "成功"
|
||||
// @Failure 400 {string} string "获取失败的返回结果"
|
||||
// @Security ApiKeyAuth
|
||||
// @Router /api/web/role/upauth [GET]
|
||||
func RoleUpAuth(c *gin.Context) {
|
||||
|
||||
var req MwRoleUpAuthReq
|
||||
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
common.ServerJSON(c, srvdef.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
dataSave := make([]*mwacc.Router, 0)
|
||||
for _, v := range req.Router {
|
||||
dataSave = append(dataSave, WebRouterToDbRouter(v))
|
||||
}
|
||||
|
||||
_, err := srv_mwacc.UpAuth(c, req.Id, dataSave)
|
||||
if err != nil {
|
||||
common.ServerJSON(c, srvdef.Failure, MwRoleUpAuthResp{Result: false})
|
||||
return
|
||||
}
|
||||
|
||||
// auth.ClearRoleMap()
|
||||
common.ServerJSON(c, srvdef.Success, MwRoleUpAuthResp{Result: true})
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user