feat 结构统一调整

This commit is contained in:
wenjianzhang
2021-05-20 22:59:09 +08:00
parent 6b1c3d9226
commit 44545f3d5b
49 changed files with 330 additions and 545 deletions
+2 -2
View File
@@ -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) {
+2 -2
View File
@@ -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 获取接口管理列表
+4 -4
View File
@@ -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) {
+2 -2
View File
@@ -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 分页部门列表数据
+2 -2
View File
@@ -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 字典数据列表
+2 -2
View File
@@ -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 字典类型列表数据
+2 -2
View File
@@ -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
View File
@@ -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,
+2 -2
View File
@@ -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) {
+3 -3
View File
@@ -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
View File
@@ -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 删除用户角色
+2 -2
View File
@@ -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 列表用户信息数据
+1 -2
View File
@@ -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) {
+3 -3
View File
@@ -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, "删除成功")
}
}
+1 -1
View File
@@ -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
+13 -12
View File
@@ -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
}
+1 -11
View File
@@ -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:"编码"` // 编码
+35 -23
View File
@@ -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
+2 -2
View File
@@ -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 {
+1 -1
View File
@@ -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"
)
+1 -1
View File
@@ -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 -2
View File
@@ -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 -2
View File
@@ -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 -2
View File
@@ -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 {
+38 -48
View File
@@ -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
}
+3 -1
View File
@@ -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 -2
View File
@@ -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 {
+29 -25
View File
@@ -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 "+
+3 -2
View File
@@ -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 {
+2 -2
View File
@@ -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
}
}
+1 -1
View File
@@ -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 {