feat: fix order create issues

This commit is contained in:
Rogee
2025-05-13 14:13:41 +08:00
parent 7128dab38c
commit 610eb8d553

View File

@@ -157,39 +157,39 @@ func (m *ordersModel) List(ctx context.Context, pagination *requests.Pagination,
} }
// Create creates a new order // Create creates a new order
func (m *ordersModel) Create(ctx context.Context, userId, postId int64) (*model.Orders, error) { func (o *ordersModel) Create(ctx context.Context, userId, postId int64) (*model.Orders, error) {
post, err := Posts.GetByID(ctx, postId) post, err := Posts.GetByID(ctx, postId)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "failed to get post") return nil, errors.Wrap(err, "failed to get post")
} }
model := &model.Orders{} m := &model.Orders{}
model.CreatedAt = time.Now() m.CreatedAt = time.Now()
model.UpdatedAt = time.Now() m.UpdatedAt = time.Now()
model.Status = fields.OrderStatusPending m.Status = fields.OrderStatusPending
model.OrderNo = fmt.Sprintf("%s", time.Now().Format("20060102150405")) m.OrderNo = fmt.Sprintf("%s", time.Now().Format("20060102150405"))
model.SubOrderNo = model.OrderNo m.SubOrderNo = m.OrderNo
model.UserID = userId m.UserID = userId
model.PostID = postId m.PostID = postId
model.Meta = fields.ToJson(fields.OrderMeta{}) m.Meta = fields.ToJson(fields.OrderMeta{})
model.Price = post.Price m.Price = post.Price
model.Discount = post.Discount m.Discount = post.Discount
tbl := table.Orders tbl := table.Orders
stmt := tbl.INSERT(tbl.MutableColumns).MODEL(model) stmt := tbl.INSERT(tbl.MutableColumns).MODEL(m).RETURNING(tbl.AllColumns)
m.log.Infof("sql: %s", stmt.DebugSql()) o.log.Infof("sql: %s", stmt.DebugSql())
if _, err := stmt.ExecContext(ctx, db); err != nil { var order model.Orders
m.log.Errorf("error creating order: %v", err) if err := stmt.QueryContext(ctx, db, &order); err != nil {
o.log.Errorf("error creating order: %v", err)
return nil, err return nil, err
} }
return model, nil return &order, nil
} }
func (m *ordersModel) SetMeta(ctx context.Context, id int64, metaFunc func(fields.OrderMeta) fields.OrderMeta) error { func (m *ordersModel) SetMeta(ctx context.Context, id int64, metaFunc func(fields.OrderMeta) fields.OrderMeta) error {
order, err := m.GetByID(ctx, id) order, err := m.GetByID(ctx, id)
if err != nil { if err != nil {
m.log.Errorf("error getting order by ID: %v", err)
return errors.Wrap(err, "failed to get order") return errors.Wrap(err, "failed to get order")
} }