mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 16:30:25 +08:00 
			
		
		
		
	refactor: 新增base.Repo与base.App,重构repo与app层代码
This commit is contained in:
		@@ -3,68 +3,58 @@ package application
 | 
			
		||||
import (
 | 
			
		||||
	"mayfly-go/internal/machine/domain/entity"
 | 
			
		||||
	"mayfly-go/internal/machine/domain/repository"
 | 
			
		||||
	"mayfly-go/pkg/biz"
 | 
			
		||||
	"mayfly-go/pkg/gormx"
 | 
			
		||||
	"mayfly-go/pkg/base"
 | 
			
		||||
	"mayfly-go/pkg/errorx"
 | 
			
		||||
	"mayfly-go/pkg/model"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type MachineScript interface {
 | 
			
		||||
	base.App[*entity.MachineScript]
 | 
			
		||||
 | 
			
		||||
	// 分页获取机器脚本信息列表
 | 
			
		||||
	GetPageList(condition *entity.MachineScript, pageParam *model.PageParam, toEntity any, orderBy ...string) *model.PageResult[any]
 | 
			
		||||
	GetPageList(condition *entity.MachineScript, pageParam *model.PageParam, toEntity any, orderBy ...string) (*model.PageResult[any], error)
 | 
			
		||||
 | 
			
		||||
	// 根据条件获取
 | 
			
		||||
	GetMachineScript(condition *entity.MachineScript, cols ...string) error
 | 
			
		||||
 | 
			
		||||
	// 根据id获取
 | 
			
		||||
	GetById(id uint64, cols ...string) *entity.MachineScript
 | 
			
		||||
 | 
			
		||||
	Save(entity *entity.MachineScript)
 | 
			
		||||
	Save(entity *entity.MachineScript) error
 | 
			
		||||
 | 
			
		||||
	Delete(id uint64)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func newMachineScriptApp(machineScriptRepo repository.MachineScript, machineRepo repository.Machine) MachineScript {
 | 
			
		||||
	return &machineScriptAppImpl{machineRepo: machineRepo, machineScriptRepo: machineScriptRepo}
 | 
			
		||||
 | 
			
		||||
func newMachineScriptApp(machineScriptRepo repository.MachineScript, machineApp Machine) MachineScript {
 | 
			
		||||
	app := &machineScriptAppImpl{machineApp: machineApp}
 | 
			
		||||
	app.Repo = machineScriptRepo
 | 
			
		||||
	return app
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type machineScriptAppImpl struct {
 | 
			
		||||
	machineScriptRepo repository.MachineScript
 | 
			
		||||
	machineRepo       repository.Machine
 | 
			
		||||
	base.AppImpl[*entity.MachineScript, repository.MachineScript]
 | 
			
		||||
 | 
			
		||||
	machineApp Machine
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const Common_Script_Machine_Id = 9999999
 | 
			
		||||
 | 
			
		||||
// 分页获取机器脚本信息列表
 | 
			
		||||
func (m *machineScriptAppImpl) GetPageList(condition *entity.MachineScript, pageParam *model.PageParam, toEntity any, orderBy ...string) *model.PageResult[any] {
 | 
			
		||||
	return m.machineScriptRepo.GetPageList(condition, pageParam, toEntity, orderBy...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据条件获取
 | 
			
		||||
func (m *machineScriptAppImpl) GetMachineScript(condition *entity.MachineScript, cols ...string) error {
 | 
			
		||||
	return m.machineScriptRepo.GetMachineScript(condition, cols...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据id获取
 | 
			
		||||
func (m *machineScriptAppImpl) GetById(id uint64, cols ...string) *entity.MachineScript {
 | 
			
		||||
	return m.machineScriptRepo.GetById(id, cols...)
 | 
			
		||||
func (m *machineScriptAppImpl) GetPageList(condition *entity.MachineScript, pageParam *model.PageParam, toEntity any, orderBy ...string) (*model.PageResult[any], error) {
 | 
			
		||||
	return m.GetRepo().GetPageList(condition, pageParam, toEntity, orderBy...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 保存机器脚本
 | 
			
		||||
func (m *machineScriptAppImpl) Save(entity *entity.MachineScript) {
 | 
			
		||||
func (m *machineScriptAppImpl) Save(ms *entity.MachineScript) error {
 | 
			
		||||
	// 如果机器id不为公共脚本id,则校验机器是否存在
 | 
			
		||||
	if machineId := entity.MachineId; machineId != Common_Script_Machine_Id {
 | 
			
		||||
		biz.NotNil(m.machineRepo.GetById(machineId, "Name"), "该机器不存在")
 | 
			
		||||
	if machineId := ms.MachineId; machineId != Common_Script_Machine_Id {
 | 
			
		||||
		_, err := m.machineApp.GetById(new(entity.Machine), machineId, "Name")
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return errorx.NewBiz("该机器不存在")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if entity.Id != 0 {
 | 
			
		||||
		gormx.UpdateById(entity)
 | 
			
		||||
	} else {
 | 
			
		||||
		gormx.Insert(entity)
 | 
			
		||||
	if ms.Id != 0 {
 | 
			
		||||
		return m.UpdateById(ms)
 | 
			
		||||
	}
 | 
			
		||||
	return m.Insert(ms)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 根据id删除
 | 
			
		||||
func (m *machineScriptAppImpl) Delete(id uint64) {
 | 
			
		||||
	m.machineScriptRepo.Delete(id)
 | 
			
		||||
	m.DeleteById(id)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user