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 ( import (
"github.com/gin-gonic/gin" "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" "github.com/go-admin-team/go-admin-core/sdk/pkg/captcha"
"go-admin/common/apis"
) )
type System struct { type System struct {
apis.Api api.Api
} }
func (e System) GenerateCaptchaHandler(c *gin.Context) { func (e System) GenerateCaptchaHandler(c *gin.Context) {
+2 -2
View File
@@ -4,6 +4,7 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "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"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/actions" "go-admin/common/actions"
"go-admin/common/apis"
) )
type SysApi struct { type SysApi struct {
apis.Api api.Api
} }
// GetSysApiList 获取接口管理列表 // GetSysApiList 获取接口管理列表
+4 -4
View File
@@ -1,20 +1,20 @@
package apis package apis
import ( import (
"github.com/gin-gonic/gin/binding"
"go-admin/app/admin/models"
"net/http" "net/http"
"github.com/gin-gonic/gin" "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" "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"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
) )
type SysConfig struct { type SysConfig struct {
apis.Api api.Api
} }
func (e SysConfig) GetSysConfigList(c *gin.Context) { func (e SysConfig) GetSysConfigList(c *gin.Context) {
+2 -2
View File
@@ -6,16 +6,16 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
) )
type SysDept struct { type SysDept struct {
apis.Api api.Api
} }
// @Summary 分页部门列表数据 // @Summary 分页部门列表数据
+2 -2
View File
@@ -5,17 +5,17 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
common "go-admin/common/models" common "go-admin/common/models"
) )
type SysDictData struct { type SysDictData struct {
apis.Api api.Api
} }
// @Summary 字典数据列表 // @Summary 字典数据列表
+2 -2
View File
@@ -5,17 +5,17 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
common "go-admin/common/models" common "go-admin/common/models"
) )
type SysDictType struct { type SysDictType struct {
apis.Api api.Api
} }
// @Summary 字典类型列表数据 // @Summary 字典类型列表数据
+2 -2
View File
@@ -5,15 +5,15 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
) )
type SysLoginLog struct { type SysLoginLog struct {
apis.Api api.Api
} }
func (e SysLoginLog) GetSysLoginLogList(c *gin.Context) { func (e SysLoginLog) GetSysLoginLogList(c *gin.Context) {
+55 -76
View File
@@ -5,17 +5,18 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
) )
type SysMenu struct { type SysMenu struct {
apis.Api api.Api
} }
// GetSysMenuList Menu列表数据
// @Summary Menu列表数据 // @Summary Menu列表数据
// @Description 获取JSON // @Description 获取JSON
// @Tags 菜单 // @Tags 菜单
@@ -65,28 +66,20 @@ func (e SysMenu) GetSysMenuList(c *gin.Context) {
// @Security Bearer // @Security Bearer
func (e SysMenu) GetSysMenu(c *gin.Context) { func (e SysMenu) GetSysMenu(c *gin.Context) {
control := new(dto.SysMenuById) control := new(dto.SysMenuById)
s := new(service.SysMenu)
e.Context = c err := e.MakeContext(c).
log := e.GetLogger() MakeOrm().
Bind(control, nil).
db, err := e.GetOrm() MakeService(&s.Service).
Errors
if err != nil { if err != nil {
log.Error(err) e.Error(http.StatusInternalServerError, err, err.Error())
return e.Logger.Error(err)
}
//查看详情
err = control.Bind(c)
if err != nil {
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败")
return return
} }
var object models.SysMenu var object models.SysMenu
serviceSysMenu := service.SysMenu{} err = s.GetSysMenu(control, &object)
serviceSysMenu.Log = log
serviceSysMenu.Orm = db
err = serviceSysMenu.GetSysMenu(control, &object)
if err != nil { if err != nil {
e.Error(http.StatusUnprocessableEntity, err, "查询失败") e.Error(http.StatusUnprocessableEntity, err, "查询失败")
return return
@@ -179,58 +172,45 @@ func (e SysMenu) UpdateSysMenu(c *gin.Context) {
// @Router /api/v1/menu/ [delete] // @Router /api/v1/menu/ [delete]
func (e SysMenu) DeleteSysMenu(c *gin.Context) { func (e SysMenu) DeleteSysMenu(c *gin.Context) {
control := new(dto.SysMenuById) control := new(dto.SysMenuById)
s := new(service.SysMenu)
e.Context = c err := e.MakeContext(c).
log := e.GetLogger() MakeOrm().
Bind(control).
db, err := e.GetOrm() MakeService(&s.Service).
Errors
if err != nil { if err != nil {
log.Error(err) e.Logger.Error(err)
return return
} }
err = s.RemoveSysMenu(control).Error
//删除操作
err = control.Bind(c)
if err != nil { if err != nil {
log.Errorf("Bind error: %s", err) e.Logger.Errorf("RemoveSysMenu 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.Error(http.StatusInternalServerError, err, "删除失败") e.Error(http.StatusInternalServerError, err, "删除失败")
return return
} }
e.OK(control.GetId(), "删除成功") e.OK(control.GetId(), "删除成功")
} }
// GetMenuRole 根据角色名称获取菜单列表数据(左菜单使用) // GetMenuRole 根据登录角色名称获取菜单列表数据(左菜单使用)
// @Summary 根据角色名称获取菜单列表数据(左菜单使用) // @Summary 根据登录角色名称获取菜单列表数据(左菜单使用)
// @Description 获取JSON // @Description 获取JSON
// @Tags 菜单 // @Tags 菜单
// @Param id path int true "id"
// @Success 200 {string} string "{"code": 200, "data": [...]}" // @Success 200 {string} string "{"code": 200, "data": [...]}"
// @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}" // @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}"
// @Router /api/v1/menurole [get] // @Router /api/v1/menurole [get]
// @Security Bearer // @Security Bearer
func (e SysMenu) GetMenuRole(c *gin.Context) { func (e SysMenu) GetMenuRole(c *gin.Context) {
e.Context = c s := new(service.SysMenu)
log := e.GetLogger() err := e.MakeContext(c).
db, err := e.GetOrm() MakeOrm().
MakeService(&s.Service).
Errors
if err != nil { if err != nil {
log.Error(err) e.Logger.Error(err)
return return
} }
serviceSysMenu := service.SysMenu{} result, err := s.SetMenuRole(user.GetRoleName(c))
serviceSysMenu.Log = log
serviceSysMenu.Orm = db
result, err := serviceSysMenu.SetMenuRole(user.GetRoleName(c))
if err != nil { if err != nil {
e.Error(http.StatusInternalServerError, err, "查询失败") e.Error(http.StatusInternalServerError, err, "查询失败")
@@ -250,19 +230,21 @@ func (e SysMenu) GetMenuRole(c *gin.Context) {
// @Router /api/v1/menuids/{id} [get] // @Router /api/v1/menuids/{id} [get]
// @Security Bearer // @Security Bearer
func (e SysMenu) GetMenuIDS(c *gin.Context) { func (e SysMenu) GetMenuIDS(c *gin.Context) {
e.Context = c s := new(service.SysMenu)
log := e.GetLogger() err := e.MakeContext(c).
db, err := e.GetOrm() MakeOrm().
MakeService(&s.Service).
Errors
if err != nil { if err != nil {
log.Error(err) e.Logger.Error(err)
return return
} }
var data models.RoleMenu var data models.RoleMenu
data.RoleName = c.GetString("role") data.RoleName = c.GetString("role")
data.UpdateBy = user.GetUserId(c) data.UpdateBy = user.GetUserId(c)
result, err := data.GetIDS(db) result, err := data.GetIDS(s.Orm)
if err != nil { if err != nil {
log.Errorf("GetIDS error, %s", err.Error()) e.Logger.Errorf("GetIDS error, %s", err.Error())
e.Error(http.StatusInternalServerError, err, "获取失败") e.Error(http.StatusInternalServerError, err, "获取失败")
return return
} }
@@ -280,39 +262,36 @@ func (e SysMenu) GetMenuIDS(c *gin.Context) {
// @Router /api/v1/menuTreeselect [get] // @Router /api/v1/menuTreeselect [get]
// @Security Bearer // @Security Bearer
func (e SysMenu) GetMenuTreeSelect(c *gin.Context) { func (e SysMenu) GetMenuTreeSelect(c *gin.Context) {
e.Context = c s := new(service.SysMenu)
log := e.GetLogger() sr := new(service.SysRole)
db, err := e.GetOrm()
if err != nil {
log.Error(err)
return
}
d := new(dto.SelectRole) d := new(dto.SelectRole)
err := e.MakeContext(c).
err = c.BindUri(d) MakeOrm().
MakeService(&s.Service).
MakeService(&sr.Service).
Bind(&d, nil).
Errors
if err != nil { if err != nil {
e.Error(http.StatusUnprocessableEntity, err, "参数验证失败") e.Logger.Error(err)
e.Error(http.StatusUnprocessableEntity, err, err.Error())
return return
} }
serviceSysMenu := service.SysMenu{} result, err := s.SetSysMenuLabel()
serviceSysMenu.Log = log
serviceSysMenu.Orm = db
result, err := serviceSysMenu.SetSysMenuLabel()
if err != nil { if err != nil {
e.Error(http.StatusUnprocessableEntity, err, "查询失败") e.Error(http.StatusUnprocessableEntity, err, "查询失败")
return return
} }
s := service.SysRole{}
s.Log = log menuIds := make([]int, 0)
s.Orm = db if d.RoleId != 0 {
menuIds, err := s.GetRoleMenuId(db, d.RoleId) menuIds, err = sr.GetRoleMenuId(d.RoleId)
if err != nil { if err != nil {
log.Errorf("GetIDS error, %s", err.Error()) e.Logger.Errorf("GetRoleMenuId error, %s", err.Error())
e.Error(http.StatusInternalServerError, err, "") e.Error(http.StatusInternalServerError, err, "")
return return
} }
}
e.OK(gin.H{ e.OK(gin.H{
"menus": result, "menus": result,
"checkedKeys": menuIds, "checkedKeys": menuIds,
+2 -2
View File
@@ -5,15 +5,15 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
) )
type SysOperaLog struct { type SysOperaLog struct {
apis.Api api.Api
} }
func (e SysOperaLog) GetSysOperaLogList(c *gin.Context) { func (e SysOperaLog) GetSysOperaLogList(c *gin.Context) {
+3 -3
View File
@@ -1,20 +1,20 @@
package apis package apis
import ( import (
"go-admin/app/admin/models"
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "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"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
) )
type SysPost struct { type SysPost struct {
apis.Api api.Api
} }
// @Summary 岗位列表数据 // @Summary 岗位列表数据
+41 -60
View File
@@ -1,21 +1,22 @@
package apis package apis
import ( import (
"github.com/go-admin-team/go-admin-core/sdk"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/apis"
"go-admin/common/global" "go-admin/common/global"
) )
type SysRole struct { type SysRole struct {
apis.Api api.Api
} }
// @Summary 角色列表数据 // @Summary 角色列表数据
@@ -109,38 +110,27 @@ func (e SysRole) GetSysRole(c *gin.Context) {
// @Router /api/v1/role [post] // @Router /api/v1/role [post]
// @Security Bearer // @Security Bearer
func (e SysRole) InsertSysRole(c *gin.Context) { 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 := service.SysRole{}
s.Orm = db control := new(dto.SysRoleControl)
s.Log = log err := e.MakeContext(c).
err = s.InsertSysRole(object) MakeOrm().
Bind(control).
MakeService(&s.Service).
Errors
if err != nil { 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, "创建失败") e.Error(http.StatusInternalServerError, err, "创建失败")
return return
} }
@@ -149,9 +139,10 @@ func (e SysRole) InsertSysRole(c *gin.Context) {
e.Error(http.StatusInternalServerError, err, "") e.Error(http.StatusInternalServerError, err, "")
return return
} }
e.OK(object.GetId(), "创建成功") e.OK(control.GetId(), "创建成功")
} }
// UpdateSysRole 修改用户角色
// @Summary 修改用户角色 // @Summary 修改用户角色
// @Description 获取JSON // @Description 获取JSON
// @Tags 角色/Role // @Tags 角色/Role
@@ -163,34 +154,24 @@ func (e SysRole) InsertSysRole(c *gin.Context) {
// @Router /api/v1/role/{id} [put] // @Router /api/v1/role/{id} [put]
// @Security Bearer // @Security Bearer
func (e SysRole) UpdateSysRole(c *gin.Context) { 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 := service.SysRole{}
s.Orm = db control := new(dto.SysRoleControl)
s.Log = log err := e.MakeContext(c).
err = s.UpdateSysRole(object) MakeOrm().
Bind(control).
MakeService(&s.Service).
Errors
if err != nil { 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 return
} }
_, err = global.LoadPolicy(c) _, err = global.LoadPolicy(c)
@@ -198,7 +179,7 @@ func (e SysRole) UpdateSysRole(c *gin.Context) {
e.Error(http.StatusInternalServerError, err, "") e.Error(http.StatusInternalServerError, err, "")
return return
} }
e.OK(object.GetId(), "更新成功") e.OK(control.GetId(), "更新成功")
} }
// @Summary 删除用户角色 // @Summary 删除用户角色
+2 -2
View File
@@ -5,6 +5,7 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"github.com/google/uuid" "github.com/google/uuid"
@@ -12,12 +13,11 @@ import (
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/actions" "go-admin/common/actions"
"go-admin/common/apis"
common "go-admin/common/models" common "go-admin/common/models"
) )
type SysUser struct { type SysUser struct {
apis.Api api.Api
} }
// @Summary 列表用户信息数据 // @Summary 列表用户信息数据
+1 -2
View File
@@ -15,11 +15,10 @@ import (
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/app/admin/models/tools" "go-admin/app/admin/models/tools"
"go-admin/common/apis"
) )
type Gen struct { type Gen struct {
apis.Api api.Api
} }
func (e Gen) Preview(c *gin.Context) { func (e Gen) Preview(c *gin.Context) {
+2 -2
View File
@@ -5,17 +5,17 @@ import (
"strings" "strings"
"github.com/gin-gonic/gin" "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"
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" "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/go-admin-team/go-admin-core/sdk/pkg/response"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/admin/models/tools" "go-admin/app/admin/models/tools"
"go-admin/common/apis"
) )
type SysTable struct { type SysTable struct {
apis.Api api.Api
} }
// GetSysTableList 分页列表数据 // GetSysTableList 分页列表数据
+1 -1
View File
@@ -24,7 +24,7 @@ type SysMenu struct {
DataScope string `json:"dataScope" gorm:"-"` DataScope string `json:"dataScope" gorm:"-"`
Params string `json:"params" gorm:"-"` Params string `json:"params" gorm:"-"`
RoleId int `gorm:"-"` RoleId int `gorm:"-"`
Children []SysMenu `json:"children" gorm:"-"` Children []SysMenu `json:"children,omitempty" gorm:"-"`
IsSelect bool `json:"is_select" gorm:"-"` IsSelect bool `json:"is_select" gorm:"-"`
models.ControlBy models.ControlBy
models.ModelTime models.ModelTime
+1
View File
@@ -15,6 +15,7 @@ type SysRole struct {
Params string `json:"params" gorm:"-"` Params string `json:"params" gorm:"-"`
MenuIds []int `json:"menuIds" gorm:"-"` MenuIds []int `json:"menuIds" gorm:"-"`
DeptIds []int `json:"deptIds" 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.ControlBy
models.ModelTime models.ModelTime
} }
+1 -11
View File
@@ -2,12 +2,12 @@ package dto
import ( import (
"encoding/json" "encoding/json"
"go-admin/app/admin/models"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding" "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/api"
"go-admin/app/admin/models"
"go-admin/common/dto" "go-admin/common/dto"
common "go-admin/common/models" common "go-admin/common/models"
) )
@@ -25,16 +25,6 @@ func (m *SysConfigSearch) GetNeedSearch() interface{} {
return *m 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 增、改使用的结构体 // SysConfigControl 增、改使用的结构体
type SysConfigControl struct { type SysConfigControl struct {
ID int `uri:"Id" comment:"编码"` // 编码 ID int `uri:"Id" comment:"编码"` // 编码
+26 -14
View File
@@ -3,6 +3,7 @@ package dto
import ( import (
"encoding/json" "encoding/json"
"go-admin/app/admin/models" "go-admin/app/admin/models"
common "go-admin/common/models"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding" "github.com/gin-gonic/gin/binding"
@@ -51,7 +52,17 @@ type SysRoleControl struct {
Remark string `form:"remark" comment:"备注"` // 备注 Remark string `form:"remark" comment:"备注"` // 备注
Admin bool `form:"admin" comment:"是否管理员"` Admin bool `form:"admin" comment:"是否管理员"`
DataScope string `form:"dataScope"` DataScope string `form:"dataScope"`
MenuIds []int `json:"menuIds"` 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 映射上下文中的结构体数据 // Bind 映射上下文中的结构体数据
@@ -76,19 +87,20 @@ func (s *SysRoleControl) Bind(ctx *gin.Context) error {
} }
// Generate 结构体数据转化 从 SysConfigControl 至 system.SysConfig 对应的模型 // Generate 结构体数据转化 从 SysConfigControl 至 system.SysConfig 对应的模型
func (s *SysRoleControl) Generate() (*models.SysRole, error) { func (s *SysRoleControl) Generate(model *models.SysRole) {
return &models.SysRole{ if s.RoleId != 0 {
RoleId: s.RoleId, model.RoleId = s.RoleId
RoleName: s.RoleName, }
Status: s.Status, model.RoleName = s.RoleName
RoleKey: s.RoleKey, model.Status = s.Status
RoleSort: s.RoleSort, model.RoleKey = s.RoleKey
Flag: s.Flag, model.RoleSort = s.RoleSort
Remark: s.Remark, model.Flag = s.Flag
Admin: s.Admin, model.Remark = s.Remark
DataScope: s.DataScope, model.Admin = s.Admin
MenuIds: s.MenuIds, model.DataScope = s.DataScope
}, nil model.SysMenu = s.SysMenu
} }
// GetId 获取数据对应的ID // GetId 获取数据对应的ID
+2 -2
View File
@@ -3,15 +3,15 @@ package service
import ( import (
"errors" "errors"
"fmt" "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" "gorm.io/gorm"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/actions" "go-admin/common/actions"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysApi struct { type SysApi struct {
+1 -1
View File
@@ -2,10 +2,10 @@ package service
import ( import (
"errors" "errors"
"github.com/go-admin-team/go-admin-core/sdk/service"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+1 -1
View File
@@ -8,9 +8,9 @@ import (
"gorm.io/gorm" "gorm.io/gorm"
"github.com/go-admin-team/go-admin-core/sdk/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysDept struct { type SysDept struct {
+2 -2
View File
@@ -2,13 +2,13 @@ package service
import ( import (
"errors" "errors"
"go-admin/app/admin/models"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysDictData struct { type SysDictData struct {
+2 -2
View File
@@ -2,13 +2,13 @@ package service
import ( import (
"errors" "errors"
"go-admin/app/admin/models"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysDictType struct { type SysDictType struct {
+2 -2
View File
@@ -2,14 +2,14 @@ package service
import ( import (
"errors" "errors"
"go-admin/app/admin/models"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
common "go-admin/common/models" common "go-admin/common/models"
"go-admin/common/service"
) )
type SysLoginLog struct { type SysLoginLog struct {
+38 -48
View File
@@ -4,31 +4,18 @@ import (
"errors" "errors"
"github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/go-admin-team/go-admin-core/sdk/pkg"
"github.com/go-admin-team/go-admin-core/sdk/pkg/logger"
"gorm.io/gorm" "gorm.io/gorm"
"github.com/go-admin-team/go-admin-core/sdk/service"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysMenu struct { type SysMenu struct {
service.Service 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列表 // GetSysMenuPage 获取SysMenu列表
func (e *SysMenu) GetSysMenuPage(c *dto.SysMenuSearch) (*[]models.SysMenu, error) { func (e *SysMenu) GetSysMenuPage(c *dto.SysMenuSearch) (*[]models.SysMenu, error) {
var m = make([]models.SysMenu, 0) 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 err error
var data models.SysMenu var data models.SysMenu
err = e.Orm.Model(&data).Preload("SysApi"). err = e.Orm.Model(&data).
Scopes( Scopes(
cDto.OrderDest("sort", false), cDto.OrderDest("sort", false),
cDto.MakeCondition(c.GetNeedSearch()), cDto.MakeCondition(c.GetNeedSearch()),
@@ -83,7 +70,7 @@ func (e *SysMenu) GetSysMenu(d *dto.SysMenuById, model *models.SysMenu) error {
} }
apis := make([]int, 0) apis := make([]int, 0)
for _, v := range model.SysApi { for _, v := range model.SysApi {
apis = append(model.Apis, v.Id) apis = append(apis, v.Id)
} }
model.Apis = apis model.Apis = apis
return nil return nil
@@ -140,7 +127,7 @@ func (e *SysMenu) UpdateSysMenu(c *dto.SysMenuControl) *SysMenu {
} }
// RemoveSysMenu 删除SysMenu // RemoveSysMenu 删除SysMenu
func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) error { func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) *SysMenu {
var err error var err error
var data models.SysMenu var data models.SysMenu
@@ -149,13 +136,13 @@ func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) error {
if db.Error != nil { if db.Error != nil {
err = db.Error err = db.Error
e.Log.Errorf("Delete error: %s", err) e.Log.Errorf("Delete error: %s", err)
return err _ = e.AddError(err)
} }
if db.RowsAffected == 0 { if db.RowsAffected == 0 {
err = errors.New("无权删除该数据") err = errors.New("无权删除该数据")
return err _ = e.AddError(err)
} }
return nil return e
} }
// GetSysMenuList 获取菜单数据 // GetSysMenuList 获取菜单数据
@@ -175,7 +162,7 @@ func (e *SysMenu) GetSysMenuList(c *dto.SysMenuSearch, list *[]models.SysMenu) e
return nil return nil
} }
// SetSysMenuTree 设置菜单数据 // SetSysMenuLabel 设置菜单数据
func (e *SysMenu) SetSysMenuLabel() (m []dto.MenuLabel, err error) { func (e *SysMenu) SetSysMenuLabel() (m []dto.MenuLabel, err error) {
var list []models.SysMenu var list []models.SysMenu
err = e.GetSysMenuList(&dto.SysMenuSearch{}, &list) err = e.GetSysMenuList(&dto.SysMenuSearch{}, &list)
@@ -195,26 +182,31 @@ func (e *SysMenu) SetSysMenuLabel() (m []dto.MenuLabel, err error) {
return return
} }
// 左侧菜单 // GetSysMenuByRoleName 左侧菜单
func (e *SysMenu) GetSysMenuByRoleName(roleName string) (Menus []models.SysMenu, err error) { func (e *SysMenu) GetSysMenuByRoleName(roleName string) ([]models.SysMenu, error) {
var table *gorm.DB var MenuList []models.SysMenu
var data models.SysMenu var role models.SysRole
var err error
if roleName == "admin" { if roleName == "admin" {
table = e.Orm.Model(&data).Select("sys_menu.*") var data []models.SysMenu
table = table.Where(" menu_type in ('M','C')") err = e.Orm.Where(" menu_type in ('M','C')").
Order("sort").
Find(&data).
Error
MenuList = data
} else { } 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") err = e.Orm.Model(&role).Preload("SysMenu", func(db *gorm.DB) *gorm.DB {
table = table.Where("sys_role_menu.role_name=? and menu_type in ('M','C')", roleName) 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 { if err != nil {
e.Log.Errorf("db error:%s", err) e.Log.Errorf("db error:%s", err)
return
} }
return return MenuList, err
} }
// menuLabelCall 递归构造组织数据 // menuLabelCall 递归构造组织数据
@@ -286,40 +278,38 @@ func menuCall(menulist *[]models.SysMenu, menu models.SysMenu) models.SysMenu {
return menu return menu
} }
// SetMenuRole 获取左侧菜单树使用
func (e *SysMenu) SetMenuRole(roleName string) (m []models.SysMenu, err error) { func (e *SysMenu) SetMenuRole(roleName string) (m []models.SysMenu, err error) {
menus, err := e.getByRoleName(roleName) menus, err := e.getByRoleName(roleName)
m = make([]models.SysMenu, 0) m = make([]models.SysMenu, 0)
for i := 0; i < len(menus); i++ { for i := 0; i < len(menus); i++ {
if menus[i].ParentId != 0 { if menus[i].ParentId != 0 {
continue continue
} }
menusInfo := menuCall(&menus, menus[i]) menusInfo := menuCall(&menus, menus[i])
m = append(m, menusInfo) m = append(m, menusInfo)
} }
return return
} }
func (e *SysMenu) getByRoleName(roleName string) (Menus []models.SysMenu, err error) { func (e *SysMenu) getByRoleName(roleName string) ([]models.SysMenu, error) {
var data models.SysMenu var MenuList []models.SysMenu
var role models.SysRole
var err error
var table *gorm.DB
if roleName == "admin" { if roleName == "admin" {
table = e.Orm.Model(&data).Select("sys_menu.*") var data []models.SysMenu
table = table.Where(" menu_type in ('M','C')") err = e.Orm.Where(" menu_type in ('M','C')").Order("sort").Find(&data).Error
MenuList = data
} else { } 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") err = e.Orm.Model(&role).Preload("SysMenu", func(db *gorm.DB) *gorm.DB {
table = table.Where("sys_role_menu.role_name=? and menu_type in ('M','C')", roleName) 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 { if err != nil {
e.Log.Errorf("db error:%s", err) e.Log.Errorf("db error:%s", err)
return
} }
return return MenuList, err
} }
+3 -1
View File
@@ -2,10 +2,12 @@ package service
import ( import (
"errors" "errors"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
) )
+2 -2
View File
@@ -2,13 +2,13 @@ package service
import ( import (
"errors" "errors"
"go-admin/app/admin/models"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysPost struct { type SysPost struct {
+30 -26
View File
@@ -2,13 +2,14 @@ package service
import ( import (
"errors" "errors"
"github.com/casbin/casbin/v2"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysRole struct { type SysRole struct {
@@ -20,7 +21,7 @@ func (e *SysRole) GetSysRolePage(c *dto.SysRoleSearch, list *[]models.SysRole, c
var err error var err error
var data models.SysRole var data models.SysRole
err = e.Orm.Model(&data). err = e.Orm.Model(&data).Preload("SysMenu").
Scopes( Scopes(
cDto.MakeCondition(c.GetNeedSearch()), cDto.MakeCondition(c.GetNeedSearch()),
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()), 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) e.Log.Errorf("db error:%s", err)
return err return err
} }
model.MenuIds, err = e.GetRoleMenuId(e.Orm, model.RoleId) model.MenuIds, err = e.GetRoleMenuId(model.RoleId)
if err != nil { if err != nil {
e.Log.Errorf("get menuIds error, %s", err.Error()) e.Log.Errorf("get menuIds error, %s", err.Error())
return err return err
@@ -58,10 +59,17 @@ func (e *SysRole) GetSysRole(d *dto.SysRoleById, model *models.SysRole) error {
} }
// InsertSysRole 创建SysRole对象 // InsertSysRole 创建SysRole对象
func (e *SysRole) InsertSysRole(c *models.SysRole) error { func (e *SysRole) InsertSysRole(c *dto.SysRoleControl) error {
var err error var err error
var data models.SysRole 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() tx := e.Orm.Begin()
defer func() { defer func() {
if err != nil { if err != nil {
@@ -91,7 +99,7 @@ func (e *SysRole) InsertSysRole(c *models.SysRole) error {
} }
// UpdateSysRole 修改SysRole对象 // UpdateSysRole 修改SysRole对象
func (e *SysRole) UpdateSysRole(c *models.SysRole) error { func (e *SysRole) UpdateSysRole(c *dto.SysRoleControl, cb *casbin.SyncedEnforcer) error {
var err error var err error
tx := e.Orm.Debug().Begin() tx := e.Orm.Debug().Begin()
@@ -102,8 +110,14 @@ func (e *SysRole) UpdateSysRole(c *models.SysRole) error {
tx.Commit() tx.Commit()
} }
}() }()
db := tx.Model(&c). var model = models.SysRole{}
Where(c.GetId()).Updates(c) 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 { if db.Error != nil {
e.Log.Errorf("db error:%s", err) e.Log.Errorf("db error:%s", err)
return err return err
@@ -111,23 +125,13 @@ func (e *SysRole) UpdateSysRole(c *models.SysRole) error {
if db.RowsAffected == 0 { if db.RowsAffected == 0 {
return errors.New("无权更新该数据") return errors.New("无权更新该数据")
} }
for _, menu := range mlist {
for _, api := range menu.SysApi {
_, err = cb.AddNamedPolicy("p", model.RoleKey, api.Path, api.Action)
}
}
var t models.RoleMenu _ = cb.SavePolicy()
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
}
}
return nil return nil
} }
@@ -169,10 +173,10 @@ func (e *SysRole) RemoveSysRole(d *dto.SysRoleById) error {
} }
// 获取角色对应的菜单ids // 获取角色对应的菜单ids
func (e *SysRole) GetRoleMenuId(tx *gorm.DB, roleId int) ([]int, error) { func (e *SysRole) GetRoleMenuId(roleId int) ([]int, error) {
menuIds := make([]int, 0) menuIds := make([]int, 0)
menuList := make([]models.MenuIdList, 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"). Select("sys_role_menu.menu_id").
Where("role_id = ? ", roleId). Where("role_id = ? ", roleId).
Where(" sys_role_menu.menu_id not in(select sys_menu.parent_id from sys_role_menu "+ 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 ( import (
log "github.com/go-admin-team/go-admin-core/logger" log "github.com/go-admin-team/go-admin-core/logger"
"go-admin/app/admin/models" "github.com/go-admin-team/go-admin-core/sdk/service"
"go-admin/common/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/admin/models"
) )
type SysRoleMenu struct { type SysRoleMenu struct {
+1 -1
View File
@@ -3,10 +3,10 @@ package service
import ( import (
"errors" "errors"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/common/service"
) )
type SysSetting struct { type SysSetting struct {
+1 -1
View File
@@ -6,12 +6,12 @@ import (
log "github.com/go-admin-team/go-admin-core/logger" 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/pkg"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/common/actions" "go-admin/common/actions"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
common "go-admin/common/models" common "go-admin/common/models"
"go-admin/common/service"
) )
type SysUser struct { type SysUser struct {
+5 -5
View File
@@ -1,18 +1,18 @@
package apis package apis
import ( import (
"go-admin/app/jobs/service"
"net/http" "net/http"
"go-admin/common/apis"
"go-admin/common/dto"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk" "github.com/go-admin-team/go-admin-core/sdk"
"github.com/go-admin-team/go-admin-core/sdk/api"
"go-admin/app/jobs/service"
"go-admin/common/dto"
) )
type SysJob struct { type SysJob struct {
apis.Api api.Api
} }
// RemoveJobForService 调用service实现 // RemoveJobForService 调用service实现
+4 -3
View File
@@ -1,13 +1,14 @@
package service package service
import ( import (
"github.com/robfig/cron/v3"
"go-admin/app/jobs/models"
"time" "time"
"github.com/go-admin-team/go-admin-core/sdk/service"
"github.com/robfig/cron/v3"
"go-admin/app/jobs" "go-admin/app/jobs"
"go-admin/app/jobs/models"
"go-admin/common/dto" "go-admin/common/dto"
"go-admin/common/service"
) )
type SysJob struct { type SysJob struct {
+2 -2
View File
@@ -8,11 +8,11 @@ import (
"strings" "strings"
"github.com/gin-gonic/gin" "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"
"github.com/go-admin-team/go-admin-core/sdk/pkg/utils" "github.com/go-admin-team/go-admin-core/sdk/pkg/utils"
"github.com/google/uuid" "github.com/google/uuid"
"go-admin/common/apis"
"go-admin/common/file_store" "go-admin/common/file_store"
) )
@@ -27,7 +27,7 @@ type FileResponse struct {
const path = "static/uploadfile/" const path = "static/uploadfile/"
type File struct { type File struct {
apis.Api api.Api
} }
// UploadFile 上传图片 // UploadFile 上传图片
+2 -3
View File
@@ -4,13 +4,12 @@ import (
"runtime" "runtime"
"github.com/gin-gonic/gin" "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"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/disk" "github.com/shirou/gopsutil/disk"
"github.com/shirou/gopsutil/mem" "github.com/shirou/gopsutil/mem"
"go-admin/common/apis"
) )
const ( const (
@@ -21,7 +20,7 @@ const (
) )
type Monitor struct { type Monitor struct {
apis.Api api.Api
} }
// ServerInfo 获取系统信息 // ServerInfo 获取系统信息
+2 -2
View File
@@ -7,14 +7,14 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
"go-admin/common/actions" "go-admin/common/actions"
"go-admin/common/apis"
) )
type SysChinaAreaData struct { type SysChinaAreaData struct {
apis.Api api.Api
} }
func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) { func (e SysChinaAreaData) GetSysChinaAreaDataList(c *gin.Context) {
+2 -2
View File
@@ -4,6 +4,7 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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"
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
@@ -11,11 +12,10 @@ import (
"go-admin/app/other/service" "go-admin/app/other/service"
"go-admin/app/other/service/dto" "go-admin/app/other/service/dto"
"go-admin/common/actions" "go-admin/common/actions"
"go-admin/common/apis"
) )
type SysFileDir struct { type SysFileDir struct {
apis.Api api.Api
} }
func (e SysFileDir) GetSysFileDirList(c *gin.Context) { func (e SysFileDir) GetSysFileDirList(c *gin.Context) {
+2 -2
View File
@@ -7,14 +7,14 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
"go-admin/common/actions" "go-admin/common/actions"
"go-admin/common/apis"
) )
type SysFileInfo struct { type SysFileInfo struct {
apis.Api api.Api
} }
func (e SysFileInfo) GetSysFileInfoList(c *gin.Context) { func (e SysFileInfo) GetSysFileInfoList(c *gin.Context) {
+12 -12
View File
@@ -2,14 +2,14 @@ package service
import ( import (
"errors" "errors"
models2 "go-admin/app/other/models" "go-admin/app/other/models"
dto2 "go-admin/app/other/service/dto" "go-admin/app/other/service/dto"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/common/actions" "go-admin/common/actions"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysChinaAreaData struct { type SysChinaAreaData struct {
@@ -17,8 +17,8 @@ type SysChinaAreaData struct {
} }
// GetSysChinaAreaDataPage 获取SysChinaAreaData列表 // GetSysChinaAreaDataPage 获取SysChinaAreaData列表
func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto2.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models2.SysChinaAreaData, count *int64) error { func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto.SysChinaAreaDataSearch, p *actions.DataPermission, list *[]models.SysChinaAreaData, count *int64) error {
var data models2.SysChinaAreaData var data models.SysChinaAreaData
err := e.Orm.Model(&data). err := e.Orm.Model(&data).
Scopes( Scopes(
@@ -36,8 +36,8 @@ func (e *SysChinaAreaData) GetSysChinaAreaDataPage(c *dto2.SysChinaAreaDataSearc
} }
// GetSysChinaAreaData 获取SysChinaAreaData对象 // GetSysChinaAreaData 获取SysChinaAreaData对象
func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto2.SysChinaAreaDataById, p *actions.DataPermission, model *models2.SysChinaAreaData) error { func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission, model *models.SysChinaAreaData) error {
var data models2.SysChinaAreaData var data models.SysChinaAreaData
err := e.Orm.Model(&data). err := e.Orm.Model(&data).
Scopes( Scopes(
@@ -57,8 +57,8 @@ func (e *SysChinaAreaData) GetSysChinaAreaData(d *dto2.SysChinaAreaDataById, p *
} }
// InsertSysChinaAreaData 创建SysChinaAreaData对象 // InsertSysChinaAreaData 创建SysChinaAreaData对象
func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models2.SysChinaAreaData) error { func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models.SysChinaAreaData) error {
var data models2.SysChinaAreaData var data models.SysChinaAreaData
err := e.Orm.Model(&data). err := e.Orm.Model(&data).
Create(model).Error Create(model).Error
@@ -70,7 +70,7 @@ func (e *SysChinaAreaData) InsertSysChinaAreaData(model *models2.SysChinaAreaDat
} }
// UpdateSysChinaAreaData 修改SysChinaAreaData对象 // UpdateSysChinaAreaData 修改SysChinaAreaData对象
func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models2.SysChinaAreaData, p *actions.DataPermission) error { func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models.SysChinaAreaData, p *actions.DataPermission) error {
db := e.Orm.Model(c). db := e.Orm.Model(c).
Scopes( Scopes(
actions.Permission(c.TableName(), p), actions.Permission(c.TableName(), p),
@@ -86,9 +86,9 @@ func (e *SysChinaAreaData) UpdateSysChinaAreaData(c *models2.SysChinaAreaData, p
} }
// RemoveSysChinaAreaData 删除SysChinaAreaData // RemoveSysChinaAreaData 删除SysChinaAreaData
func (e *SysChinaAreaData) RemoveSysChinaAreaData(d *dto2.SysChinaAreaDataById, p *actions.DataPermission) error { func (e *SysChinaAreaData) RemoveSysChinaAreaData(d *dto.SysChinaAreaDataById, p *actions.DataPermission) error {
var data models2.SysChinaAreaData var data models.SysChinaAreaData
db := e.Orm.Model(&data). db := e.Orm.Model(&data).
Scopes( Scopes(
+3 -3
View File
@@ -3,14 +3,14 @@ package service
import ( import (
"errors" "errors"
"fmt" "fmt"
"go-admin/app/other/models"
"go-admin/app/other/service/dto"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/other/models"
"go-admin/app/other/service/dto"
"go-admin/common/actions" "go-admin/common/actions"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service"
) )
type SysFileDir struct { type SysFileDir struct {
+14 -14
View File
@@ -2,14 +2,14 @@ package service
import ( import (
"errors" "errors"
models2 "go-admin/app/other/models"
dto2 "go-admin/app/other/service/dto"
"gorm.io/gorm" "go-admin/app/other/models"
"go-admin/app/other/service/dto"
"github.com/go-admin-team/go-admin-core/sdk/service"
"go-admin/common/actions" "go-admin/common/actions"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/common/service" "gorm.io/gorm"
) )
type SysFileInfo struct { type SysFileInfo struct {
@@ -17,9 +17,9 @@ type SysFileInfo struct {
} }
// GetSysFileInfoPage 获取SysFileInfo列表 // GetSysFileInfoPage 获取SysFileInfo列表
func (e *SysFileInfo) GetSysFileInfoPage(c *dto2.SysFileInfoSearch, p *actions.DataPermission, list *[]models2.SysFileInfo, count *int64) error { func (e *SysFileInfo) GetSysFileInfoPage(c *dto.SysFileInfoSearch, p *actions.DataPermission, list *[]models.SysFileInfo, count *int64) error {
var err error var err error
var data models2.SysFileInfo var data models.SysFileInfo
err = e.Orm.Model(&data). err = e.Orm.Model(&data).
Scopes( Scopes(
@@ -37,9 +37,9 @@ func (e *SysFileInfo) GetSysFileInfoPage(c *dto2.SysFileInfoSearch, p *actions.D
} }
// GetSysFileInfo 获取SysFileInfo对象 // GetSysFileInfo 获取SysFileInfo对象
func (e *SysFileInfo) GetSysFileInfo(d *dto2.SysFileInfoById, p *actions.DataPermission, model *models2.SysFileInfo) error { func (e *SysFileInfo) GetSysFileInfo(d *dto.SysFileInfoById, p *actions.DataPermission, model *models.SysFileInfo) error {
var err error var err error
var data models2.SysFileInfo var data models.SysFileInfo
db := e.Orm.Model(&data). db := e.Orm.Model(&data).
Scopes( Scopes(
@@ -60,9 +60,9 @@ func (e *SysFileInfo) GetSysFileInfo(d *dto2.SysFileInfoById, p *actions.DataPer
} }
// InsertSysFileInfo 创建SysFileInfo对象 // InsertSysFileInfo 创建SysFileInfo对象
func (e *SysFileInfo) InsertSysFileInfo(model *dto2.SysFileInfoControl) error { func (e *SysFileInfo) InsertSysFileInfo(model *dto.SysFileInfoControl) error {
var err error var err error
var data *models2.SysFileInfo var data *models.SysFileInfo
data, err = model.Generate() data, err = model.Generate()
if err != nil { if err != nil {
@@ -80,9 +80,9 @@ func (e *SysFileInfo) InsertSysFileInfo(model *dto2.SysFileInfoControl) error {
} }
// UpdateSysFileInfo 修改SysFileInfo对象 // UpdateSysFileInfo 修改SysFileInfo对象
func (e *SysFileInfo) UpdateSysFileInfo(c *dto2.SysFileInfoControl, p *actions.DataPermission) error { func (e *SysFileInfo) UpdateSysFileInfo(c *dto.SysFileInfoControl, p *actions.DataPermission) error {
var err error var err error
var data *models2.SysFileInfo var data *models.SysFileInfo
data, err = c.Generate() data, err = c.Generate()
if err != nil { if err != nil {
@@ -105,9 +105,9 @@ func (e *SysFileInfo) UpdateSysFileInfo(c *dto2.SysFileInfoControl, p *actions.D
} }
// RemoveSysFileInfo 删除SysFileInfo // RemoveSysFileInfo 删除SysFileInfo
func (e *SysFileInfo) RemoveSysFileInfo(d *dto2.SysFileInfoById, p *actions.DataPermission) error { func (e *SysFileInfo) RemoveSysFileInfo(d *dto.SysFileInfoById, p *actions.DataPermission) error {
var err error var err error
var data models2.SysFileInfo var data models.SysFileInfo
db := e.Orm.Model(&data). db := e.Orm.Model(&data).
Scopes( Scopes(
+1 -1
View File
@@ -35,7 +35,7 @@ var rootCmd = &cobra.Command{
func tip() { func tip() {
usageStr := `欢迎使用 ` + pkg.Green(`go-admin `+global.Version) + ` 可以使用 ` + pkg.Red(`-h`) + ` 查看命令` usageStr := `欢迎使用 ` + pkg.Green(`go-admin `+global.Version) + ` 可以使用 ` + pkg.Red(`-h`) + ` 查看命令`
usageStr1 := `也可以参考 http://doc.zhangwj.com/go-admin-site/guide/ksks.html 里边的【启动】章节` usageStr1 := `也可以参考 https://doc.go-admin.dev/guide/ksks.html 里边的【启动】章节`
fmt.Printf("%s\n", usageStr) fmt.Printf("%s\n", usageStr)
fmt.Printf("%s\n", usageStr1) fmt.Printf("%s\n", usageStr1)
} }
-137
View File
@@ -1,137 +0,0 @@
package apis
import (
"errors"
"fmt"
"github.com/gin-gonic/gin/binding"
"go-admin/common/service"
"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"
"github.com/go-admin-team/go-admin-core/sdk/pkg/logger"
"github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"gorm.io/gorm"
)
type Api struct {
Context *gin.Context
Logger *logger.Logger
Orm *gorm.DB
Errors error
}
func (e *Api) AddError(err error) {
if e.Errors == nil {
e.Errors = err
} else if err != nil {
e.Logger.Error(err)
e.Errors = fmt.Errorf("%v; %w", e.Error, err)
}
}
// MakeContext 设置http上下文
func (e *Api) MakeContext(c *gin.Context) *Api {
fmt.Println(&c)
e.Context = c
e.Logger = api.GetRequestLogger(c)
fmt.Println(&e.Context)
return e
}
// GetLogger 获取上下文提供的日志
func (e Api) GetLogger() *logger.Logger {
return api.GetRequestLogger(e.Context)
}
func (e *Api) Bind(d interface{}, bindings ...binding.Binding) *Api {
var err error
if len(bindings) == 0 {
bindings = append(bindings, binding.JSON, nil)
}
for i := range bindings {
switch bindings[i] {
case binding.JSON:
err = e.Context.ShouldBindWith(d, binding.JSON)
case binding.XML:
err = e.Context.ShouldBindWith(d, binding.XML)
case binding.Form:
err = e.Context.ShouldBindWith(d, binding.Form)
case binding.Query:
err = e.Context.ShouldBindWith(d, binding.Query)
case binding.FormPost:
err = e.Context.ShouldBindWith(d, binding.FormPost)
case binding.FormMultipart:
err = e.Context.ShouldBindWith(d, binding.FormMultipart)
case binding.ProtoBuf:
err = e.Context.ShouldBindWith(d, binding.ProtoBuf)
case binding.MsgPack:
err = e.Context.ShouldBindWith(d, binding.MsgPack)
case binding.YAML:
err = e.Context.ShouldBindWith(d, binding.YAML)
case binding.Header:
err = e.Context.ShouldBindWith(d, binding.Header)
default:
err = e.Context.ShouldBindUri(d)
}
if err != nil {
e.AddError(err)
}
}
return e
}
// GetOrm 获取Orm DB
func (e Api) GetOrm() (*gorm.DB, error) {
db, err := pkg.GetOrm(e.Context)
if err != nil {
e.Error(http.StatusInternalServerError, err, "数据库连接获取失败")
return nil, err
}
return db, nil
}
// MakeOrm 设置Orm DB
func (e *Api) MakeOrm() *Api {
var err error
if e.Logger == nil {
err = errors.New("at MakeOrm logger is nil")
//e.Logger.Error(http.StatusInternalServerError, err, "at MakeOrm logger is nil")
e.AddError(err)
return e
}
db, err := pkg.GetOrm(e.Context)
if err != nil {
e.Logger.Error(http.StatusInternalServerError, err, "数据库连接获取失败")
e.AddError(err)
}
e.Orm = db
return e
}
func (e *Api) MakeService(c *service.Service) *Api {
c.Log = e.Logger
c.Orm = e.Orm
return e
}
// Error 通常错误数据处理
func (e Api) Error(code int, err error, msg string) {
response.Error(e.Context, code, err, msg)
}
// OK 通常成功数据处理
func (e Api) OK(data interface{}, msg string) {
response.OK(e.Context, data, msg)
}
// PageOK 分页数据处理
func (e Api) PageOK(result interface{}, count int, pageIndex int, pageSize int, msg string) {
response.PageOK(e.Context, result, count, pageIndex, pageSize, msg)
}
// Custom 兼容函数
func (e Api) Custom(data gin.H) {
response.Custum(e.Context, data)
}
-10
View File
@@ -1,10 +0,0 @@
package apis
// GetRequestLogger 获取上下文提供的日志
//func GetRequestLogger(c *gin.Context) *logger.Logger {
// requestId := pkg.GenerateMsgIDFromContext(c)
// log := sdk.Runtime.GetLogger().Fields(map[string]interface{}{
// strings.ToLower(pkg.TrafficKey): requestId,
// })
// return &logger.Logger{Logger: log}
//}
-4
View File
@@ -60,10 +60,6 @@ func setupSimpleDatabase(host string, c *toolsConfig.Database) {
e := mycasbin.Setup(db, "sys_") e := mycasbin.Setup(db, "sys_")
//if host == "*" {
// global.Eloquent = db
//}
sdk.Runtime.SetDb(host, db) sdk.Runtime.SetDb(host, db)
sdk.Runtime.SetCasbin(host, e) sdk.Runtime.SetCasbin(host, e)
} }
+5 -4
View File
@@ -14,10 +14,11 @@ type ALiYunOSS struct {
} }
func (e *ALiYunOSS) Setup() error { func (e *ALiYunOSS) Setup() error {
e.AccessKeyId = "LTAI4G3S4hDLxg6Zmu4UTBwG" // TODO: 如果需要使用阿里云OSS请在此处填写对应信息
e.AccessKeySecret = "C8sj70orL03bwk6wNXX0jbNjAbLCb8" e.AccessKeyId = ""
e.Endpoint = "oss-cn-shanghai.aliyuncs.com" e.AccessKeySecret = ""
e.BucketName = "youshikeji" e.Endpoint = ""
e.BucketName = ""
client, err := oss.New(e.Endpoint, e.AccessKeyId, e.AccessKeySecret) client, err := oss.New(e.Endpoint, e.AccessKeyId, e.AccessKeySecret)
if err != nil { if err != nil {
-24
View File
@@ -1,24 +0,0 @@
package service
import (
"fmt"
"github.com/go-admin-team/go-admin-core/sdk/pkg/logger"
"gorm.io/gorm"
)
type Service struct {
Orm *gorm.DB
Msg string
MsgID string
Log *logger.Logger
Error error
}
func (db *Service) AddError(err error) error {
if db.Error == nil {
db.Error = err
} else if err != nil {
db.Error = fmt.Errorf("%v; %w", db.Error, err)
}
return db.Error
}
+2 -2
View File
@@ -4,6 +4,7 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "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/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
@@ -11,11 +12,10 @@ import (
"go-admin/app/{{.PackageName}}/service" "go-admin/app/{{.PackageName}}/service"
"go-admin/app/{{.PackageName}}/service/dto" "go-admin/app/{{.PackageName}}/service/dto"
"go-admin/common/actions" "go-admin/common/actions"
"go-admin/common/apis"
) )
type {{.ClassName}} struct { type {{.ClassName}} struct {
apis.Api api.Api
} }
// Get{{.ClassName}}List 获取{{.TableComment}}列表 // Get{{.ClassName}}List 获取{{.TableComment}}列表
+1 -1
View File
@@ -3,13 +3,13 @@ package service
import ( import (
"errors" "errors"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm" "gorm.io/gorm"
"go-admin/app/{{.PackageName}}/models" "go-admin/app/{{.PackageName}}/models"
"go-admin/common/actions" "go-admin/common/actions"
cDto "go-admin/common/dto" cDto "go-admin/common/dto"
"go-admin/app/{{.PackageName}}/service/dto" "go-admin/app/{{.PackageName}}/service/dto"
"go-admin/common/service"
) )
type {{.ClassName}} struct { type {{.ClassName}} struct {