You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
2.5 KiB
Go
110 lines
2.5 KiB
Go
package order
|
|
|
|
import (
|
|
"cls/internal/domain/order"
|
|
"cls/pkg/logger"
|
|
"cls/pkg/xorm_engine"
|
|
"errors"
|
|
"xorm.io/builder"
|
|
)
|
|
|
|
// OrderRepositoryORM 订单仓储实现
|
|
type OrderRepositoryORM struct {
|
|
engine *xorm_engine.Engine
|
|
log logger.Logger
|
|
}
|
|
|
|
func (r *OrderRepositoryORM) Create(order *order.Order) error {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (r *OrderRepositoryORM) GetByID(id uint64) (*order.Order, error) {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (r *OrderRepositoryORM) GetByOrderNo(orderNo string) (*order.Order, error) {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
func (r *OrderRepositoryORM) ListByUserID(userID uint64, page, size int) ([]*order.Order, int64, error) {
|
|
//TODO implement me
|
|
panic("implement me")
|
|
}
|
|
|
|
var _ order.OrderRepository = (*OrderRepositoryORM)(nil)
|
|
|
|
// NewOrderRepositoryORM 创建订单仓储实现
|
|
func NewOrderRepositoryORM(engine *xorm_engine.Engine, log logger.New) order.OrderRepository {
|
|
return &OrderRepositoryORM{
|
|
engine: engine,
|
|
log: log("cls:repo:order"),
|
|
}
|
|
}
|
|
|
|
// Save 保存订单
|
|
func (r *OrderRepositoryORM) Save(order *order.Order) error {
|
|
if _, err := r.engine.Insert(order); err != nil {
|
|
r.log.Error(err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// FindByID 根据ID获取订单
|
|
func (r *OrderRepositoryORM) FindByID(id uint64) (*order.Order, error) {
|
|
order := &order.Order{}
|
|
has, err := r.engine.ID(id).Get(order)
|
|
if err != nil {
|
|
r.log.Error(err)
|
|
return nil, err
|
|
}
|
|
if !has {
|
|
return nil, errors.New("订单不存在")
|
|
}
|
|
return order, nil
|
|
}
|
|
|
|
// FindByOrderNo 根据订单号获取订单
|
|
func (r *OrderRepositoryORM) FindByOrderNo(orderNo string) (*order.Order, error) {
|
|
order := &order.Order{}
|
|
has, err := r.engine.Where(builder.Eq{"order_no": orderNo}).Get(order)
|
|
if err != nil {
|
|
r.log.Error(err)
|
|
return nil, err
|
|
}
|
|
if !has {
|
|
return nil, errors.New("订单不存在")
|
|
}
|
|
return order, nil
|
|
}
|
|
|
|
// Update 更新订单
|
|
func (r *OrderRepositoryORM) Update(order *order.Order) error {
|
|
if _, err := r.engine.ID(order.ID).Update(order); err != nil {
|
|
r.log.Error(err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// UpdateStatus 更新订单状态
|
|
func (r *OrderRepositoryORM) UpdateStatus(id uint64, status order.OrderStatus) error {
|
|
if _, err := r.engine.ID(id).Update(&order.Order{Status: status}); err != nil {
|
|
r.log.Error(err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Delete 删除订单
|
|
func (r *OrderRepositoryORM) Delete(id uint64) error {
|
|
if _, err := r.engine.ID(id).Delete(&order.Order{}); err != nil {
|
|
r.log.Error(err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|