实现 猪舍相关路由组 和 猪圈相关路由组
This commit is contained in:
116
internal/app/service/pig_farm_service.go
Normal file
116
internal/app/service/pig_farm_service.go
Normal file
@@ -0,0 +1,116 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// PigFarmService 提供了猪场资产管理的业务逻辑
|
||||
type PigFarmService interface {
|
||||
// PigHouse methods
|
||||
CreatePigHouse(name, description string) (*models.PigHouse, error)
|
||||
GetPigHouseByID(id uint) (*models.PigHouse, error)
|
||||
ListPigHouses() ([]models.PigHouse, error)
|
||||
UpdatePigHouse(id uint, name, description string) (*models.PigHouse, error)
|
||||
DeletePigHouse(id uint) error
|
||||
|
||||
// Pen methods
|
||||
CreatePen(penNumber string, houseID uint, capacity int, status models.PenStatus) (*models.Pen, error)
|
||||
GetPenByID(id uint) (*models.Pen, error)
|
||||
ListPens() ([]models.Pen, error)
|
||||
UpdatePen(id uint, penNumber string, houseID uint, capacity int, status models.PenStatus) (*models.Pen, error)
|
||||
DeletePen(id uint) error
|
||||
}
|
||||
|
||||
type pigFarmService struct {
|
||||
logger *logs.Logger
|
||||
repo repository.PigFarmRepository
|
||||
}
|
||||
|
||||
// NewPigFarmService 创建一个新的 PigFarmService 实例
|
||||
func NewPigFarmService(repo repository.PigFarmRepository, logger *logs.Logger) PigFarmService {
|
||||
return &pigFarmService{
|
||||
logger: logger,
|
||||
repo: repo,
|
||||
}
|
||||
}
|
||||
|
||||
// --- PigHouse Implementation ---
|
||||
|
||||
func (s *pigFarmService) CreatePigHouse(name, description string) (*models.PigHouse, error) {
|
||||
house := &models.PigHouse{
|
||||
Name: name,
|
||||
Description: description,
|
||||
}
|
||||
err := s.repo.CreatePigHouse(house)
|
||||
return house, err
|
||||
}
|
||||
|
||||
func (s *pigFarmService) GetPigHouseByID(id uint) (*models.PigHouse, error) {
|
||||
return s.repo.GetPigHouseByID(id)
|
||||
}
|
||||
|
||||
func (s *pigFarmService) ListPigHouses() ([]models.PigHouse, error) {
|
||||
return s.repo.ListPigHouses()
|
||||
}
|
||||
|
||||
func (s *pigFarmService) UpdatePigHouse(id uint, name, description string) (*models.PigHouse, error) {
|
||||
house := &models.PigHouse{
|
||||
Model: gorm.Model{ID: id},
|
||||
Name: name,
|
||||
Description: description,
|
||||
}
|
||||
err := s.repo.UpdatePigHouse(house)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// 返回更新后的完整信息
|
||||
return s.repo.GetPigHouseByID(id)
|
||||
}
|
||||
|
||||
func (s *pigFarmService) DeletePigHouse(id uint) error {
|
||||
return s.repo.DeletePigHouse(id)
|
||||
}
|
||||
|
||||
// --- Pen Implementation ---
|
||||
|
||||
func (s *pigFarmService) CreatePen(penNumber string, houseID uint, capacity int, status models.PenStatus) (*models.Pen, error) {
|
||||
pen := &models.Pen{
|
||||
PenNumber: penNumber,
|
||||
HouseID: houseID,
|
||||
Capacity: capacity,
|
||||
Status: status,
|
||||
}
|
||||
err := s.repo.CreatePen(pen)
|
||||
return pen, err
|
||||
}
|
||||
|
||||
func (s *pigFarmService) GetPenByID(id uint) (*models.Pen, error) {
|
||||
return s.repo.GetPenByID(id)
|
||||
}
|
||||
|
||||
func (s *pigFarmService) ListPens() ([]models.Pen, error) {
|
||||
return s.repo.ListPens()
|
||||
}
|
||||
|
||||
func (s *pigFarmService) UpdatePen(id uint, penNumber string, houseID uint, capacity int, status models.PenStatus) (*models.Pen, error) {
|
||||
pen := &models.Pen{
|
||||
Model: gorm.Model{ID: id},
|
||||
PenNumber: penNumber,
|
||||
HouseID: houseID,
|
||||
Capacity: capacity,
|
||||
Status: status,
|
||||
}
|
||||
err := s.repo.UpdatePen(pen)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// 返回更新后的完整信息
|
||||
return s.repo.GetPenByID(id)
|
||||
}
|
||||
|
||||
func (s *pigFarmService) DeletePen(id uint) error {
|
||||
return s.repo.DeletePen(id)
|
||||
}
|
||||
Reference in New Issue
Block a user