mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-22 02:27:57 +00:00
refactor🎨 链式调用改造
This commit is contained in:
@@ -2,11 +2,11 @@ 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"
|
||||
common "go-admin/common/models"
|
||||
|
||||
"go-admin/common/dto"
|
||||
)
|
||||
@@ -58,6 +58,15 @@ type SysMenuControl struct {
|
||||
Sort int `form:"sort" comment:"排序"` //排序
|
||||
Visible string `form:"visible" comment:"是否显示"` //是否显示
|
||||
IsFrame string `form:"isFrame" comment:"是否frame"` //是否frame
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *SysMenuControl) SetCreateBy(id int) {
|
||||
s.CreateBy = id
|
||||
}
|
||||
|
||||
func (s *SysMenuControl) SetUpdateBy(id int) {
|
||||
s.UpdateBy = id
|
||||
}
|
||||
|
||||
// Bind 映射上下文中的结构体数据
|
||||
@@ -82,26 +91,30 @@ func (s *SysMenuControl) Bind(ctx *gin.Context) error {
|
||||
}
|
||||
|
||||
// Generate 结构体数据转化 从 Control 至 model 对应的模型
|
||||
func (s *SysMenuControl) Generate() (*models.SysMenu, error) {
|
||||
return &models.SysMenu{
|
||||
MenuId: s.MenuId,
|
||||
MenuName: s.MenuName,
|
||||
Title: s.Title,
|
||||
Icon: s.Icon,
|
||||
Path: s.Path,
|
||||
Paths: s.Paths,
|
||||
MenuType: s.MenuType,
|
||||
Action: s.Action,
|
||||
SysApi: s.SysApi,
|
||||
Permission: s.Permission,
|
||||
ParentId: s.ParentId,
|
||||
NoCache: s.NoCache,
|
||||
Breadcrumb: s.Breadcrumb,
|
||||
Component: s.Component,
|
||||
Sort: s.Sort,
|
||||
Visible: s.Visible,
|
||||
IsFrame: s.IsFrame,
|
||||
}, nil
|
||||
func (s *SysMenuControl) Generate(model *models.SysMenu) {
|
||||
model.MenuId = s.MenuId
|
||||
model.MenuName = s.MenuName
|
||||
model.Title = s.Title
|
||||
model.Icon = s.Icon
|
||||
model.Path = s.Path
|
||||
model.Paths = s.Paths
|
||||
model.MenuType = s.MenuType
|
||||
model.Action = s.Action
|
||||
model.SysApi = s.SysApi
|
||||
model.Permission = s.Permission
|
||||
model.ParentId = s.ParentId
|
||||
model.NoCache = s.NoCache
|
||||
model.Breadcrumb = s.Breadcrumb
|
||||
model.Component = s.Component
|
||||
model.Sort = s.Sort
|
||||
model.Visible = s.Visible
|
||||
model.IsFrame = s.IsFrame
|
||||
if s.CreateBy != 0 {
|
||||
model.CreateBy = s.CreateBy
|
||||
}
|
||||
if s.UpdateBy != 0 {
|
||||
model.UpdateBy = s.UpdateBy
|
||||
}
|
||||
}
|
||||
|
||||
// GetId 获取数据对应的ID
|
||||
@@ -155,4 +168,4 @@ type MenuRole struct {
|
||||
|
||||
type SelectRole struct {
|
||||
RoleId int `uri:"roleId"`
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,18 +2,33 @@ package service
|
||||
|
||||
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"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/common/service"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
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)
|
||||
@@ -73,17 +88,16 @@ func (e *SysMenu) GetSysMenu(d *dto.SysMenuById, model *models.SysMenu) error {
|
||||
}
|
||||
|
||||
// InsertSysMenu 创建SysMenu对象
|
||||
func (e *SysMenu) InsertSysMenu(model *models.SysMenu) error {
|
||||
func (e *SysMenu) InsertSysMenu(c *dto.SysMenuControl) *SysMenu {
|
||||
var err error
|
||||
var data models.SysMenu
|
||||
|
||||
err = e.Orm.Model(&data).
|
||||
Create(model).Error
|
||||
c.Generate(&data)
|
||||
err = e.Orm.Create(&data).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
_ = e.AddError(err)
|
||||
}
|
||||
return nil
|
||||
return e
|
||||
}
|
||||
|
||||
func (e *SysMenu) initPaths(menu *models.SysMenu) error {
|
||||
@@ -105,20 +119,23 @@ func (e *SysMenu) initPaths(menu *models.SysMenu) error {
|
||||
}
|
||||
|
||||
// UpdateSysMenu 修改SysMenu对象
|
||||
func (e *SysMenu) UpdateSysMenu(c *models.SysMenu) error {
|
||||
func (e *SysMenu) UpdateSysMenu(c *dto.SysMenuControl) *SysMenu {
|
||||
var err error
|
||||
|
||||
db := e.Orm.Session(&gorm.Session{FullSaveAssociations: true}).Debug().Save(c)
|
||||
model := models.SysMenu{}
|
||||
e.Orm.First(&model, c.GetId())
|
||||
c.Generate(&model)
|
||||
db := e.Orm.Session(&gorm.Session{FullSaveAssociations: true}).Debug().Save(&model)
|
||||
if db.Error != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
_ = e.AddError(err)
|
||||
return e
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权更新该数据")
|
||||
|
||||
e.AddError(errors.New("无权更新该数据"))
|
||||
return e
|
||||
}
|
||||
return nil
|
||||
}
|
||||
return e
|
||||
}
|
||||
|
||||
// RemoveSysMenu 删除SysMenu
|
||||
func (e *SysMenu) RemoveSysMenu(d *dto.SysMenuById) error {
|
||||
@@ -303,4 +320,4 @@ func (e *SysMenu) getByRoleName(roleName string) (Menus []models.SysMenu, err er
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user