corp20250923
This commit is contained in:
+81
-17
@@ -1,6 +1,8 @@
|
||||
import requests
|
||||
import time
|
||||
import logging
|
||||
import requests
|
||||
from ewcc2 import Sinopec_ewcc
|
||||
|
||||
# 配置日志
|
||||
handlers = [logging.FileHandler('query_processor.log'), logging.StreamHandler()]
|
||||
@@ -81,9 +83,17 @@ def get_pending_queries():
|
||||
return []
|
||||
|
||||
# 更新查询结果
|
||||
def update_query_result(query_id, results_count):
|
||||
def update_query_result(query_id, results_count, cars_info=None):
|
||||
"""
|
||||
更新查询结果到后端API
|
||||
更新查询结果到后端API,可选地包含车辆信息
|
||||
|
||||
参数:
|
||||
query_id: 查询ID
|
||||
results_count: 结果数量
|
||||
cars_info: 可选,车辆信息列表,将被保存到car_owner表
|
||||
|
||||
返回:
|
||||
bool: 更新是否成功
|
||||
"""
|
||||
try:
|
||||
url = f'{BASE_URL}/api/update-query-result'
|
||||
@@ -92,6 +102,10 @@ def update_query_result(query_id, results_count):
|
||||
'results_count': results_count
|
||||
}
|
||||
|
||||
# 如果提供了车辆信息,添加到请求数据中
|
||||
if cars_info:
|
||||
data['cars_info'] = cars_info
|
||||
|
||||
response = requests.post(url, json=data)
|
||||
response.raise_for_status()
|
||||
result = response.json()
|
||||
@@ -106,36 +120,86 @@ def update_query_result(query_id, results_count):
|
||||
logger.error(f"更新查询结果时发生错误: {str(e)}")
|
||||
return False
|
||||
|
||||
# 保存param4值到后端API
|
||||
def save_param4(param4_value):
|
||||
"""
|
||||
保存param4的值到后端API
|
||||
如果param4_value是复杂对象,会尝试将其转换为JSON字符串
|
||||
"""
|
||||
try:
|
||||
url = f'{BASE_URL}/api/save-param4'
|
||||
|
||||
# 尝试将cookies对象转换为JSON字符串,以便能够序列化
|
||||
import json
|
||||
try:
|
||||
# 首先尝试直接序列化,如果失败则进行转换
|
||||
json.dumps(param4_value)
|
||||
# 如果能够直接序列化,就使用原始值
|
||||
processed_param4 = param4_value
|
||||
except (TypeError, OverflowError):
|
||||
# 如果不能直接序列化,尝试将其转换为字典或字符串
|
||||
if hasattr(param4_value, '__dict__'):
|
||||
# 如果是有__dict__属性的对象,转换为字典
|
||||
processed_param4 = param4_value.__dict__
|
||||
else:
|
||||
# 否则转换为字符串
|
||||
processed_param4 = str(param4_value)
|
||||
|
||||
data = {
|
||||
'param4': processed_param4
|
||||
}
|
||||
|
||||
response = requests.post(url, json=data)
|
||||
response.raise_for_status()
|
||||
result = response.json()
|
||||
|
||||
if result['success']:
|
||||
logger.info(f"成功保存param4值")
|
||||
return True
|
||||
else:
|
||||
logger.error(f"保存param4值失败: {result['error']}")
|
||||
return False
|
||||
except Exception as e:
|
||||
logger.error(f"保存param4值时发生错误: {str(e)}")
|
||||
return False
|
||||
|
||||
# 主处理函数
|
||||
def main():
|
||||
logger.info("查询处理代码启动")
|
||||
|
||||
# 获取参数配置
|
||||
parameters = get_parameters()
|
||||
if not parameters:
|
||||
logger.warning("无法获取参数配置,使用默认参数继续")
|
||||
# 使用默认参数继续
|
||||
parameters = {
|
||||
'param1': 'default1',
|
||||
'param2': 'default2',
|
||||
'param3': 'default3',
|
||||
'param4': 'default4',
|
||||
'param5': 'default5'
|
||||
}
|
||||
|
||||
|
||||
# 主循环
|
||||
while True:
|
||||
ewcc = Sinopec_ewcc()
|
||||
|
||||
try:
|
||||
# 获取参数配置
|
||||
parameters = get_parameters()
|
||||
if not parameters:
|
||||
logger.warning("无法获取参数配置,停止30秒后继续")
|
||||
time.sleep(30)
|
||||
continue
|
||||
|
||||
# 登录浏览器
|
||||
if not ewcc.Autologin(parameters['param1'],parameters['param2'],parameters['param3'],parameters['param4']):
|
||||
time.sleep(30)
|
||||
continue
|
||||
|
||||
# 只留浏览器cookies
|
||||
save_param4( ewcc.tab.cookies())
|
||||
|
||||
# 获取待处理查询
|
||||
pending_queries = get_pending_queries()
|
||||
|
||||
# 处理每条查询
|
||||
ewcc.query_car_info("湘AB5W21")
|
||||
for query in pending_queries:
|
||||
# 处理查询数据
|
||||
results_count = process_query_data(query, parameters)
|
||||
rtn_cars_info=ewcc.query_car_info(query['plate_number'],query['phone'])
|
||||
#results_count = process_query_data(query, parameters)
|
||||
|
||||
# 更新查询结果
|
||||
update_query_result(query['id'], results_count)
|
||||
update_query_result(query['id'], len(rtn_cars_info), rtn_cars_info)
|
||||
|
||||
# 等待一段时间后再次检查
|
||||
wait_time = 60 # 默认等待60秒
|
||||
|
||||
Reference in New Issue
Block a user