feat: add super order detail snapshot

This commit is contained in:
2026-01-08 11:15:42 +08:00
parent 8c8e712cbb
commit 109b0ce012
2 changed files with 42 additions and 4 deletions

View File

@@ -356,7 +356,20 @@ func (s *super) GetOrder(ctx context.Context, id int64) (*super_dto.SuperOrderDe
buyer = u
}
itemTbl, itemQ := models.OrderItemQuery.QueryContext(ctx)
orderItems, err := itemQ.Where(itemTbl.OrderID.Eq(o.ID)).Find()
if err != nil {
return nil, errorx.ErrDatabaseError.WithCause(err)
}
items := make([]super_dto.SuperOrderItemLine, 0, len(orderItems))
for _, it := range orderItems {
items = append(items, s.toSuperOrderItemLine(it))
}
item := s.toSuperOrderItem(o, tenant, buyer)
item.Snapshot = o.Snapshot.Data()
item.Items = items
return &super_dto.SuperOrderDetail{
Order: &item,
Tenant: item.Tenant,
@@ -590,6 +603,15 @@ func (s *super) toSuperOrderItem(o *models.Order, tenant *models.Tenant, buyer *
return item
}
func (s *super) toSuperOrderItemLine(item *models.OrderItem) super_dto.SuperOrderItemLine {
return super_dto.SuperOrderItemLine{
ID: item.ID,
ContentID: item.ContentID,
AmountPaid: item.AmountPaid,
Snapshot: item.Snapshot.Data(),
}
}
func (s *super) contentPriceMap(ctx context.Context, list []*models.Content) (map[int64]*models.ContentPrice, error) {
if len(list) == 0 {
return map[int64]*models.ContentPrice{}, nil