修复提交订单成功后不停止排队 #35

This commit is contained in:
Jalin
2019-01-15 23:12:12 +08:00
parent 8df3c4032d
commit 1c98e2743a
5 changed files with 38 additions and 16 deletions

View File

@@ -47,6 +47,8 @@ class CommonLog(BaseLog):
MESSAGE_GET_RESPONSE_FROM_FREE_AUTO_CODE = '从免费打码获取结果失败'
MESSAGE_RESPONSE_EMPTY_ERROR = '网络错误'
def __init__(self):
super().__init__()
self.init_data()

View File

@@ -17,6 +17,7 @@ class OrderLog(BaseLog):
MESSAGE_CHECK_ORDER_INFO_FAIL = '检查订单失败,错误原因 {} \n'
MESSAGE_CHECK_ORDER_INFO_SUCCESS = '检查订单成功'
MESSAGE_GET_QUEUE_INFO_SUCCESS = '获取排队信息成功,目前排队人数 {}, 余票还剩余 {}'
MESSAGE_GET_QUEUE_COUNT_SUCCESS = '排队成功,你当前排在第 {} 位, 余票还剩余 {}'
MESSAGE_GET_QUEUE_LESS_TICKET = '排队失败,目前排队人数已经超过余票张数'
MESSAGE_GET_QUEUE_COUNT_FAIL = '排队失败,错误原因 {}'

View File

@@ -29,7 +29,7 @@ class UserLog(BaseLog):
MESSAGE_USER_BEING_DESTROY = '用户 {} 已退出'
MESSAGE_USER_COOKIE_NOT_FOUND_FROM_REMOTE = '用户 {} 状态加载中...'
MESSAGE_WAIT_USER_INIT_COMPLETE = '账号正在初始化{} 秒后自动重试'
MESSAGE_WAIT_USER_INIT_COMPLETE = '账号正在登录中{} 秒后自动重试'
def __init__(self):
super().__init__()

View File

@@ -83,8 +83,9 @@ class Order:
Notification.send_email(Config().EMAIL_RECEIVER, OrderLog.MESSAGE_ORDER_SUCCESS_NOTIFICATION_TITLE,
OrderLog.MESSAGE_ORDER_SUCCESS_NOTIFICATION_OF_EMAIL_CONTENT.format(self.order_id))
if Config().DINGTALK_ENABLED: # 钉钉通知
Notification.dingtalk_webhook(OrderLog.MESSAGE_ORDER_SUCCESS_NOTIFICATION_OF_EMAIL_CONTENT.format(self.order_id))
if Config().TELEGRAM_ENABLED: # Telegram推送
Notification.dingtalk_webhook(
OrderLog.MESSAGE_ORDER_SUCCESS_NOTIFICATION_OF_EMAIL_CONTENT.format(self.order_id))
if Config().TELEGRAM_ENABLED: # Telegram推送
Notification.send_to_telegram(
OrderLog.MESSAGE_ORDER_SUCCESS_NOTIFICATION_OF_EMAIL_CONTENT.format(self.order_id))
if Config().SERVERCHAN_ENABLED: # ServerChan通知
@@ -235,12 +236,12 @@ class Order:
current_position = int(result.get('data.countT', 0))
OrderLog.add_quick_log(
OrderLog.MESSAGE_GET_QUEUE_COUNT_SUCCESS.format(current_position, ticket_number)).flush()
OrderLog.MESSAGE_GET_QUEUE_INFO_SUCCESS.format(current_position, ticket_number)).flush()
return True
else:
# 加入小黑屋
OrderLog.add_quick_log(OrderLog.MESSAGE_GET_QUEUE_COUNT_FAIL.format(
result.get('messages', result.get('validateMessages', '-')))).flush()
result.get('messages', result.get('validateMessages', CommonLog.MESSAGE_RESPONSE_EMPTY_ERROR)))).flush()
return False
def confirm_single_for_queue(self):
@@ -297,10 +298,11 @@ class Order:
else:
# 加入小黑屋 TODO
OrderLog.add_quick_log(
OrderLog.MESSAGE_CONFIRM_SINGLE_FOR_QUEUE_ERROR.format(result.get('data.errMsg', '-'))).flush()
OrderLog.MESSAGE_CONFIRM_SINGLE_FOR_QUEUE_ERROR.format(
result.get('data.errMsg', CommonLog.MESSAGE_RESPONSE_EMPTY_ERROR))).flush()
else:
OrderLog.add_quick_log(OrderLog.MESSAGE_CONFIRM_SINGLE_FOR_QUEUE_FAIL.format(
result.get('messages', '-'))).flush()
result.get('messages', CommonLog.MESSAGE_RESPONSE_EMPTY_ERROR))).flush()
return False
def query_order_wait_time(self):
@@ -344,14 +346,31 @@ class Order:
order_id = result_data.get('orderId')
if order_id: # 成功
return order_id
elif result_data.get('waitTime') != -100:
OrderLog.add_quick_log(
OrderLog.MESSAGE_QUERY_ORDER_WAIT_TIME_WAITING.format(result_data.get('waitCount', 0),
result_data.get('waitTime'))).flush()
elif 'waitTime' in result_data:
# 计算等待时间
wait_time = int(result_data.get('waitTime'))
if wait_time == -1 or wait_time == -100: # 成功
# /otn/confirmPassenger/resultOrderForDcQueue 请求订单状态 目前不需要
# 不应该走到这
return order_id
elif wait_time >= 0: # 等待
OrderLog.add_quick_log(
OrderLog.MESSAGE_QUERY_ORDER_WAIT_TIME_WAITING.format(result_data.get('waitCount', 0),
wait_time)).flush()
else:
if wait_time == -2 or wait_time == -3: # -2 失败 -3 订单已撤销
OrderLog.add_quick_log(
OrderLog.MESSAGE_QUERY_ORDER_WAIT_TIME_FAIL.format(result_data.get('msg'))).flush()
else: # 未知原因
OrderLog.add_quick_log(
OrderLog.MESSAGE_QUERY_ORDER_WAIT_TIME_FAIL.format(
result_data.get('msg', wait_time))).flush()
elif result_data.get('msg'): # 失败 对不起由于您取消次数过多今日将不能继续受理您的订票请求。1月8日您可继续使用订票功能。
# TODO 需要增加判断 直接结束
OrderLog.add_quick_log(
OrderLog.MESSAGE_QUERY_ORDER_WAIT_TIME_FAIL.format(result_data.get('msg', '-'))).flush()
OrderLog.MESSAGE_QUERY_ORDER_WAIT_TIME_FAIL.format(
result_data.get('msg', CommonLog.MESSAGE_RESPONSE_EMPTY_ERROR))).flush()
stay_second(self.retry_time)
return False
elif result.get('messages') or result.get('validateMessages'):

View File

@@ -45,10 +45,10 @@ class Web:
def start(self):
if not Config().WEB_ENABLE or Config().is_slave(): return
if Config().IS_DEBUG:
self.run_session()
else:
create_thread_and_run(self, 'run_session', wait=False)
# if Config().IS_DEBUG:
# self.run_session()
# else:
create_thread_and_run(self, 'run_session', wait=False)
def run_session(self):
debug = False