diff --git a/server/initDemoUsers.js b/server/initDemoUsers.js new file mode 100644 index 0000000..a153ffe --- /dev/null +++ b/server/initDemoUsers.js @@ -0,0 +1,81 @@ +/** + * 初始化小程序演示账号 + * 用法: 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); });