/** * 初始化小程序演示账号 * 用法: node server/initDemoUsers.js */ require('dotenv').config(); const mongoose = require('mongoose'); const Store = require('./models/Store'); const StoreAuth = require('./models/StoreAuth'); const Rider = require('./models/Rider'); const { hashPassword } = require('./utils/password'); async function init() { await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/e-scooter-rental'); console.log('🔄 连接 MongoDB...\n'); // ===== 1. 门店演示账号 ===== console.log('--- 门店演示账号 ---'); const storeDemo = await StoreAuth.findOne({ username: 'store_demo' }); if (storeDemo) { console.log('⚠️ 门店演示账号已存在: store_demo / demo123'); } else { // 确保有门店可关联 let store = await Store.findOne({ approvalStatus: '已通过' }); if (!store) store = await Store.findOne(); if (!store) { // 没有门店,先创建一个 store = await Store.create({ storeId: 'STORE_DEMO', name: '演示门店', address: '演示地址', phone: '13800138000', manager: '演示管理员', status: '营业中', approvalStatus: '已通过' }); console.log('✅ 创建演示门店: STORE_DEMO'); } const hashed = await hashPassword('demo123'); await StoreAuth.create({ storeId: store.storeId, username: 'store_demo', password: hashed, name: '门店演示账号', status: 'active' }); console.log('✅ 门店演示账号创建成功!'); } console.log(' 用户名: store_demo'); console.log(' 密码: demo123'); console.log(''); // ===== 2. 骑手演示账号 ===== console.log('--- 骑手演示账号 ---'); const riderDemo = await Rider.findOne({ phone: '13800138100' }); if (riderDemo) { console.log('⚠️ 骑手演示账号已存在: 13800138100 / demo123'); } else { const hashed = await hashPassword('demo123'); await Rider.create({ riderId: 'RIDER_DEMO', name: '骑手演示账号', phone: '13800138100', password: hashed, role: 'rider', status: 'active', rating: 5.0, totalOrders: 0, totalIncome: 0 }); console.log('✅ 骑手演示账号创建成功!'); } console.log(' 手机号: 13800138100'); console.log(' 密码: demo123'); console.log(''); console.log('🎉 演示账号初始化完成!'); await mongoose.disconnect(); } init().catch(err => { console.error(err); process.exit(1); });