| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- import { AppDataSource } from '../src/server/data-source.js';
- import { ActivityEntity, ActivityType } from '../src/server/modules/activities/activity.entity.js';
- import { RouteEntity } from '../src/server/modules/routes/route.entity.js';
- async function seed() {
- console.log('开始创建种子数据...');
- try {
- // 初始化数据库连接
- await AppDataSource.initialize();
- console.log('数据库连接已建立');
- // 获取Repository
- const activityRepository = AppDataSource.getRepository(ActivityEntity);
- const routeRepository = AppDataSource.getRepository(RouteEntity);
- // 清空现有数据
- await routeRepository.createQueryBuilder().delete().execute();
- await activityRepository.createQueryBuilder().delete().execute();
- console.log('已清空现有数据');
- // 创建示例活动数据
- const activities = [
- {
- name: '国庆节去程活动',
- description: '国庆节期间的去程出行活动',
- type: ActivityType.DEPARTURE,
- startDate: new Date('2025-10-01T00:00:00Z'),
- endDate: new Date('2025-10-07T23:59:59Z'),
- },
- {
- name: '国庆节返程活动',
- description: '国庆节期间的返程出行活动',
- type: ActivityType.RETURN,
- startDate: new Date('2025-10-05T00:00:00Z'),
- endDate: new Date('2025-10-10T23:59:59Z'),
- },
- {
- name: '元旦去程活动',
- description: '元旦期间的去程出行活动',
- type: ActivityType.DEPARTURE,
- startDate: new Date('2026-01-01T00:00:00Z'),
- endDate: new Date('2026-01-03T23:59:59Z'),
- },
- {
- name: '元旦返程活动',
- description: '元旦期间的返程出行活动',
- type: ActivityType.RETURN,
- startDate: new Date('2026-01-02T00:00:00Z'),
- endDate: new Date('2026-01-04T23:59:59Z'),
- },
- {
- name: '春节去程活动',
- description: '春节期间的去程出行活动',
- type: ActivityType.DEPARTURE,
- startDate: new Date('2026-02-10T00:00:00Z'),
- endDate: new Date('2026-02-16T23:59:59Z'),
- },
- {
- name: '春节返程活动',
- description: '春节期间的返程出行活动',
- type: ActivityType.RETURN,
- startDate: new Date('2026-02-14T00:00:00Z'),
- endDate: new Date('2026-02-20T23:59:59Z'),
- },
- ];
- // 保存活动数据
- const savedActivities = await activityRepository.save(activities);
- console.log(`已创建 ${savedActivities.length} 个活动`);
- // 创建示例路线数据
- const routes = [
- // 国庆节去程路线
- {
- name: '北京-上海高铁',
- description: '北京到上海的高铁专线',
- startPoint: '北京',
- endPoint: '上海',
- pickupPoint: '北京南站',
- dropoffPoint: '上海虹桥站',
- departureTime: new Date('2025-10-01T08:00:00Z'),
- vehicleType: '高铁',
- price: 553.5,
- seatCount: 500,
- availableSeats: 450,
- activityId: savedActivities[0].id,
- },
- {
- name: '北京-广州飞机',
- description: '北京到广州的航班',
- startPoint: '北京',
- endPoint: '广州',
- pickupPoint: '北京首都机场',
- dropoffPoint: '广州白云机场',
- departureTime: new Date('2025-10-01T10:30:00Z'),
- vehicleType: '飞机',
- price: 1200,
- seatCount: 200,
- availableSeats: 180,
- activityId: savedActivities[0].id,
- },
- {
- name: '北京-深圳动车',
- description: '北京到深圳的动车专线',
- startPoint: '北京',
- endPoint: '深圳',
- pickupPoint: '北京西站',
- dropoffPoint: '深圳北站',
- departureTime: new Date('2025-10-01T09:15:00Z'),
- vehicleType: '动车',
- price: 756,
- seatCount: 600,
- availableSeats: 550,
- activityId: savedActivities[0].id,
- },
- // 国庆节返程路线
- {
- name: '上海-北京高铁',
- description: '上海到北京的高铁专线',
- startPoint: '上海',
- endPoint: '北京',
- pickupPoint: '上海虹桥站',
- dropoffPoint: '北京南站',
- departureTime: new Date('2025-10-07T14:00:00Z'),
- vehicleType: '高铁',
- price: 553.5,
- seatCount: 500,
- availableSeats: 400,
- activityId: savedActivities[1].id,
- },
- {
- name: '广州-北京飞机',
- description: '广州到北京的航班',
- startPoint: '广州',
- endPoint: '北京',
- pickupPoint: '广州白云机场',
- dropoffPoint: '北京首都机场',
- departureTime: new Date('2025-10-07T16:30:00Z'),
- vehicleType: '飞机',
- price: 1100,
- seatCount: 200,
- availableSeats: 150,
- activityId: savedActivities[1].id,
- },
- // 元旦去程路线
- {
- name: '北京-天津城际',
- description: '北京到天津的城际列车',
- startPoint: '北京',
- endPoint: '天津',
- pickupPoint: '北京南站',
- dropoffPoint: '天津站',
- departureTime: new Date('2026-01-01T09:00:00Z'),
- vehicleType: '城际列车',
- price: 54.5,
- seatCount: 600,
- availableSeats: 500,
- activityId: savedActivities[2].id,
- },
- // 元旦返程路线
- {
- name: '天津-北京城际',
- description: '天津到北京的城际列车',
- startPoint: '天津',
- endPoint: '北京',
- pickupPoint: '天津站',
- dropoffPoint: '北京南站',
- departureTime: new Date('2026-01-03T18:00:00Z'),
- vehicleType: '城际列车',
- price: 54.5,
- seatCount: 600,
- availableSeats: 450,
- activityId: savedActivities[3].id,
- },
- // 春节去程路线
- {
- name: '北京-哈尔滨高铁',
- description: '北京到哈尔滨的高铁专线',
- startPoint: '北京',
- endPoint: '哈尔滨',
- pickupPoint: '北京朝阳站',
- dropoffPoint: '哈尔滨西站',
- departureTime: new Date('2026-02-10T07:30:00Z'),
- vehicleType: '高铁',
- price: 623.5,
- seatCount: 500,
- availableSeats: 480,
- activityId: savedActivities[4].id,
- },
- // 春节返程路线
- {
- name: '哈尔滨-北京高铁',
- description: '哈尔滨到北京的高铁专线',
- startPoint: '哈尔滨',
- endPoint: '北京',
- pickupPoint: '哈尔滨西站',
- dropoffPoint: '北京朝阳站',
- departureTime: new Date('2026-02-17T15:00:00Z'),
- vehicleType: '高铁',
- price: 623.5,
- seatCount: 500,
- availableSeats: 420,
- activityId: savedActivities[5].id,
- },
- ];
- // 保存路线数据
- const savedRoutes = await routeRepository.save(routes);
- console.log(`已创建 ${savedRoutes.length} 条路线`);
- console.log('种子数据创建完成!');
- console.log(`总计: ${savedActivities.length} 个活动, ${savedRoutes.length} 条路线`);
- } catch (error) {
- console.error('创建种子数据时出错:', error);
- throw error;
- } finally {
- // 关闭数据库连接
- await AppDataSource.destroy();
- console.log('数据库连接已关闭');
- }
- }
- // 运行种子脚本
- seed().catch(console.error);
|