mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-21 10:13:01 +00:00
feat✨ 结构统一调整
This commit is contained in:
@@ -2,12 +2,12 @@ package apis
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/captcha"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type System struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
func (e System) GenerateCaptchaHandler(c *gin.Context) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
@@ -11,11 +12,10 @@ import (
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type SysApi struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// GetSysApiList 获取接口管理列表
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package apis
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/app/admin/models"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type SysConfig struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
func (e SysConfig) GetSysConfigList(c *gin.Context) {
|
||||
|
||||
@@ -6,16 +6,16 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type SysDept struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// @Summary 分页部门列表数据
|
||||
|
||||
@@ -5,17 +5,17 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
common "go-admin/common/models"
|
||||
)
|
||||
|
||||
type SysDictData struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// @Summary 字典数据列表
|
||||
|
||||
@@ -5,17 +5,17 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
common "go-admin/common/models"
|
||||
)
|
||||
|
||||
type SysDictType struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// @Summary 字典类型列表数据
|
||||
|
||||
@@ -5,15 +5,15 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type SysLoginLog struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
func (e SysLoginLog) GetSysLoginLogList(c *gin.Context) {
|
||||
|
||||
+58
-79
@@ -5,17 +5,18 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type SysMenu struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// GetSysMenuList Menu列表数据
|
||||
// @Summary Menu列表数据
|
||||
// @Description 获取JSON
|
||||
// @Tags 菜单
|
||||
@@ -65,28 +66,20 @@ func (e SysMenu) GetSysMenuList(c *gin.Context) {
|
||||
// @Security Bearer
|
||||
func (e SysMenu) GetSysMenu(c *gin.Context) {
|
||||
control := new(dto.SysMenuById)
|
||||
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
|
||||
db, err := e.GetOrm()
|
||||
s := new(service.SysMenu)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control, nil).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
//查看详情
|
||||
err = control.Bind(c)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
e.Error(http.StatusInternalServerError, err, err.Error())
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
var object models.SysMenu
|
||||
|
||||
serviceSysMenu := service.SysMenu{}
|
||||
serviceSysMenu.Log = log
|
||||
serviceSysMenu.Orm = db
|
||||
err = serviceSysMenu.GetSysMenu(control, &object)
|
||||
err = s.GetSysMenu(control, &object)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "查询失败")
|
||||
return
|
||||
@@ -179,58 +172,45 @@ func (e SysMenu) UpdateSysMenu(c *gin.Context) {
|
||||
// @Router /api/v1/menu/ [delete]
|
||||
func (e SysMenu) DeleteSysMenu(c *gin.Context) {
|
||||
control := new(dto.SysMenuById)
|
||||
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
|
||||
db, err := e.GetOrm()
|
||||
s := new(service.SysMenu)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
//删除操作
|
||||
err = control.Bind(c)
|
||||
err = s.RemoveSysMenu(control).Error
|
||||
if err != nil {
|
||||
log.Errorf("Bind error: %s", err)
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
return
|
||||
}
|
||||
|
||||
serviceSysMenu := service.SysMenu{}
|
||||
serviceSysMenu.Orm = db
|
||||
serviceSysMenu.Log = log
|
||||
err = serviceSysMenu.RemoveSysMenu(control)
|
||||
if err != nil {
|
||||
log.Errorf("RemoveSysMenu error, %s", err)
|
||||
e.Logger.Errorf("RemoveSysMenu error, %s", err)
|
||||
e.Error(http.StatusInternalServerError, err, "删除失败")
|
||||
return
|
||||
}
|
||||
e.OK(control.GetId(), "删除成功")
|
||||
}
|
||||
|
||||
// GetMenuRole 根据角色名称获取菜单列表数据(左菜单使用)
|
||||
// @Summary 根据角色名称获取菜单列表数据(左菜单使用)
|
||||
// GetMenuRole 根据登录角色名称获取菜单列表数据(左菜单使用)
|
||||
// @Summary 根据登录角色名称获取菜单列表数据(左菜单使用)
|
||||
// @Description 获取JSON
|
||||
// @Tags 菜单
|
||||
// @Param id path int true "id"
|
||||
// @Success 200 {string} string "{"code": 200, "data": [...]}"
|
||||
// @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}"
|
||||
// @Router /api/v1/menurole [get]
|
||||
// @Security Bearer
|
||||
func (e SysMenu) GetMenuRole(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
db, err := e.GetOrm()
|
||||
s := new(service.SysMenu)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
serviceSysMenu := service.SysMenu{}
|
||||
serviceSysMenu.Log = log
|
||||
serviceSysMenu.Orm = db
|
||||
result, err := serviceSysMenu.SetMenuRole(user.GetRoleName(c))
|
||||
result, err := s.SetMenuRole(user.GetRoleName(c))
|
||||
|
||||
if err != nil {
|
||||
e.Error(http.StatusInternalServerError, err, "查询失败")
|
||||
@@ -250,19 +230,21 @@ func (e SysMenu) GetMenuRole(c *gin.Context) {
|
||||
// @Router /api/v1/menuids/{id} [get]
|
||||
// @Security Bearer
|
||||
func (e SysMenu) GetMenuIDS(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
db, err := e.GetOrm()
|
||||
s := new(service.SysMenu)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
var data models.RoleMenu
|
||||
data.RoleName = c.GetString("role")
|
||||
data.UpdateBy = user.GetUserId(c)
|
||||
result, err := data.GetIDS(db)
|
||||
result, err := data.GetIDS(s.Orm)
|
||||
if err != nil {
|
||||
log.Errorf("GetIDS error, %s", err.Error())
|
||||
e.Logger.Errorf("GetIDS error, %s", err.Error())
|
||||
e.Error(http.StatusInternalServerError, err, "获取失败")
|
||||
return
|
||||
}
|
||||
@@ -280,38 +262,35 @@ func (e SysMenu) GetMenuIDS(c *gin.Context) {
|
||||
// @Router /api/v1/menuTreeselect [get]
|
||||
// @Security Bearer
|
||||
func (e SysMenu) GetMenuTreeSelect(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
db, err := e.GetOrm()
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
s := new(service.SysMenu)
|
||||
sr := new(service.SysRole)
|
||||
d := new(dto.SelectRole)
|
||||
|
||||
err = c.BindUri(d)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
MakeService(&s.Service).
|
||||
MakeService(&sr.Service).
|
||||
Bind(&d, nil).
|
||||
Errors
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
e.Logger.Error(err)
|
||||
e.Error(http.StatusUnprocessableEntity, err, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
serviceSysMenu := service.SysMenu{}
|
||||
serviceSysMenu.Log = log
|
||||
serviceSysMenu.Orm = db
|
||||
result, err := serviceSysMenu.SetSysMenuLabel()
|
||||
result, err := s.SetSysMenuLabel()
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "查询失败")
|
||||
return
|
||||
}
|
||||
s := service.SysRole{}
|
||||
s.Log = log
|
||||
s.Orm = db
|
||||
menuIds, err := s.GetRoleMenuId(db, d.RoleId)
|
||||
if err != nil {
|
||||
log.Errorf("GetIDS error, %s", err.Error())
|
||||
e.Error(http.StatusInternalServerError, err, "")
|
||||
return
|
||||
|
||||
menuIds := make([]int, 0)
|
||||
if d.RoleId != 0 {
|
||||
menuIds, err = sr.GetRoleMenuId(d.RoleId)
|
||||
if err != nil {
|
||||
e.Logger.Errorf("GetRoleMenuId error, %s", err.Error())
|
||||
e.Error(http.StatusInternalServerError, err, "")
|
||||
return
|
||||
}
|
||||
}
|
||||
e.OK(gin.H{
|
||||
"menus": result,
|
||||
|
||||
@@ -5,15 +5,15 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type SysOperaLog struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
func (e SysOperaLog) GetSysOperaLogList(c *gin.Context) {
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package apis
|
||||
|
||||
import (
|
||||
"go-admin/app/admin/models"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type SysPost struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// @Summary 岗位列表数据
|
||||
|
||||
+41
-60
@@ -1,21 +1,22 @@
|
||||
package apis
|
||||
|
||||
import (
|
||||
"github.com/go-admin-team/go-admin-core/sdk"
|
||||
"go-admin/app/admin/models"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/apis"
|
||||
"go-admin/common/global"
|
||||
)
|
||||
|
||||
type SysRole struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// @Summary 角色列表数据
|
||||
@@ -109,38 +110,27 @@ func (e SysRole) GetSysRole(c *gin.Context) {
|
||||
// @Router /api/v1/role [post]
|
||||
// @Security Bearer
|
||||
func (e SysRole) InsertSysRole(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
control := new(dto.SysRoleControl)
|
||||
db, err := e.GetOrm()
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
//新增操作
|
||||
err = control.Bind(c)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
return
|
||||
}
|
||||
object, err := control.Generate()
|
||||
if err != nil {
|
||||
e.Error(http.StatusInternalServerError, err, "模型生成失败")
|
||||
return
|
||||
}
|
||||
// 设置创建人
|
||||
object.CreateBy = user.GetUserId(c)
|
||||
if object.Status == "" {
|
||||
object.Status = "2"
|
||||
}
|
||||
|
||||
s := service.SysRole{}
|
||||
s.Orm = db
|
||||
s.Log = log
|
||||
err = s.InsertSysRole(object)
|
||||
control := new(dto.SysRoleControl)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
// 设置创建人
|
||||
control.CreateBy = user.GetUserId(c)
|
||||
if control.Status == "" {
|
||||
control.Status = "2"
|
||||
}
|
||||
|
||||
err = s.InsertSysRole(control)
|
||||
if err != nil {
|
||||
e.Logger.Error(err)
|
||||
e.Error(http.StatusInternalServerError, err, "创建失败")
|
||||
return
|
||||
}
|
||||
@@ -149,9 +139,10 @@ func (e SysRole) InsertSysRole(c *gin.Context) {
|
||||
e.Error(http.StatusInternalServerError, err, "")
|
||||
return
|
||||
}
|
||||
e.OK(object.GetId(), "创建成功")
|
||||
e.OK(control.GetId(), "创建成功")
|
||||
}
|
||||
|
||||
// UpdateSysRole 修改用户角色
|
||||
// @Summary 修改用户角色
|
||||
// @Description 获取JSON
|
||||
// @Tags 角色/Role
|
||||
@@ -163,34 +154,24 @@ func (e SysRole) InsertSysRole(c *gin.Context) {
|
||||
// @Router /api/v1/role/{id} [put]
|
||||
// @Security Bearer
|
||||
func (e SysRole) UpdateSysRole(c *gin.Context) {
|
||||
e.Context = c
|
||||
log := e.GetLogger()
|
||||
control := new(dto.SysRoleControl)
|
||||
db, err := e.GetOrm()
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
//更新操作
|
||||
err = control.Bind(c)
|
||||
if err != nil {
|
||||
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
|
||||
return
|
||||
}
|
||||
object, err := control.Generate()
|
||||
if err != nil {
|
||||
e.Error(http.StatusInternalServerError, err, "模型生成失败")
|
||||
return
|
||||
}
|
||||
object.UpdateBy = user.GetUserId(c)
|
||||
|
||||
s := service.SysRole{}
|
||||
s.Orm = db
|
||||
s.Log = log
|
||||
err = s.UpdateSysRole(object)
|
||||
control := new(dto.SysRoleControl)
|
||||
err := e.MakeContext(c).
|
||||
MakeOrm().
|
||||
Bind(control).
|
||||
MakeService(&s.Service).
|
||||
Errors
|
||||
if err != nil {
|
||||
log.Error(err)
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
cb :=sdk.Runtime.GetCasbinKey(c.Request.Host)
|
||||
|
||||
control.SetUpdateBy(user.GetUserId(c))
|
||||
|
||||
err = s.UpdateSysRole(control,cb)
|
||||
if err != nil {
|
||||
e.Logger.Error(err)
|
||||
return
|
||||
}
|
||||
_, err = global.LoadPolicy(c)
|
||||
@@ -198,7 +179,7 @@ func (e SysRole) UpdateSysRole(c *gin.Context) {
|
||||
e.Error(http.StatusInternalServerError, err, "")
|
||||
return
|
||||
}
|
||||
e.OK(object.GetId(), "更新成功")
|
||||
e.OK(control.GetId(), "更新成功")
|
||||
}
|
||||
|
||||
// @Summary 删除用户角色
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
"github.com/google/uuid"
|
||||
@@ -12,12 +13,11 @@ import (
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
"go-admin/common/apis"
|
||||
common "go-admin/common/models"
|
||||
)
|
||||
|
||||
type SysUser struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// @Summary 列表用户信息数据
|
||||
|
||||
@@ -15,11 +15,10 @@ import (
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/models/tools"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type Gen struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
func (e Gen) Preview(c *gin.Context) {
|
||||
|
||||
@@ -5,17 +5,17 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models/tools"
|
||||
"go-admin/common/apis"
|
||||
)
|
||||
|
||||
type SysTable struct {
|
||||
apis.Api
|
||||
api.Api
|
||||
}
|
||||
|
||||
// GetSysTableList 分页列表数据
|
||||
@@ -348,4 +348,4 @@ func (e *SysTable) DeleteSysTables(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
e.OK(nil, "删除成功")
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ type SysMenu struct {
|
||||
DataScope string `json:"dataScope" gorm:"-"`
|
||||
Params string `json:"params" gorm:"-"`
|
||||
RoleId int `gorm:"-"`
|
||||
Children []SysMenu `json:"children" gorm:"-"`
|
||||
Children []SysMenu `json:"children,omitempty" gorm:"-"`
|
||||
IsSelect bool `json:"is_select" gorm:"-"`
|
||||
models.ControlBy
|
||||
models.ModelTime
|
||||
|
||||
@@ -3,18 +3,19 @@ package models
|
||||
import "go-admin/common/models"
|
||||
|
||||
type SysRole struct {
|
||||
RoleId int `json:"roleId" gorm:"primaryKey;autoIncrement"` // 角色编码
|
||||
RoleName string `json:"roleName" gorm:"size:128;"` // 角色名称
|
||||
Status string `json:"status" gorm:"size:4;"` //
|
||||
RoleKey string `json:"roleKey" gorm:"size:128;"` //角色代码
|
||||
RoleSort int `json:"roleSort" gorm:""` //角色排序
|
||||
Flag string `json:"flag" gorm:"size:128;"` //
|
||||
Remark string `json:"remark" gorm:"size:255;"` //备注
|
||||
Admin bool `json:"admin" gorm:"size:4;"`
|
||||
DataScope string `json:"dataScope" gorm:"size:128;"`
|
||||
Params string `json:"params" gorm:"-"`
|
||||
MenuIds []int `json:"menuIds" gorm:"-"`
|
||||
DeptIds []int `json:"deptIds" gorm:"-"`
|
||||
RoleId int `json:"roleId" gorm:"primaryKey;autoIncrement"` // 角色编码
|
||||
RoleName string `json:"roleName" gorm:"size:128;"` // 角色名称
|
||||
Status string `json:"status" gorm:"size:4;"` //
|
||||
RoleKey string `json:"roleKey" gorm:"size:128;"` //角色代码
|
||||
RoleSort int `json:"roleSort" gorm:""` //角色排序
|
||||
Flag string `json:"flag" gorm:"size:128;"` //
|
||||
Remark string `json:"remark" gorm:"size:255;"` //备注
|
||||
Admin bool `json:"admin" gorm:"size:4;"`
|
||||
DataScope string `json:"dataScope" gorm:"size:128;"`
|
||||
Params string `json:"params" gorm:"-"`
|
||||
MenuIds []int `json:"menuIds" gorm:"-"`
|
||||
DeptIds []int `json:"deptIds" gorm:"-"`
|
||||
SysMenu []SysMenu `json:"sysMenu" gorm:"many2many:sys_role_menu;foreignKey:RoleId;joinForeignKey:role_id;references:MenuId;joinReferences:menu_id;"`
|
||||
models.ControlBy
|
||||
models.ModelTime
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package dto
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"go-admin/app/admin/models"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/common/dto"
|
||||
common "go-admin/common/models"
|
||||
)
|
||||
@@ -25,16 +25,6 @@ func (m *SysConfigSearch) GetNeedSearch() interface{} {
|
||||
return *m
|
||||
}
|
||||
|
||||
// Bind 映射上下文中的结构体数据
|
||||
//func (m *SysConfigSearch) Bind(ctx *gin.Context) error {
|
||||
// log := api.GetRequestLogger(ctx)
|
||||
// err := ctx.ShouldBind(m)
|
||||
// if err != nil {
|
||||
// log.Debugf("ShouldBind error: %s", err.Error())
|
||||
// }
|
||||
// return err
|
||||
//}
|
||||
|
||||
// SysConfigControl 增、改使用的结构体
|
||||
type SysConfigControl struct {
|
||||
ID int `uri:"Id" comment:"编码"` // 编码
|
||||
|
||||
@@ -3,6 +3,7 @@ package dto
|
||||
import (
|
||||
"encoding/json"
|
||||
"go-admin/app/admin/models"
|
||||
common "go-admin/common/models"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
@@ -42,16 +43,26 @@ func (m *SysRoleSearch) Bind(ctx *gin.Context) error {
|
||||
|
||||
// SysConfigControl 增、改使用的结构体
|
||||
type SysRoleControl struct {
|
||||
RoleId int `uri:"id" comment:"角色编码"` // 角色编码
|
||||
RoleName string `form:"roleName" comment:"角色名称"` // 角色名称
|
||||
Status string `form:"status" comment:"状态"` // 状态
|
||||
RoleKey string `form:"roleKey" comment:"角色代码"` // 角色代码
|
||||
RoleSort int `form:"roleSort" comment:"角色排序"` // 角色排序
|
||||
Flag string `form:"flag" comment:"标记"` // 标记
|
||||
Remark string `form:"remark" comment:"备注"` // 备注
|
||||
Admin bool `form:"admin" comment:"是否管理员"`
|
||||
DataScope string `form:"dataScope"`
|
||||
MenuIds []int `json:"menuIds"`
|
||||
RoleId int `uri:"id" comment:"角色编码"` // 角色编码
|
||||
RoleName string `form:"roleName" comment:"角色名称"` // 角色名称
|
||||
Status string `form:"status" comment:"状态"` // 状态
|
||||
RoleKey string `form:"roleKey" comment:"角色代码"` // 角色代码
|
||||
RoleSort int `form:"roleSort" comment:"角色排序"` // 角色排序
|
||||
Flag string `form:"flag" comment:"标记"` // 标记
|
||||
Remark string `form:"remark" comment:"备注"` // 备注
|
||||
Admin bool `form:"admin" comment:"是否管理员"`
|
||||
DataScope string `form:"dataScope"`
|
||||
SysMenu []models.SysMenu `form:"sysMenu"`
|
||||
MenuIds []int `form:"menuIds"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *SysRoleControl) SetCreateBy(id int) {
|
||||
s.CreateBy = id
|
||||
}
|
||||
|
||||
func (s *SysRoleControl) SetUpdateBy(id int) {
|
||||
s.UpdateBy = id
|
||||
}
|
||||
|
||||
// Bind 映射上下文中的结构体数据
|
||||
@@ -76,19 +87,20 @@ func (s *SysRoleControl) Bind(ctx *gin.Context) error {
|
||||
}
|
||||
|
||||
// Generate 结构体数据转化 从 SysConfigControl 至 system.SysConfig 对应的模型
|
||||
func (s *SysRoleControl) Generate() (*models.SysRole, error) {
|
||||
return &models.SysRole{
|
||||
RoleId: s.RoleId,
|
||||
RoleName: s.RoleName,
|
||||
Status: s.Status,
|
||||
RoleKey: s.RoleKey,
|
||||
RoleSort: s.RoleSort,
|
||||
Flag: s.Flag,
|
||||
Remark: s.Remark,
|
||||
Admin: s.Admin,
|
||||
DataScope: s.DataScope,
|
||||
MenuIds: s.MenuIds,
|
||||
}, nil
|
||||
func (s *SysRoleControl) Generate(model *models.SysRole) {
|
||||
if s.RoleId != 0 {
|
||||
model.RoleId = s.RoleId
|
||||
}
|
||||
model.RoleName = s.RoleName
|
||||
model.Status = s.Status
|
||||
model.RoleKey = s.RoleKey
|
||||
model.RoleSort = s.RoleSort
|
||||
model.Flag = s.Flag
|
||||
model.Remark = s.Remark
|
||||
model.Admin = s.Admin
|
||||
model.DataScope = s.DataScope
|
||||
model.SysMenu = s.SysMenu
|
||||
|
||||
}
|
||||
|
||||
// GetId 获取数据对应的ID
|
||||
|
||||
@@ -3,15 +3,15 @@ package service
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/runtime"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/runtime"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysApi struct {
|
||||
|
||||
@@ -2,10 +2,10 @@ package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
|
||||
"gorm.io/gorm"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysDept struct {
|
||||
|
||||
@@ -2,13 +2,13 @@ package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"go-admin/app/admin/models"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysDictData struct {
|
||||
|
||||
@@ -2,13 +2,13 @@ package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"go-admin/app/admin/models"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysDictType struct {
|
||||
|
||||
@@ -2,14 +2,14 @@ package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"go-admin/app/admin/models"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
common "go-admin/common/models"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysLoginLog struct {
|
||||
|
||||
@@ -4,31 +4,18 @@ import (
|
||||
"errors"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/logger"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysMenu struct {
|
||||
service.Service
|
||||
}
|
||||
|
||||
// MakeOrm 设置ORM
|
||||
func (e *SysMenu) MakeOrm(orm *gorm.DB) *SysMenu {
|
||||
e.Orm = orm
|
||||
return e
|
||||
}
|
||||
|
||||
// MakeLog 设置Log
|
||||
func (e *SysMenu) MakeLog(l *logger.Logger) *SysMenu {
|
||||
e.Log = l
|
||||
return e
|
||||
}
|
||||
|
||||
// GetSysMenuPage 获取SysMenu列表
|
||||
func (e *SysMenu) GetSysMenuPage(c *dto.SysMenuSearch) (*[]models.SysMenu, error) {
|
||||
var m = make([]models.SysMenu, 0)
|
||||
@@ -51,7 +38,7 @@ func (e *SysMenu) getSysMenuPage(c *dto.SysMenuSearch, list *[]models.SysMenu) e
|
||||
var err error
|
||||
var data models.SysMenu
|
||||
|
||||
err = e.Orm.Model(&data).Preload("SysApi").
|
||||
err = e.Orm.Model(&data).
|
||||
Scopes(
|
||||
cDto.OrderDest("sort", false),
|
||||
cDto.MakeCondition(c.GetNeedSearch()),
|
||||
@@ -83,7 +70,7 @@ func (e *SysMenu) GetSysMenu(d *dto.SysMenuById, model *models.SysMenu) error {
|
||||
}
|
||||
apis := make([]int, 0)
|
||||
for _, v := range model.SysApi {
|
||||
apis = append(model.Apis, v.Id)
|
||||
apis = append(apis, v.Id)
|
||||
}
|
||||
model.Apis = apis
|
||||
return nil
|
||||
@@ -140,7 +127,7 @@ func (e *SysMenu) UpdateSysMenu(c *dto.SysMenuControl) *SysMenu {
|
||||
}
|
||||
|
||||
// RemoveSysMenu 删除SysMenu
|
||||
func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) error {
|
||||
func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) *SysMenu {
|
||||
var err error
|
||||
var data models.SysMenu
|
||||
|
||||
@@ -149,13 +136,13 @@ func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) error {
|
||||
if db.Error != nil {
|
||||
err = db.Error
|
||||
e.Log.Errorf("Delete error: %s", err)
|
||||
return err
|
||||
_ = e.AddError(err)
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
err = errors.New("无权删除该数据")
|
||||
return err
|
||||
_ = e.AddError(err)
|
||||
}
|
||||
return nil
|
||||
return e
|
||||
}
|
||||
|
||||
// GetSysMenuList 获取菜单数据
|
||||
@@ -175,7 +162,7 @@ func (e *SysMenu) GetSysMenuList(c *dto.SysMenuSearch, list *[]models.SysMenu) e
|
||||
return nil
|
||||
}
|
||||
|
||||
// SetSysMenuTree 设置菜单数据
|
||||
// SetSysMenuLabel 设置菜单数据
|
||||
func (e *SysMenu) SetSysMenuLabel() (m []dto.MenuLabel, err error) {
|
||||
var list []models.SysMenu
|
||||
err = e.GetSysMenuList(&dto.SysMenuSearch{}, &list)
|
||||
@@ -195,26 +182,31 @@ func (e *SysMenu) SetSysMenuLabel() (m []dto.MenuLabel, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// 左侧菜单
|
||||
func (e *SysMenu) GetSysMenuByRoleName(roleName string) (Menus []models.SysMenu, err error) {
|
||||
var table *gorm.DB
|
||||
var data models.SysMenu
|
||||
// GetSysMenuByRoleName 左侧菜单
|
||||
func (e *SysMenu) GetSysMenuByRoleName(roleName string) ([]models.SysMenu, error) {
|
||||
var MenuList []models.SysMenu
|
||||
var role models.SysRole
|
||||
var err error
|
||||
|
||||
if roleName == "admin" {
|
||||
table = e.Orm.Model(&data).Select("sys_menu.*")
|
||||
table = table.Where(" menu_type in ('M','C')")
|
||||
var data []models.SysMenu
|
||||
err = e.Orm.Where(" menu_type in ('M','C')").
|
||||
Order("sort").
|
||||
Find(&data).
|
||||
Error
|
||||
MenuList = data
|
||||
} else {
|
||||
table = e.Orm.Model(&data).Select("sys_menu.*").Joins("left join sys_role_menu on sys_role_menu.menu_id=sys_menu.menu_id")
|
||||
table = table.Where("sys_role_menu.role_name=? and menu_type in ('M','C')", roleName)
|
||||
err = e.Orm.Model(&role).Preload("SysMenu", func(db *gorm.DB) *gorm.DB {
|
||||
return db.Where(" menu_type in ('M','C')").Order("sort")
|
||||
}).Where("role_name=?", roleName).Find(&role).
|
||||
Error
|
||||
MenuList = role.SysMenu
|
||||
}
|
||||
|
||||
err = table.Order("sort").Find(&Menus).Error
|
||||
|
||||
if err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return
|
||||
}
|
||||
return
|
||||
return MenuList, err
|
||||
}
|
||||
|
||||
// menuLabelCall 递归构造组织数据
|
||||
@@ -286,40 +278,38 @@ func menuCall(menulist *[]models.SysMenu, menu models.SysMenu) models.SysMenu {
|
||||
return menu
|
||||
}
|
||||
|
||||
// SetMenuRole 获取左侧菜单树使用
|
||||
func (e *SysMenu) SetMenuRole(roleName string) (m []models.SysMenu, err error) {
|
||||
|
||||
menus, err := e.getByRoleName(roleName)
|
||||
|
||||
m = make([]models.SysMenu, 0)
|
||||
for i := 0; i < len(menus); i++ {
|
||||
if menus[i].ParentId != 0 {
|
||||
continue
|
||||
}
|
||||
menusInfo := menuCall(&menus, menus[i])
|
||||
|
||||
m = append(m, menusInfo)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (e *SysMenu) getByRoleName(roleName string) (Menus []models.SysMenu, err error) {
|
||||
var data models.SysMenu
|
||||
func (e *SysMenu) getByRoleName(roleName string) ([]models.SysMenu, error) {
|
||||
var MenuList []models.SysMenu
|
||||
var role models.SysRole
|
||||
var err error
|
||||
|
||||
var table *gorm.DB
|
||||
if roleName == "admin" {
|
||||
table = e.Orm.Model(&data).Select("sys_menu.*")
|
||||
table = table.Where(" menu_type in ('M','C')")
|
||||
var data []models.SysMenu
|
||||
err = e.Orm.Where(" menu_type in ('M','C')").Order("sort").Find(&data).Error
|
||||
MenuList = data
|
||||
} else {
|
||||
table = e.Orm.Model(&data).Select("sys_menu.*").Joins("left join sys_role_menu on sys_role_menu.menu_id=sys_menu.menu_id")
|
||||
table = table.Where("sys_role_menu.role_name=? and menu_type in ('M','C')", roleName)
|
||||
err = e.Orm.Model(&role).Preload("SysMenu", func(db *gorm.DB) *gorm.DB {
|
||||
return db.Where(" menu_type in ('M','C')").Order("sort")
|
||||
}).Where("role_name=?", roleName).Find(&role).Error
|
||||
MenuList = role.SysMenu
|
||||
}
|
||||
err = table.Scopes(
|
||||
cDto.OrderDest("sort", false),
|
||||
).Find(&Menus).Error
|
||||
|
||||
if err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return
|
||||
}
|
||||
return
|
||||
return MenuList, err
|
||||
}
|
||||
@@ -2,10 +2,12 @@ package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@ package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"go-admin/app/admin/models"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysPost struct {
|
||||
|
||||
@@ -2,13 +2,14 @@ package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/casbin/casbin/v2"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysRole struct {
|
||||
@@ -20,7 +21,7 @@ func (e *SysRole) GetSysRolePage(c *dto.SysRoleSearch, list *[]models.SysRole, c
|
||||
var err error
|
||||
var data models.SysRole
|
||||
|
||||
err = e.Orm.Model(&data).
|
||||
err = e.Orm.Model(&data).Preload("SysMenu").
|
||||
Scopes(
|
||||
cDto.MakeCondition(c.GetNeedSearch()),
|
||||
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
||||
@@ -49,7 +50,7 @@ func (e *SysRole) GetSysRole(d *dto.SysRoleById, model *models.SysRole) error {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
}
|
||||
model.MenuIds, err = e.GetRoleMenuId(e.Orm, model.RoleId)
|
||||
model.MenuIds, err = e.GetRoleMenuId(model.RoleId)
|
||||
if err != nil {
|
||||
e.Log.Errorf("get menuIds error, %s", err.Error())
|
||||
return err
|
||||
@@ -58,10 +59,17 @@ func (e *SysRole) GetSysRole(d *dto.SysRoleById, model *models.SysRole) error {
|
||||
}
|
||||
|
||||
// InsertSysRole 创建SysRole对象
|
||||
func (e *SysRole) InsertSysRole(c *models.SysRole) error {
|
||||
func (e *SysRole) InsertSysRole(c *dto.SysRoleControl) error {
|
||||
var err error
|
||||
var data models.SysRole
|
||||
|
||||
var dataMenu []models.SysMenu
|
||||
err = e.Orm.Preload("SysApi").Where("menu_id in ?", c.MenuIds).Find(&dataMenu).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
}
|
||||
c.SysMenu = dataMenu
|
||||
c.Generate(&data)
|
||||
tx := e.Orm.Begin()
|
||||
defer func() {
|
||||
if err != nil {
|
||||
@@ -91,7 +99,7 @@ func (e *SysRole) InsertSysRole(c *models.SysRole) error {
|
||||
}
|
||||
|
||||
// UpdateSysRole 修改SysRole对象
|
||||
func (e *SysRole) UpdateSysRole(c *models.SysRole) error {
|
||||
func (e *SysRole) UpdateSysRole(c *dto.SysRoleControl, cb *casbin.SyncedEnforcer) error {
|
||||
var err error
|
||||
|
||||
tx := e.Orm.Debug().Begin()
|
||||
@@ -102,8 +110,14 @@ func (e *SysRole) UpdateSysRole(c *models.SysRole) error {
|
||||
tx.Commit()
|
||||
}
|
||||
}()
|
||||
db := tx.Model(&c).
|
||||
Where(c.GetId()).Updates(c)
|
||||
var model = models.SysRole{}
|
||||
var mlist = make([]models.SysMenu, 0)
|
||||
e.Orm.First(&model, c.GetId())
|
||||
e.Orm.Preload("SysApi").Find(&mlist, c.MenuIds)
|
||||
c.Generate(&model)
|
||||
model.SysMenu = mlist
|
||||
db := e.Orm.Session(&gorm.Session{FullSaveAssociations: true}).Debug().Save(&model)
|
||||
|
||||
if db.Error != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
@@ -111,23 +125,13 @@ func (e *SysRole) UpdateSysRole(c *models.SysRole) error {
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权更新该数据")
|
||||
}
|
||||
|
||||
var t models.RoleMenu
|
||||
err = t.DeleteRoleMenu(tx, c.RoleId)
|
||||
if err != nil {
|
||||
e.Log.Errorf("delete role menu error, %", err.Error())
|
||||
return err
|
||||
}
|
||||
if len(c.MenuIds) > 0 {
|
||||
s := SysRoleMenu{}
|
||||
s.Orm = e.Orm
|
||||
s.Log = e.Log
|
||||
err = s.ReloadRule(tx, c.RoleId, c.MenuIds)
|
||||
if err != nil {
|
||||
e.Log.Errorf("reload casbin rule error, %", err.Error())
|
||||
return err
|
||||
for _, menu := range mlist {
|
||||
for _, api := range menu.SysApi {
|
||||
_, err = cb.AddNamedPolicy("p", model.RoleKey, api.Path, api.Action)
|
||||
}
|
||||
}
|
||||
|
||||
_ = cb.SavePolicy()
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -169,10 +173,10 @@ func (e *SysRole) RemoveSysRole(d *dto.SysRoleById) error {
|
||||
}
|
||||
|
||||
// 获取角色对应的菜单ids
|
||||
func (e *SysRole) GetRoleMenuId(tx *gorm.DB, roleId int) ([]int, error) {
|
||||
func (e *SysRole) GetRoleMenuId(roleId int) ([]int, error) {
|
||||
menuIds := make([]int, 0)
|
||||
menuList := make([]models.MenuIdList, 0)
|
||||
if err := tx.Table("sys_role_menu").
|
||||
if err := e.Orm.Table("sys_role_menu").
|
||||
Select("sys_role_menu.menu_id").
|
||||
Where("role_id = ? ", roleId).
|
||||
Where(" sys_role_menu.menu_id not in(select sys_menu.parent_id from sys_role_menu "+
|
||||
|
||||
@@ -2,9 +2,10 @@ package service
|
||||
|
||||
import (
|
||||
log "github.com/go-admin-team/go-admin-core/logger"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/common/service"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
)
|
||||
|
||||
type SysRoleMenu struct {
|
||||
|
||||
@@ -3,10 +3,10 @@ package service
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysSetting struct {
|
||||
@@ -49,4 +49,4 @@ func (e *SysSetting) UpdateSysSetting(c *models.SysSetting) error {
|
||||
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,12 @@ import (
|
||||
|
||||
log "github.com/go-admin-team/go-admin-core/logger"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/common/actions"
|
||||
cDto "go-admin/common/dto"
|
||||
common "go-admin/common/models"
|
||||
"go-admin/common/service"
|
||||
)
|
||||
|
||||
type SysUser struct {
|
||||
|
||||
Reference in New Issue
Block a user