Files
order_site/apps/backend/src/repositories/order-item-repo.js
T
2026-04-09 09:06:08 +08:00

54 lines
1.2 KiB
JavaScript

import { query } from '../db/client.js'
export async function listOrderItemsByOrderId(orderId) {
const result = await query(
`
SELECT *
FROM order_items
WHERE order_id = $1
ORDER BY id ASC
`,
[Number(orderId)],
)
return result.rows
}
export async function replaceOrderItems(orderId, items) {
await query('DELETE FROM order_items WHERE order_id = $1', [Number(orderId)])
for (const item of items) {
await query(
`
INSERT INTO order_items (
order_id,
sku_code,
sku_name,
quantity,
spec_json,
item_snapshot_json,
created_at,
updated_at
) VALUES ($1, $2, $3, $4, $5::jsonb, $6::jsonb, $7, $8)
`,
[
Number(orderId),
item.skuCode,
item.skuName,
item.quantity,
item.specJson || '{}',
item.itemSnapshotJson || item.specJson || '{}',
item.createdAt,
item.updatedAt,
],
)
}
return listOrderItemsByOrderId(orderId)
}
export async function getOrderItemById(orderItemId) {
const result = await query('SELECT * FROM order_items WHERE id = $1 LIMIT 1', [Number(orderItemId)])
return result.rows[0] || null
}