tlk
Version:
查询指定车次的所有站点的余票信息
111 lines (93 loc) • 2.48 kB
JavaScript
import _ from 'lodash'
import featchStationList from './apis/stationList'
import featchTrains from './apis/trains'
import print from './printAll'
export default async (
train_no,
depart_station,
arrive_station,
depart_date,
) => {
const stationList = await featchStationList(train_no, depart_date)
// 上车站点的索引
const depart_index = _.findIndex(
stationList,
s => s.station_name === depart_station,
)
// 到达站点的索引
const arrive_index = _.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)
// }
print(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)
}
async function queryTicket(
train_no,
depart_station,
arrive_station,
depart_date,
) {
// console.log('==> ', train_no, depart_station, arrive_station, depart_date)
const trains = await featchTrains(depart_station, arrive_station, depart_date)
const train = _.find(trains, t => t.TrainNumber === train_no)
return train
}