Files
dukang/server/dukang-api/prisma/sync-benefit-to-price.ts
T
2026-08-04 21:38:49 +08:00

45 lines
1.2 KiB
TypeScript

/**
* 将 common_product_item.benefit_amount 同步为与 price 相同(全额好客权益)。
* 用法:pnpm db:sync-benefit
*/
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
const products = await prisma.commonProductItem.findMany({
select: { id: true, skuCode: true, name: true, price: true, benefitAmount: true },
orderBy: { sortOrder: 'asc' },
});
if (products.length === 0) {
console.log('No products found. Run pnpm prisma:seed first.');
return;
}
console.log(`Syncing benefit_amount = price for ${products.length} product(s)...\n`);
for (const p of products) {
const price = Number(p.price);
const before = p.benefitAmount != null ? Number(p.benefitAmount) : null;
await prisma.commonProductItem.update({
where: { id: p.id },
data: { benefitAmount: p.price },
});
const beforeLabel = before == null ? 'NULL' : ${before}`;
console.log(` ${p.skuCode} ${p.name}`);
console.log(` benefit: ${beforeLabel} → ¥${price}`);
}
console.log('\nDone.');
}
main()
.catch((err) => {
console.error(err);
process.exit(1);
})
.finally(() => prisma.$disconnect());