cross_doctor/app/phasetable_worker.py

51 lines
1.9 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
# @Author: Owl
# @Date: 2025/10/10 14:33
# @Description:
import json
from app.common_worker import *
from app.eva_common import *
# 查询可用路口列表
from proto.phase_grpc import QueryCrossRunningPhase
def phase_cross_list(params):
nodeid = check_param(params, 'nodeid')
if not nodeid:
return json.dumps(make_common_res(1, '缺少nodeid 请刷新后重试'))
area_id = check_param(params, 'area_id')
if not area_id:
return json.dumps(make_common_res(2, '缺少area_id 请刷新后重试'))
userid = check_param(params, 'userid')
if not userid:
return json.dumps(make_common_res(3, '缺少userid 请刷新后重试'))
area_list = db_user.query_areaid_list(userid)
if not area_list or len(area_list) < 1:
return json.dumps(make_common_res(4, '用户信息异常'))
area_list = map(int, area_list)
if not area_id.lstrip('-').isdigit() or int(area_id) not in area_list:
return json.dumps(make_common_res(5, '辖区id异常请检查后重试'))
cross_road_list, error = db_tmnet.query_cross_list_road(str(nodeid), str(area_id))
if error:
return json.dumps(make_common_res(2, f"{error}"), ensure_ascii=False)
cross_map = {}
for item_cross_road_list in cross_road_list:
if item_cross_road_list['crossid'] not in cross_map:
cross_map[item_cross_road_list['crossid']] = {
"crossid": item_cross_road_list['crossid'],
"name": item_cross_road_list['name'],
"src_dir": [],
}
if item_cross_road_list['src_direct'] not in cross_map[item_cross_road_list['crossid']]['src_dir']:
cross_map[item_cross_road_list['crossid']]['src_dir'].append(item_cross_road_list['src_direct'])
res = make_common_res(0, 'ok')
res["data"] = list(cross_map.values())
return json.dumps(res, ensure_ascii=False)