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.

48 lines
1.2 KiB
Go

package dao
import (
"context"
"awesomeProject/internal/model/do"
"github.com/gogf/gf/v2/database/gdb"
)
// OrderDAO 定义了订单数据访问对象。
type OrderDAO struct {
DB gdb.DB
}
// NewOrderDAO 创建一个新的订单数据访问对象。
func NewOrderDAO(db gdb.DB) *OrderDAO {
return &OrderDAO{DB: db}
}
// CreateOrder 向数据库中插入新订单。
func (d *OrderDAO) CreateOrder(ctx context.Context, order *do.OrderDO) error {
_, err := d.DB.Model("order").Data(order).Insert()
return err
}
// GetOrderByID 根据订单ID从数据库中查询订单信息。
func (d *OrderDAO) GetOrderByID(ctx context.Context, id int64) (*do.OrderDO, error) {
order := &do.OrderDO{}
err := d.DB.Model("order").Where("id", id).Scan(order)
if err != nil {
return nil, err
}
return order, nil
}
// UpdateOrder 更新数据库中的订单信息。
func (d *OrderDAO) UpdateOrder(ctx context.Context, order *do.OrderDO) error {
_, err := d.DB.Model("order").Data(order).Where("id", order.ID).Update()
return err
}
// DeleteOrder 删除数据库中的订单。
func (d *OrderDAO) DeleteOrder(ctx context.Context, id int64) error {
_, err := d.DB.Model("order").Where("id", id).Delete()
return err
}