cross_doctor/app/phasetable_worker.py

52 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- 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 str(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)