Light12306/Web12306/js/platform/parser.js

85 lines
2.4 KiB
JavaScript
Raw Normal View History

2014-06-12 21:36:05 +08:00
define(function (require, exports) {
2014-08-06 20:56:47 +08:00
var utility = require("../utility.js");
2014-12-15 22:10:15 +08:00
var data = require("../data.js");
2014-06-12 21:36:05 +08:00
2014-12-15 22:10:15 +08:00
exports.getError = function (json) {
2014-06-12 21:36:05 +08:00
/// <summary>获得指定返回数据中的错误信息</summary>
2014-12-15 22:10:15 +08:00
if (json.messages && json.messages instanceof Array) {
return { message: data.parseErrorMessage(json.messages.join(";")) };
2014-06-12 21:36:05 +08:00
}
2014-12-15 22:10:15 +08:00
if (json.data && json.data.isRelogin) {
return { message: "12306取消了您的登录请重新登录。", relogin: true };
2014-06-12 21:36:05 +08:00
}
return { message: "未知错误信息" };
};
2014-06-26 22:24:54 +08:00
exports.canPassageAddToOrder = function (p) {
if (p.passenger_id_type_code === "C" || p.passenger_id_type_code === "G" || p.passenger_id_type_code === "B")
return true;
if (p.passenger_id_type_code === "2")
return false;
2014-08-26 21:29:58 +08:00
return p.total_times == "93" || p.total_times == "95" || p.total_times == "97" || p.total_times == "99";
2014-06-26 22:24:54 +08:00
};
exports.getAvailableTicketType = function (p, stu) {
var a = [];
var pt = p.passenger_type;
if (pt === "3" && stu) {
a.push({ id: 3, name: "学生票" });
} else {
a.push({ id: 1, name: "成人票" });
a.push({ id: 2, name: "儿童票" });
2014-07-31 21:30:48 +08:00
if (pt === "3")
a.push({ id: 3, name: "学生票" });
2014-06-26 22:24:54 +08:00
}
if (pt === "4") {
a.push({ id: 4, name: "残军票" });
}
return a;
};
2014-07-01 20:07:44 +08:00
exports.processPassenger = function (list) {
list.forEach(function (e) {
2014-06-26 22:24:54 +08:00
e.key = e.passenger_type + "$" + e.passenger_name + "$" + e.passenger_id_type_code + "$" + e.passenger_id_no;
});
};
2014-07-01 20:07:44 +08:00
exports.getSeats = function (trainSeats) {
2015-03-13 19:25:08 +08:00
var seats = _.filter(_.clone(trainSeats), function (t) { return t.count > 0; });
2014-07-01 20:07:44 +08:00
//排序
seats.sort(function (x, y) {
return x.price - y.price;
});
//如果有硬座/二等座和无座,则隐藏无座
var removeNonSeat = _.findWhere(seats, { code: "1" }) || _.findWhere(seats, { code: "O" }) || false;
if (removeNonSeat) {
for (var i = 0; i < seats.length; i++) {
if (seats[i].code === "0") {
seats.splice(i, 1);
break;
}
}
2014-09-01 20:24:57 +08:00
} else {
//有无座的时候,则设置无座的席别代码
2015-03-13 19:25:08 +08:00
var emptySeatCode = data.getEmptySeatCode(trainSeats);
2014-09-01 20:24:57 +08:00
var emptyItem = _.findWhere(seats, { code: "0" });
if (emptyItem)
emptyItem.code = emptySeatCode;
2014-07-01 20:07:44 +08:00
}
return seats;
};
2014-07-04 20:57:57 +08:00
2014-08-05 20:54:33 +08:00
exports.sortCity = function (cities) {
/// <summary>对城市进行排序</summary>
2015-03-13 19:25:08 +08:00
cities.sort(function (x, y) {
2014-12-15 22:10:15 +08:00
if (x.s !== y.s)
2014-08-05 20:54:33 +08:00
return x.s - y.s;
return x.c > y.c ? 1 : -1;
});
};
2014-07-31 21:30:48 +08:00
});