tlk
Version:
查询指定车次的所有站点的余票信息
95 lines (76 loc) • 2.83 kB
JavaScript
;
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;
}