43 lines
1.0 KiB
JavaScript
43 lines
1.0 KiB
JavaScript
|
|
const { query } = require('../config/database')
|
||
|
|
|
||
|
|
async function getPriceList(ctx) {
|
||
|
|
const orderId = ctx.params.orderId
|
||
|
|
|
||
|
|
const orders = await query('SELECT * FROM orders WHERE id = ?', [orderId])
|
||
|
|
if (orders.length === 0) {
|
||
|
|
ctx.body = { code: 404, message: '订单不存在' }
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
const order = orders[0]
|
||
|
|
|
||
|
|
let items = []
|
||
|
|
try {
|
||
|
|
const cartData = typeof order.cart === 'string' ? JSON.parse(order.cart) : order.cart
|
||
|
|
items = Array.isArray(cartData) ? cartData : (cartData.items || cartData.list || [])
|
||
|
|
} catch (e) {
|
||
|
|
items = []
|
||
|
|
}
|
||
|
|
|
||
|
|
ctx.body = {
|
||
|
|
code: 200,
|
||
|
|
data: {
|
||
|
|
orderNo: order.id,
|
||
|
|
createTime: order.created_at,
|
||
|
|
items: items.map(item => ({
|
||
|
|
name: item.name,
|
||
|
|
quantity: item.quantity || item.count || 1,
|
||
|
|
price: item.price || 0,
|
||
|
|
unit: item.unit || '件',
|
||
|
|
subtotal: (item.price || 0) * (item.quantity || item.count || 1)
|
||
|
|
})),
|
||
|
|
total: order.total_price,
|
||
|
|
remark: ''
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
getPriceList
|
||
|
|
}
|