23 lines
1.0 KiB
JavaScript
23 lines
1.0 KiB
JavaScript
import fs from 'node:fs';
|
|
const v = JSON.parse(fs.readFileSync('.cdp/out/orders-probe.json', 'utf8'));
|
|
const L = [];
|
|
L.push('状态 | 订单号 | 下单时间 | 时限 | 金额 | 商品');
|
|
for (const o of v.orders) {
|
|
L.push([o.status, o.orderNo, o.orderTime, o.deadline || o.countdown || '-', '¥' + o.amount,
|
|
String(o.title || '').slice(0, 30), '|', String(o.spec || '').slice(0, 26)].join(' | '));
|
|
}
|
|
// 按下单日期统计
|
|
const byDay = {};
|
|
for (const o of v.orders) {
|
|
const d = (o.orderTime || '').slice(0, 10) || '?';
|
|
byDay[d] = byDay[d] || { n: 0, amt: 0, closed: 0, pending: 0 };
|
|
byDay[d].n++;
|
|
byDay[d].amt += Number(o.amount) || 0;
|
|
if (o.status === '交易关闭') byDay[d].closed++;
|
|
if (o.status === '待发货' || o.status === '待付款') byDay[d].pending++;
|
|
}
|
|
L.push('');
|
|
L.push('下单日 | 单数 | 金额 | 其中已关闭 | 其中待处理');
|
|
for (const [d, s] of Object.entries(byDay).sort()) L.push(`${d} | ${s.n} | ¥${s.amt.toFixed(2)} | ${s.closed} | ${s.pending}`);
|
|
fs.writeFileSync('.cdp/out/orders-list.txt', L.join('\n'), 'utf8');
|