refactor🎨: 缩减函数名称

This commit is contained in:
zhangwenjian
2021-06-07 16:39:26 +08:00
parent 6e01c13e1c
commit 190dcfedc0
12 changed files with 164 additions and 353 deletions
+2 -38
View File
@@ -1,14 +1,9 @@
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"
"github.com/go-admin-team/go-admin-core/sdk/api"
"go-admin/common/dto"
)
@@ -39,16 +34,6 @@ func (m *SysRoleSearch) GetNeedSearch() interface{} {
return *m
}
// Bind 映射上下文中的结构体数据
func (m *SysRoleSearch) 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 SysRoleControl struct {
RoleId int `uri:"id" comment:"角色编码"` // 角色编码
@@ -73,28 +58,7 @@ func (s *SysRoleControl) SetUpdateBy(id int) {
s.UpdateBy = id
}
// Bind 映射上下文中的结构体数据
func (s *SysRoleControl) Bind(ctx *gin.Context) error {
log := api.GetRequestLogger(ctx)
err := ctx.ShouldBindBodyWith(s, binding.JSON)
if err != nil {
log.Debugf("ShouldBind error: %s", err.Error())
}
err = ctx.ShouldBindUri(s)
if err != nil {
log.Debugf("ShouldBindUri error: %s", err.Error())
return err
}
var jsonStr []byte
jsonStr, err = json.Marshal(s)
if err != nil {
log.Debugf("ShouldBind error: %s", err.Error())
}
ctx.Set("body", string(jsonStr))
return err
}
// Generate 结构体数据转化 从 SysConfigControl 至 system.SysConfig 对应的模型
// Generate 结构体数据转化
func (s *SysRoleControl) Generate(model *models.SysRole) {
if s.RoleId != 0 {
model.RoleId = s.RoleId
@@ -107,7 +71,7 @@ func (s *SysRoleControl) Generate(model *models.SysRole) {
model.Remark = s.Remark
model.Admin = s.Admin
model.DataScope = s.DataScope
model.SysMenu = s.SysMenu
model.SysMenu = &s.SysMenu
}
-92
View File
@@ -1,92 +0,0 @@
package dto
import (
"encoding/json"
"github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk/api"
"go-admin/app/admin/models"
)
// SysConfigControl 增、改使用的结构体
type SysSettingControl struct {
SettingsId int `json:"settings_id" binding:"required"` // 头像
Name string `json:"name" binding:"required"` // 名称
Logo string `json:"logo" binding:"required"` // 头像
}
// Bind 映射上下文中的结构体数据
func (s *SysSettingControl) Bind(ctx *gin.Context) error {
log := api.GetRequestLogger(ctx)
err := ctx.ShouldBind(s)
if err != nil {
log.Errorf("ShouldBind error: %s", err.Error())
return err
}
err = ctx.ShouldBindUri(s)
if err != nil {
log.Errorf("ShouldBindUri error: %s", err.Error())
return err
}
var jsonStr []byte
jsonStr, err = json.Marshal(s)
if err != nil {
log.Debugf("ShouldBind error: %s", err.Error())
}
ctx.Set("body", string(jsonStr))
return err
}
// Generate 结构体数据转化 从 SysConfigControl 至 system.SysConfig 对应的模型
func (s *SysSettingControl) Generate() (*models.SysSetting, error) {
return &models.SysSetting{
SettingsId: s.SettingsId,
Name: s.Name,
Logo: s.Logo,
}, nil
}
// GetId 获取数据对应的ID
func (s *SysSettingControl) GetId() interface{} {
return s.SettingsId
}
// SysConfigById 获取单个或者删除的结构体
type SysSettingById struct {
Id int `uri:"id"`
Ids []int `json:"ids"`
}
func (s *SysSettingById) Generate() *SysSettingById {
cp := *s
return &cp
}
func (s *SysSettingById) GetId() interface{} {
if len(s.Ids) > 0 {
s.Ids = append(s.Ids, s.Id)
return s.Ids
}
return s.Id
}
func (s *SysSettingById) Bind(ctx *gin.Context) error {
log := api.GetRequestLogger(ctx)
err := ctx.ShouldBindUri(s)
if err != nil {
log.Debugf("ShouldBindUri error: %s", err.Error())
return err
}
err = ctx.ShouldBind(s)
if err != nil {
log.Debugf("ShouldBind error: %s", err.Error())
}
return err
}
func (s *SysSettingById) GenerateM() (*models.SysSetting, error) {
return &models.SysSetting{}, nil
}
+4 -1
View File
@@ -16,9 +16,9 @@ type SysUserSearch struct {
RoleId string `form:"roleId" search:"type:exact;column:role_id;table:sys_user" comment:"角色ID"`
Sex string `form:"sex" search:"type:exact;column:sex;table:sys_user" comment:"性别"`
Email string `form:"email" search:"type:contains;column:email;table:sys_user" comment:"邮箱"`
DeptId string `form:"deptId" search:"type:exact;column:dept_id;table:sys_user" comment:"部门"`
PostId string `form:"postId" search:"type:exact;column:post_id;table:sys_user" comment:"岗位"`
Status string `form:"status" search:"type:exact;column:status;table:sys_user" comment:"状态"`
DeptJoin `search:"type:left;on:dept_id:dept_id;table:sys_user;join:sys_dept"`
SysUserOrder
}
@@ -29,6 +29,9 @@ type SysUserOrder struct {
CreatedAtOrder string `search:"type:order;column:created_at;table:sys_user" form:"createdAtOrder"`
}
type DeptJoin struct {
DeptId string `search:"type:contains;column:dept_path;table:sys_dept" form:"deptId"`
}
func (m *SysUserSearch) GetNeedSearch() interface{} {
return *m
+22 -22
View File
@@ -18,8 +18,8 @@ type SysApi struct {
service.Service
}
// GetSysApiPage 获取SysApi列表
func (e *SysApi) GetSysApiPage(c *dto.SysApiSearch, p *actions.DataPermission, list *[]models.SysApi, count *int64) error {
// GetPage 获取SysApi列表
func (e *SysApi) GetPage(c *dto.SysApiSearch, p *actions.DataPermission, list *[]models.SysApi, count *int64) error {
var err error
var data models.SysApi
@@ -38,8 +38,8 @@ func (e *SysApi) GetSysApiPage(c *dto.SysApiSearch, p *actions.DataPermission, l
return nil
}
// GetSysApi 获取SysApi对象
func (e *SysApi) GetSysApi(d *dto.SysApiById, p *actions.DataPermission, model *models.SysApi) *SysApi {
// Get 获取SysApi对象with id
func (e *SysApi) Get(d *dto.SysApiById, p *actions.DataPermission, model *models.SysApi) *SysApi {
var data models.SysApi
err := e.Orm.Model(&data).
Scopes(
@@ -60,22 +60,8 @@ func (e *SysApi) GetSysApi(d *dto.SysApiById, p *actions.DataPermission, model *
return e
}
// CheckStorageSysApi 创建SysApi对象
func (e *SysApi) CheckStorageSysApi(c *[]runtime.Router) error {
for _, v := range *c {
err := e.Orm.Debug().Where(models.SysApi{Path: v.RelativePath, Action: v.HttpMethod}).
Attrs(models.SysApi{Handle: v.Handler}).
FirstOrCreate(&models.SysApi{}).Error
if err != nil {
err := fmt.Errorf("Service CheckStorageSysApi error: %s \r\n ", err.Error())
return err
}
}
return nil
}
// UpdateSysApi 修改SysApi对象
func (e *SysApi) UpdateSysApi(c *dto.SysApiControl, p *actions.DataPermission) error {
// Update 修改SysApi对象
func (e *SysApi) Update(c *dto.SysApiControl, p *actions.DataPermission) error {
var model = models.SysApi{}
db := e.Orm.Debug().First(&model, c.GetId())
if db.RowsAffected == 0 {
@@ -91,8 +77,8 @@ func (e *SysApi) UpdateSysApi(c *dto.SysApiControl, p *actions.DataPermission) e
return nil
}
// RemoveSysApi 删除SysApi
func (e *SysApi) RemoveSysApi(d *dto.SysApiById, p *actions.DataPermission) error {
// Remove 删除SysApi
func (e *SysApi) Remove(d *dto.SysApiById, p *actions.DataPermission) error {
var data models.SysApi
db := e.Orm.Model(&data).
@@ -108,3 +94,17 @@ func (e *SysApi) RemoveSysApi(d *dto.SysApiById, p *actions.DataPermission) erro
}
return nil
}
// CheckStorageSysApi 创建SysApi对象
func (e *SysApi) CheckStorageSysApi(c *[]runtime.Router) error {
for _, v := range *c {
err := e.Orm.Debug().Where(models.SysApi{Path: v.RelativePath, Action: v.HttpMethod}).
Attrs(models.SysApi{Handle: v.Handler}).
FirstOrCreate(&models.SysApi{}).Error
if err != nil {
err := fmt.Errorf("Service CheckStorageSysApi error: %s \r\n ", err.Error())
return err
}
}
return nil
}
+28 -28
View File
@@ -13,8 +13,8 @@ type SysConfig struct {
service.Service
}
// GetSysConfigPage 获取SysConfig列表
func (e *SysConfig) GetSysConfigPage(c *dto.SysConfigSearch, list *[]models.SysConfig, count *int64) error {
// GetPage 获取SysConfig列表
func (e *SysConfig) GetPage(c *dto.SysConfigSearch, list *[]models.SysConfig, count *int64) error {
err := e.Orm.
Scopes(
cDto.MakeCondition(c.GetNeedSearch()),
@@ -29,22 +29,8 @@ func (e *SysConfig) GetSysConfigPage(c *dto.SysConfigSearch, list *[]models.SysC
return nil
}
func (e *SysConfig) GetSysConfigByKey(c *dto.SysConfigSearch, list *[]models.SysConfig) error {
var err error
err = e.Orm.
Scopes(
cDto.MakeCondition(c.GetNeedSearch()),
).
Find(list).Error
if err != nil {
e.Log.Errorf("Service GetSysConfigByKey error:%s", err)
return err
}
return nil
}
// GetSysConfig 获取SysConfig对象
func (e *SysConfig) GetSysConfig(d *dto.SysConfigById, model *models.SysConfig) error {
// Get 获取SysConfig对象
func (e *SysConfig) Get(d *dto.SysConfigById, model *models.SysConfig) error {
err := e.Orm.First(model, d.GetId()).Error
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("查看对象不存在或无权查看")
@@ -58,8 +44,8 @@ func (e *SysConfig) GetSysConfig(d *dto.SysConfigById, model *models.SysConfig)
return nil
}
// InsertSysConfig 创建SysConfig对象
func (e *SysConfig) InsertSysConfig(c *dto.SysConfigControl) error {
// Insert 创建SysConfig对象
func (e *SysConfig) Insert(c *dto.SysConfigControl) error {
var err error
var data models.SysConfig
c.Generate(&data)
@@ -71,8 +57,8 @@ func (e *SysConfig) InsertSysConfig(c *dto.SysConfigControl) error {
return nil
}
// UpdateSysConfig 修改SysConfig对象
func (e *SysConfig) UpdateSysConfig(c *dto.SysConfigControl) error {
// Update 修改SysConfig对象
func (e *SysConfig) Update(c *dto.SysConfigControl) error {
var err error
var model = models.SysConfig{}
e.Orm.First(&model, c.GetId())
@@ -112,7 +98,7 @@ func (e *SysConfig) SetSysConfig(c *[]dto.GetSetSysConfigReq) error {
return nil
}
func (e *SysConfig) GetSetSysConfig(c *[]dto.GetSetSysConfigReq) error {
func (e *SysConfig) GetForSet(c *[]dto.GetSetSysConfigReq) error {
var err error
var data models.SysConfig
@@ -125,7 +111,7 @@ func (e *SysConfig) GetSetSysConfig(c *[]dto.GetSetSysConfigReq) error {
return nil
}
func (e *SysConfig) UpdateSetSysConfig(c *[]dto.GetSetSysConfigReq) error {
func (e *SysConfig) UpdateForSet(c *[]dto.GetSetSysConfigReq) error {
m := *c
for _, req := range m {
var data models.SysConfig
@@ -148,8 +134,8 @@ func (e *SysConfig) UpdateSetSysConfig(c *[]dto.GetSetSysConfigReq) error {
return nil
}
// RemoveSysConfig 删除SysConfig
func (e *SysConfig) RemoveSysConfig(d *dto.SysConfigById) error {
// Remove 删除SysConfig
func (e *SysConfig) Remove(d *dto.SysConfigById) error {
var err error
var data models.SysConfig
@@ -166,8 +152,8 @@ func (e *SysConfig) RemoveSysConfig(d *dto.SysConfigById) error {
return nil
}
// GetSysConfigByKEY 根据Key获取SysConfig
func (e *SysConfig) GetSysConfigByKEY(c *dto.SysConfigByKeyReq, resp *dto.GetSysConfigByKEYForServiceResp) error {
// GetWithKey 根据Key获取SysConfig
func (e *SysConfig) GetWithKey(c *dto.SysConfigByKeyReq, resp *dto.GetSysConfigByKEYForServiceResp) error {
var err error
var data models.SysConfig
err = e.Orm.Table(data.TableName()).Where("config_key = ?", c.ConfigKey).First(resp).Error
@@ -178,3 +164,17 @@ func (e *SysConfig) GetSysConfigByKEY(c *dto.SysConfigByKeyReq, resp *dto.GetSys
return nil
}
func (e *SysConfig) GetWithKeyList(c *dto.SysConfigSearch, list *[]models.SysConfig) error {
var err error
err = e.Orm.
Scopes(
cDto.MakeCondition(c.GetNeedSearch()),
).
Find(list).Error
if err != nil {
e.Log.Errorf("Service GetSysConfigByKey error:%s", err)
return err
}
return nil
}
+35 -42
View File
@@ -17,8 +17,8 @@ type SysDept struct {
service.Service
}
// GetSysDeptPage 获取SysDept列表
func (e *SysDept) GetSysDeptPage(c *dto.SysDeptSearch, list *[]models.SysDept) error {
// GetPage 获取SysDept列表
func (e *SysDept) GetPage(c *dto.SysDeptSearch, list *[]models.SysDept) error {
var err error
var data models.SysDept
@@ -34,8 +34,8 @@ func (e *SysDept) GetSysDeptPage(c *dto.SysDeptSearch, list *[]models.SysDept) e
return nil
}
// GetSysDept 获取SysDept对象
func (e *SysDept) GetSysDept(d *dto.SysDeptById, model *models.SysDept) error {
// Get 获取SysDept对象
func (e *SysDept) Get(d *dto.SysDeptById, model *models.SysDept) error {
var err error
var data models.SysDept
@@ -54,8 +54,8 @@ func (e *SysDept) GetSysDept(d *dto.SysDeptById, model *models.SysDept) error {
return nil
}
// InsertSysDept 创建SysDept对象
func (e *SysDept) InsertSysDept(c *dto.SysDeptControl) error {
// Insert 创建SysDept对象
func (e *SysDept) Insert(c *dto.SysDeptControl) error {
var err error
var data models.SysDept
c.Generate(&data)
@@ -64,13 +64,13 @@ func (e *SysDept) InsertSysDept(c *dto.SysDeptControl) error {
e.Log.Errorf("db error:%s", err)
return err
}
deptPath := "/" + pkg.IntToString(data.DeptId)
deptPath := pkg.IntToString(data.DeptId) + "/"
if data.ParentId != 0 {
var deptP models.SysDept
e.Orm.First(&deptP, data.ParentId)
deptPath = deptP.DeptPath + deptPath
} else {
deptPath = "/0" + deptPath
deptPath = "/0/" + deptPath
}
var mp = map[string]string{}
mp["dept_path"] = deptPath
@@ -81,29 +81,35 @@ func (e *SysDept) InsertSysDept(c *dto.SysDeptControl) error {
return nil
}
// UpdateSysDept 修改SysDept对象
func (e *SysDept) UpdateSysDept(c *dto.SysDeptControl) error {
// Update 修改SysDept对象
func (e *SysDept) Update(c *dto.SysDeptControl) error {
var err error
var model = models.SysDept{}
e.Orm.First(&model, c.GetId())
c.Generate(&model)
db := e.Orm.Where(c.GetId()).Updates(c)
deptPath := pkg.IntToString(model.DeptId) + "/"
if model.ParentId != 0 {
var deptP models.SysDept
e.Orm.First(&deptP, model.ParentId)
deptPath = deptP.DeptPath + deptPath
} else {
deptPath = "/0/" + deptPath
}
model.DeptPath = deptPath
db := e.Orm.Save(&model)
if db.Error != nil {
e.Log.Errorf("db error:%s", err)
e.Log.Errorf("UpdateSysDept error:%s", err)
return err
}
if db.RowsAffected == 0 {
return errors.New("无权更新该数据")
}
//参数1:是要修改的数据
//参数2:是修改的数据
return nil
}
// RemoveSysDept 删除SysDept
func (e *SysDept) RemoveSysDept(d *dto.SysDeptById) error {
// Remove 删除SysDept
func (e *SysDept) Remove(d *dto.SysDeptById) error {
var err error
var data models.SysDept
@@ -122,7 +128,7 @@ func (e *SysDept) RemoveSysDept(d *dto.SysDeptById) error {
}
// GetSysDeptList 获取组织数据
func (e *SysDept) getSysDeptList(c *dto.SysDeptSearch, list *[]models.SysDept) error {
func (e *SysDept) getList(c *dto.SysDeptSearch, list *[]models.SysDept) error {
var err error
var data models.SysDept
@@ -141,7 +147,7 @@ func (e *SysDept) getSysDeptList(c *dto.SysDeptSearch, list *[]models.SysDept) e
// SetDeptTree 设置组织数据
func (e *SysDept) SetDeptTree(c *dto.SysDeptSearch) (m []dto.DeptLabel, err error) {
var list []models.SysDept
err = e.getSysDeptList(c, &list)
err = e.getList(c, &list)
m = make([]dto.DeptLabel, 0)
for i := 0; i < len(list); i++ {
@@ -159,15 +165,15 @@ func (e *SysDept) SetDeptTree(c *dto.SysDeptSearch) (m []dto.DeptLabel, err erro
}
// Call 递归构造组织数据
func deptTreeCall(deptlist *[]models.SysDept, dept dto.DeptLabel) dto.DeptLabel {
list := *deptlist
func deptTreeCall(deptList *[]models.SysDept, dept dto.DeptLabel) dto.DeptLabel {
list := *deptList
min := make([]dto.DeptLabel, 0)
for j := 0; j < len(list); j++ {
if dept.Id != list[j].ParentId {
continue
}
mi := dto.DeptLabel{Id: list[j].DeptId, Label: list[j].DeptName, Children: []dto.DeptLabel{}}
ms := deptTreeCall(deptlist, mi)
ms := deptTreeCall(deptList, mi)
min = append(min, ms)
}
dept.Children = min
@@ -177,15 +183,12 @@ func deptTreeCall(deptlist *[]models.SysDept, dept dto.DeptLabel) dto.DeptLabel
// SetDeptPage 设置dept页面数据
func (e *SysDept) SetDeptPage(c *dto.SysDeptSearch) (m []models.SysDept, err error) {
var list []models.SysDept
err = e.getSysDeptList(c, &list)
//m := make([]models.SysDept, 0)
err = e.getList(c, &list)
for i := 0; i < len(list); i++ {
if list[i].ParentId != 0 {
continue
}
info := e.deptPageCall(&list, list[i])
m = append(m, info)
}
return
@@ -193,10 +196,8 @@ func (e *SysDept) SetDeptPage(c *dto.SysDeptSearch) (m []models.SysDept, err err
func (e *SysDept) deptPageCall(deptlist *[]models.SysDept, menu models.SysDept) models.SysDept {
list := *deptlist
min := make([]models.SysDept, 0)
for j := 0; j < len(list); j++ {
if menu.DeptId != list[j].ParentId {
continue
}
@@ -214,14 +215,13 @@ func (e *SysDept) deptPageCall(deptlist *[]models.SysDept, menu models.SysDept)
mi.Children = []models.SysDept{}
ms := e.deptPageCall(deptlist, mi)
min = append(min, ms)
}
menu.Children = min
return menu
}
// GetRoleDeptId 获取角色的部门ID集合
func (e *SysDept) GetRoleDeptId(roleId int) ([]int, error) {
func (e *SysDept) GetWithRoleId(roleId int) ([]int, error) {
deptIds := make([]int, 0)
deptList := make([]dto.DeptIdList, 0)
if err := e.Orm.Table("sys_role_dept").
@@ -232,11 +232,9 @@ func (e *SysDept) GetRoleDeptId(roleId int) ([]int, error) {
Find(&deptList).Error; err != nil {
return nil, err
}
for i := 0; i < len(deptList); i++ {
deptIds = append(deptIds, deptList[i].DeptId)
}
return deptIds, nil
}
@@ -247,7 +245,6 @@ func (e *SysDept) SetDeptLabel() (m []dto.DeptLabel, err error) {
log.Error("find dept list error, %s", err.Error())
return
}
m = make([]dto.DeptLabel, 0)
var item dto.DeptLabel
for i := range list {
@@ -257,28 +254,24 @@ func (e *SysDept) SetDeptLabel() (m []dto.DeptLabel, err error) {
item = dto.DeptLabel{}
item.Id = list[i].DeptId
item.Label = list[i].DeptName
deptInfo := digitDeptLabel(&list, item)
deptInfo := deptLabelCall(&list, item)
m = append(m, deptInfo)
}
return
}
// digitDeptLabel
func digitDeptLabel(deptList *[]models.SysDept, dept dto.DeptLabel) dto.DeptLabel {
// deptLabelCall
func deptLabelCall(deptList *[]models.SysDept, dept dto.DeptLabel) dto.DeptLabel {
list := *deptList
var mi dto.DeptLabel
min := make([]dto.DeptLabel, 0)
for j := 0; j < len(list); j++ {
if dept.Id != list[j].ParentId {
continue
}
mi = dto.DeptLabel{Id: list[j].DeptId, Label: list[j].DeptName, Children: []dto.DeptLabel{}}
ms := digitDeptLabel(deptList, mi)
ms := deptLabelCall(deptList, mi)
min = append(min, ms)
}
dept.Children = min
return dept
+3 -3
View File
@@ -16,7 +16,7 @@ type SysLoginLog struct {
}
// GetSysLoginLogPage 获取SysLoginLog列表
func (e *SysLoginLog) GetSysLoginLogPage(c *dto.SysLoginLogSearch, list *[]models.SysLoginLog, count *int64) error {
func (e *SysLoginLog) GetPage(c *dto.SysLoginLogSearch, list *[]models.SysLoginLog, count *int64) error {
var err error
var data models.SysLoginLog
@@ -35,7 +35,7 @@ func (e *SysLoginLog) GetSysLoginLogPage(c *dto.SysLoginLogSearch, list *[]model
}
// GetSysLoginLog 获取SysLoginLog对象
func (e *SysLoginLog) GetSysLoginLog(d *dto.SysLoginLogById, model *models.SysLoginLog) error {
func (e *SysLoginLog) Get(d *dto.SysLoginLogById, model *models.SysLoginLog) error {
var err error
db := e.Orm.First(model, d.GetId())
err = db.Error
@@ -52,7 +52,7 @@ func (e *SysLoginLog) GetSysLoginLog(d *dto.SysLoginLogById, model *models.SysLo
}
// RemoveSysLoginLog 删除SysLoginLog
func (e *SysLoginLog) RemoveSysLoginLog(c *dto.SysLoginLogById) error {
func (e *SysLoginLog) Remove(c *dto.SysLoginLogById) error {
var err error
var data models.SysLoginLog
+24 -18
View File
@@ -19,9 +19,9 @@ type SysMenu struct {
}
// GetSysMenuPage 获取SysMenu列表
func (e *SysMenu) GetSysMenuPage(c *dto.SysMenuSearch, menus *[]models.SysMenu) *SysMenu {
func (e *SysMenu) GetPage(c *dto.SysMenuSearch, menus *[]models.SysMenu) *SysMenu {
var menu = make([]models.SysMenu, 0)
err := e.getSysMenuPage(c, &menu).Error
err := e.getPage(c, &menu).Error
if err != nil {
_ = e.AddError(err)
return e
@@ -37,7 +37,7 @@ func (e *SysMenu) GetSysMenuPage(c *dto.SysMenuSearch, menus *[]models.SysMenu)
}
// getSysMenuPage 菜单分页列表
func (e *SysMenu) getSysMenuPage(c *dto.SysMenuSearch, list *[]models.SysMenu) *SysMenu {
func (e *SysMenu) getPage(c *dto.SysMenuSearch, list *[]models.SysMenu) *SysMenu {
var err error
var data models.SysMenu
@@ -56,7 +56,7 @@ func (e *SysMenu) getSysMenuPage(c *dto.SysMenuSearch, list *[]models.SysMenu) *
}
// GetSysMenu 获取SysMenu对象
func (e *SysMenu) GetSysMenu(d *dto.SysMenuById, model *models.SysMenu) *SysMenu {
func (e *SysMenu) Get(d *dto.SysMenuById, model *models.SysMenu) *SysMenu {
var err error
var data models.SysMenu
@@ -83,7 +83,7 @@ func (e *SysMenu) GetSysMenu(d *dto.SysMenuById, model *models.SysMenu) *SysMenu
}
// InsertSysMenu 创建SysMenu对象
func (e *SysMenu) InsertSysMenu(c *dto.SysMenuControl) *SysMenu {
func (e *SysMenu) Insert(c *dto.SysMenuControl) *SysMenu {
var err error
var data models.SysMenu
c.Generate(&data)
@@ -114,7 +114,7 @@ func (e *SysMenu) initPaths(menu *models.SysMenu) error {
}
// UpdateSysMenu 修改SysMenu对象
func (e *SysMenu) UpdateSysMenu(c *dto.SysMenuControl) *SysMenu {
func (e *SysMenu) Update(c *dto.SysMenuControl) *SysMenu {
var err error
var model = models.SysMenu{}
e.Orm.First(&model, c.GetId())
@@ -133,7 +133,7 @@ func (e *SysMenu) UpdateSysMenu(c *dto.SysMenuControl) *SysMenu {
}
// RemoveSysMenu 删除SysMenu
func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) *SysMenu {
func (e *SysMenu) Remove(d *dto.SysMenuById) *SysMenu {
var err error
var data models.SysMenu
@@ -151,7 +151,7 @@ func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) *SysMenu {
}
// GetSysMenuList 获取菜单数据
func (e *SysMenu) GetSysMenuList(c *dto.SysMenuSearch, list *[]models.SysMenu) error {
func (e *SysMenu) GetList(c *dto.SysMenuSearch, list *[]models.SysMenu) error {
var err error
var data models.SysMenu
@@ -168,9 +168,9 @@ func (e *SysMenu) GetSysMenuList(c *dto.SysMenuSearch, list *[]models.SysMenu) e
}
// SetSysMenuLabel 设置菜单数据
func (e *SysMenu) SetSysMenuLabel() (m []dto.MenuLabel, err error) {
func (e *SysMenu) SetLabel() (m []dto.MenuLabel, err error) {
var list []models.SysMenu
err = e.GetSysMenuList(&dto.SysMenuSearch{}, &list)
err = e.GetList(&dto.SysMenuSearch{}, &list)
m = make([]dto.MenuLabel, 0)
for i := 0; i < len(list); i++ {
@@ -188,12 +188,18 @@ func (e *SysMenu) SetSysMenuLabel() (m []dto.MenuLabel, err error) {
}
// GetSysMenuByRoleName 左侧菜单
func (e *SysMenu) GetSysMenuByRoleName(roleName string) ([]models.SysMenu, error) {
func (e *SysMenu) GetSysMenuByRoleName(roleName ...string) ([]models.SysMenu, error) {
var MenuList []models.SysMenu
var role models.SysRole
var err error
admin := false
for _, s := range roleName {
if s == "admin" {
admin = true
}
}
if roleName == "admin" {
if len(roleName) > 0 && admin {
var data []models.SysMenu
err = e.Orm.Where(" menu_type in ('M','C')").
Order("sort").
@@ -203,9 +209,9 @@ func (e *SysMenu) GetSysMenuByRoleName(roleName string) ([]models.SysMenu, error
} else {
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).
}).Where("role_name in ?", roleName).Find(&role).
Error
MenuList = role.SysMenu
MenuList = *role.SysMenu
}
if err != nil {
@@ -215,8 +221,8 @@ func (e *SysMenu) GetSysMenuByRoleName(roleName string) ([]models.SysMenu, error
}
// menuLabelCall 递归构造组织数据
func menuLabelCall(elist *[]models.SysMenu, dept dto.MenuLabel) dto.MenuLabel {
list := *elist
func menuLabelCall(eList *[]models.SysMenu, dept dto.MenuLabel) dto.MenuLabel {
list := *eList
min := make([]dto.MenuLabel, 0)
for j := 0; j < len(list); j++ {
@@ -229,7 +235,7 @@ func menuLabelCall(elist *[]models.SysMenu, dept dto.MenuLabel) dto.MenuLabel {
mi.Label = list[j].Title
mi.Children = []dto.MenuLabel{}
if list[j].MenuType != "F" {
ms := menuLabelCall(elist, mi)
ms := menuLabelCall(eList, mi)
min = append(min, ms)
} else {
min = append(min, mi)
@@ -309,7 +315,7 @@ func (e *SysMenu) getByRoleName(roleName string) ([]models.SysMenu, error) {
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
MenuList = *role.SysMenu
}
if err != nil {
+8 -25
View File
@@ -15,8 +15,8 @@ type SysOperaLog struct {
service.Service
}
// GetSysOperaLogPage 获取SysOperaLog列表
func (e *SysOperaLog) GetSysOperaLogPage(c *dto.SysOperaLogSearch, list *[]models.SysOperaLog, count *int64) error {
// GetPage 获取SysOperaLog列表
func (e *SysOperaLog) GetPage(c *dto.SysOperaLogSearch, list *[]models.SysOperaLog, count *int64) error {
var err error
var data models.SysOperaLog
@@ -34,8 +34,8 @@ func (e *SysOperaLog) GetSysOperaLogPage(c *dto.SysOperaLogSearch, list *[]model
return nil
}
// GetSysOperaLog 获取SysOperaLog对象
func (e *SysOperaLog) GetSysOperaLog(d *dto.SysOperaLogById, model *models.SysOperaLog) error {
// Get 获取SysOperaLog对象
func (e *SysOperaLog) Get(d *dto.SysOperaLogById, model *models.SysOperaLog) error {
var data models.SysOperaLog
err := e.Orm.Model(&data).
@@ -52,8 +52,8 @@ func (e *SysOperaLog) GetSysOperaLog(d *dto.SysOperaLogById, model *models.SysOp
return nil
}
// InsertSysOperaLog 创建SysOperaLog对象
func (e *SysOperaLog) InsertSysOperaLog(model *models.SysOperaLog) error {
// Insert 创建SysOperaLog对象
func (e *SysOperaLog) Insert(model *models.SysOperaLog) error {
var err error
var data models.SysOperaLog
@@ -66,25 +66,8 @@ func (e *SysOperaLog) InsertSysOperaLog(model *models.SysOperaLog) error {
return nil
}
// UpdateSysOperaLog 修改SysOperaLog对象
func (e *SysOperaLog) UpdateSysOperaLog(c *models.SysOperaLog) error {
var err error
db := e.Orm.Model(c).
Where(c.GetId()).Updates(c)
if err = db.Error; err != nil {
e.Log.Errorf("Service UpdateSysOperaLog error:%s", err.Error())
return err
}
if db.RowsAffected == 0 {
return errors.New("无权更新该数据")
}
return nil
}
// RemoveSysOperaLog 删除SysOperaLog
func (e *SysOperaLog) RemoveSysOperaLog(d *dto.SysOperaLogById) error {
// Remove 删除SysOperaLog
func (e *SysOperaLog) Remove(d *dto.SysOperaLogById) error {
var err error
var data models.SysOperaLog
+32 -26
View File
@@ -16,8 +16,8 @@ type SysRole struct {
service.Service
}
// GetSysRolePage 获取SysRole列表
func (e *SysRole) GetSysRolePage(c *dto.SysRoleSearch, list *[]models.SysRole, count *int64) error {
// GetPage 获取SysRole列表
func (e *SysRole) GetPage(c *dto.SysRoleSearch, list *[]models.SysRole, count *int64) error {
var err error
var data models.SysRole
@@ -35,10 +35,9 @@ func (e *SysRole) GetSysRolePage(c *dto.SysRoleSearch, list *[]models.SysRole, c
return nil
}
// GetSysRole 获取SysRole对象
func (e *SysRole) GetSysRole(d *dto.SysRoleById, model *models.SysRole) error {
// Get 获取SysRole对象
func (e *SysRole) Get(d *dto.SysRoleById, model *models.SysRole) error {
var err error
db := e.Orm.First(model, d.GetId())
err = db.Error
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
@@ -58,8 +57,8 @@ func (e *SysRole) GetSysRole(d *dto.SysRoleById, model *models.SysRole) error {
return nil
}
// InsertSysRole 创建SysRole对象
func (e *SysRole) InsertSysRole(c *dto.SysRoleControl) error {
// Insert 创建SysRole对象
func (e *SysRole) Insert(c *dto.SysRoleControl) error {
var err error
var data models.SysRole
var dataMenu []models.SysMenu
@@ -98,8 +97,8 @@ func (e *SysRole) InsertSysRole(c *dto.SysRoleControl) error {
return nil
}
// UpdateSysRole 修改SysRole对象
func (e *SysRole) UpdateSysRole(c *dto.SysRoleControl, cb *casbin.SyncedEnforcer) error {
// Update 修改SysRole对象
func (e *SysRole) Update(c *dto.SysRoleControl, cb *casbin.SyncedEnforcer) error {
var err error
tx := e.Orm.Debug().Begin()
@@ -112,11 +111,16 @@ func (e *SysRole) UpdateSysRole(c *dto.SysRoleControl, cb *casbin.SyncedEnforcer
}()
var model = models.SysRole{}
var mlist = make([]models.SysMenu, 0)
e.Orm.First(&model, c.GetId())
e.Orm.Preload("SysApi").Find(&mlist, c.MenuIds)
tx.Preload("SysMenu").First(&model, c.GetId())
tx.Preload("SysApi").Where("menu_id in ?", c.MenuIds).Find(&mlist)
err = tx.Model(&model).Association("SysMenu").Delete(model.SysMenu)
if err != nil {
e.Log.Errorf("delete policy error:%s", err)
return err
}
c.Generate(&model)
model.SysMenu = mlist
db := e.Orm.Session(&gorm.Session{FullSaveAssociations: true}).Debug().Save(&model)
model.SysMenu = &mlist
db := tx.Session(&gorm.Session{FullSaveAssociations: true}).Debug().Save(&model)
if db.Error != nil {
e.Log.Errorf("db error:%s", err)
@@ -125,18 +129,24 @@ func (e *SysRole) UpdateSysRole(c *dto.SysRoleControl, cb *casbin.SyncedEnforcer
if db.RowsAffected == 0 {
return errors.New("无权更新该数据")
}
_, err = cb.RemoveFilteredPolicy(0, model.RoleKey)
if err != nil {
e.Log.Errorf("delete policy error:%s", err)
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
}
// RemoveSysRole 删除SysRole
func (e *SysRole) RemoveSysRole(d *dto.SysRoleById) error {
// Remove 删除SysRole
func (e *SysRole) Remove(d *dto.SysRoleById) error {
var err error
var data models.SysRole
@@ -175,18 +185,14 @@ func (e *SysRole) RemoveSysRole(d *dto.SysRoleById) error {
// 获取角色对应的菜单ids
func (e *SysRole) GetRoleMenuId(roleId int) ([]int, error) {
menuIds := make([]int, 0)
menuList := make([]models.MenuIdList, 0)
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 "+
"LEFT JOIN sys_menu on sys_menu.menu_id=sys_role_menu.menu_id where role_id =? and parent_id is not null)", roleId).
Find(&menuList).Error; err != nil {
model := models.SysRole{}
model.RoleId = roleId
if err := e.Orm.Model(&model).Preload("SysMenu").First(&model).Error; err != nil {
return nil, err
}
for i := 0; i < len(menuList); i++ {
menuIds = append(menuIds, menuList[i].MenuId)
l := *model.SysMenu
for i := 0; i < len(l); i++ {
menuIds = append(menuIds, l[i].MenuId)
}
return menuIds, nil
}
-52
View File
@@ -1,52 +0,0 @@
package service
import (
"errors"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm"
"go-admin/app/admin/models"
)
type SysSetting struct {
service.Service
}
// GetSysSetting 获取SysSetting对象
func (e *SysSetting) GetSysSetting(model *models.SysSetting) error {
var err error
var data models.SysSetting
db := e.Orm.Model(&data).
First(model)
err = db.Error
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("查看对象不存在或无权查看")
e.Log.Errorf("db error:%s", err)
return err
}
if db.Error != nil {
e.Log.Errorf("db error:%s", err)
return err
}
return nil
}
// UpdateSysSetting 修改SysSetting对象
func (e *SysSetting) UpdateSysSetting(c *models.SysSetting) error {
var err error
var data models.SysSetting
db := e.Orm.Model(&data).
Where(c.GetId()).Updates(c)
if db.Error != nil {
e.Log.Errorf("db error:%s", err)
return err
}
if db.RowsAffected == 0 {
return errors.New("无权更新该数据")
}
return nil
}
+6 -6
View File
@@ -6,13 +6,13 @@ import (
type SysContent struct {
models.Model
CateId int `json:"cateId" gorm:"type:int(11);comment:分类id"`
Name string `json:"name" gorm:"type:varchar(255);comment:名称"`
Status int `json:"status" gorm:"type:int(1);comment:状态"`
Img string `json:"img" gorm:"type:varchar(255);comment:图片"`
CateId int `json:"cateId" gorm:"size:11;comment:分类id"`
Name string `json:"name" gorm:"size:255;comment:名称"`
Status int `json:"status" gorm:"size:1;comment:状态"`
Img string `json:"img" gorm:"size:255;comment:图片"`
Content string `json:"content" gorm:"type:text;comment:内容"`
Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"`
Sort int `json:"sort" gorm:"type:int(4);comment:排序"`
Remark string `json:"remark" gorm:"size:255;comment:备注"`
Sort int `json:"sort" gorm:"size:4;comment:排序"`
models.ControlBy
models.ModelTime
}