部分重构
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"ops/models"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type PurchaseRepository interface {
|
||||
GetOrders(userID uint, search string, page, entries int) ([]models.TabPurchaseOrder, int64, error)
|
||||
GetOrderByID(orderID uint) (*models.TabPurchaseOrder, error)
|
||||
CreateOrder(order *models.TabPurchaseOrder) error
|
||||
CreateCost(cost *models.TabPurchaseCosts) error
|
||||
GetOrderCosts(orderID uint) ([]models.TabPurchaseCosts, error)
|
||||
}
|
||||
|
||||
type purchaseRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func NewPurchaseRepository(db *gorm.DB) PurchaseRepository {
|
||||
return &purchaseRepository{db: db}
|
||||
}
|
||||
|
||||
func (r *purchaseRepository) GetOrders(userID uint, search string, page, entries int) ([]models.TabPurchaseOrder, int64, error) {
|
||||
var orders []models.TabPurchaseOrder
|
||||
var total int64
|
||||
|
||||
query := r.db.Model(&models.TabPurchaseOrder{}).Where("user_id = ?", userID)
|
||||
|
||||
if search != "" {
|
||||
query = query.Where("title LIKE ? OR part_name LIKE ? OR remark LIKE ? OR tracking_number LIKE ?",
|
||||
"%"+search+"%", "%"+search+"%", "%"+search+"%", "%"+search+"%")
|
||||
}
|
||||
|
||||
// 获取总数
|
||||
if err := query.Count(&total).Error; err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
offset := entries * (page - 1)
|
||||
if err := query.Order("created_at DESC").Offset(offset).Limit(entries).Find(&orders).Error; err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
return orders, total, nil
|
||||
}
|
||||
|
||||
func (r *purchaseRepository) GetOrderByID(orderID uint) (*models.TabPurchaseOrder, error) {
|
||||
var order models.TabPurchaseOrder
|
||||
if err := r.db.First(&order, orderID).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &order, nil
|
||||
}
|
||||
|
||||
func (r *purchaseRepository) CreateOrder(order *models.TabPurchaseOrder) error {
|
||||
return r.db.Create(order).Error
|
||||
}
|
||||
|
||||
func (r *purchaseRepository) CreateCost(cost *models.TabPurchaseCosts) error {
|
||||
return r.db.Create(cost).Error
|
||||
}
|
||||
|
||||
func (r *purchaseRepository) GetOrderCosts(orderID uint) ([]models.TabPurchaseCosts, error) {
|
||||
var costs []models.TabPurchaseCosts
|
||||
if err := r.db.Where("order_id = ?", orderID).Find(&costs).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return costs, nil
|
||||
}
|
||||
Reference in New Issue
Block a user