UNPKG

tlk

Version:

查询指定车次的所有站点的余票信息

95 lines (76 loc) 2.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _lodash = _interopRequireDefault(require("lodash")); var _stationList = _interopRequireDefault(require("./apis/stationList")); var _trains = _interopRequireDefault(require("./apis/trains")); var _printAll = _interopRequireDefault(require("./printAll")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _default = async (train_no, depart_station, arrive_station, depart_date) => { const stationList = await (0, _stationList.default)(train_no, depart_date); // 上车站点的索引 const depart_index = _lodash.default.findIndex(stationList, s => s.station_name === depart_station); // 到达站点的索引 const arrive_index = _lodash.default.findIndex(stationList, s => s.station_name === arrive_station); /** * 上车站点之前的站点列表 */ const beforStations = stationList.slice(0, depart_index + 1); const afterStations = stationList.slice(arrive_index); // console.log('be: ', beforStations) // console.log('af: ', afterStations) // TODO: 有问题 const jjobs = []; beforStations.map(bs => { for (const as of afterStations) { jjobs.push(queryTicket(train_no, bs.station_name, as.station_name, depart_date)); } }); // console.log('jjobs: ', jjobs) const results = await Promise.all(jjobs); // for (const r of results) { // console.log('r: ', r) // } (0, _printAll.default)(results); // /** // * 向前 // */ // if (depart_index > 0) { // // eslint-disable-next-line // console.log( // '提前上车方案:', // train_no, // depart_station, // arrive_station, // depart_date, // ) // const jb = stationList // .slice(0, depart_index + 1) // .map(s => // queryTicket(train_no, s.station_name, arrive_station, depart_date), // ) // const res = await Promise.all(jb) // print(res) // } // /** // * 向后 // */ // // eslint-disable-next-line // console.log( // '延后下车方案:', // train_no, // depart_station, // arrive_station, // depart_date, // ) // const jobs = stationList // .slice(arrive_index + 1) // .map(s => // queryTicket(train_no, depart_station, s.station_name, depart_date), // ) // const res = await Promise.all(jobs) // print(res) }; exports.default = _default; async function queryTicket(train_no, depart_station, arrive_station, depart_date) { // console.log('==> ', train_no, depart_station, arrive_station, depart_date) const trains = await (0, _trains.default)(depart_station, arrive_station, depart_date); const train = _lodash.default.find(trains, t => t.TrainNumber === train_no); return train; }