From d9c9d0e6adb9b6bf1594e0981cc6d7d765e6720e Mon Sep 17 00:00:00 2001 From: yinzijian Date: Thu, 6 Nov 2025 19:15:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B7=AF=E5=8F=A3=E5=88=97?= =?UTF-8?q?=E8=A1=A8sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yinzijian --- app/tmnet_db_func.py | 64 +++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/app/tmnet_db_func.py b/app/tmnet_db_func.py index a5c63a2..4d80e14 100644 --- a/app/tmnet_db_func.py +++ b/app/tmnet_db_func.py @@ -19,7 +19,7 @@ class TmnetDbHelper(TableDbHelperBase): if road_row['update_time'] > last_reload_time: road_res_list.append(road_row) return cross_res_list, road_res_list - + def query_phase_by_cross_list(self, citycode, cross_list): conn, cursor = self.connect() try: @@ -30,8 +30,8 @@ class TmnetDbHelper(TableDbHelperBase): where cm.nodeid = %s and cm.xl_crossid in %s group by cm.xl_crossid''' - print(cursor.mogrify(sql,(citycode,cross_list))) - cursor.execute(sql,(citycode,cross_list)) + print(cursor.mogrify(sql, (citycode, cross_list))) + cursor.execute(sql, (citycode, cross_list)) result = cursor.fetchall() self.close(conn, cursor) return result, None @@ -69,7 +69,7 @@ class TmnetDbHelper(TableDbHelperBase): """ % (nodeid, area_id, nodeid, area_id) cross_list = self.do_select(sql) if area_id != 0: - area_cross_sql = f'select * from bound_crosses where nodeid = {nodeid} and area_id = {area_id}' + area_cross_sql = f'select * from bound_crosses where nodeid = {nodeid} and area_id = {area_id}' area_crosses = self.do_select(area_cross_sql) area_cross_list = [cross['crossid'] for cross in area_crosses] cross_list = [cross for cross in cross_list if cross['crossid'] in area_cross_list] @@ -112,7 +112,8 @@ class TmnetDbHelper(TableDbHelperBase): """ values = [ ( - d['start_hm'], d['end_hm'], d['crossid'], d['phase_type'], d['phase_detail'], d['cont_times'], d['final_state'], + d['start_hm'], d['end_hm'], d['crossid'], d['phase_type'], d['phase_detail'], d['cont_times'], + d['final_state'], d['level_color'], d['first_date'], d['change_red_daynums'] ) for d in insert_list ] @@ -180,41 +181,32 @@ class TmnetDbHelper(TableDbHelperBase): left join (select name,crossid, location,nodeid, area_id from `cross_ledger_update_info` where nodeid = %s and area_id = %s and at_edge=0 and isdeleted=0 and crossid = '%s') as t2 on t1.crossid=t2.crossid """ % (nodeid, area_id, crossid, nodeid, area_id, crossid) return self.do_select(sql) - - def query_cross_list_road(self, nodeid:str, area_id:str): + + def query_cross_list_road(self, nodeid: str, area_id: str): conn, cursor = self.connect() try: - sql = """select if(clui.name is not null, clui.name, c.name) as name, - c.crossid, - if(clui.location is not null, clui.location, c.location) as location, - c.nodeid, - c.area_id, - t2.to_crossid, - t2.name road_name, - t2.src_direct - from `cross` as c - left join `cross_ledger_update_info` as clui on clui.crossid = c.crossid and clui.nodeid = c.nodeid and clui.area_id = c.area_id - left join ( - select r.roadid, - if(rlui.from_crossid is not null, rlui.from_crossid, r.from_crossid) as from_crossid, - if(rlui.to_crossid is not null, rlui.to_crossid, r.to_crossid) as to_crossid, - if(rlui.name is not null, rlui.name, r.name) as name, - if(rlui.src_direct is not null, rlui.src_direct, r.src_direct) as src_direct - from road as r - left join road_ledger_update_info as rlui on rlui.nodeid = r.nodeid and rlui.recordstate = r.recordstate and rlui.to_crossid = r.to_crossid and (rlui.is_sup_road is null or rlui.is_sup_road <> 1) - where r.nodeid = %s - and r.recordstate = 0 - and (r.is_sup_road is null or r.is_sup_road <> 1) - ) as t2 on t2.to_crossid = c.crossid - where c.nodeid = %s - and c.area_id = %s - and c.at_edge = 0 - and c.isdeleted = 0""" - print(cursor.mogrify(sql, (nodeid, nodeid, area_id))) - cursor.execute(sql, (nodeid, nodeid, area_id)) + sql = """select if(clui.name is not null, clui.name, c2.name) as name, + c.crossid, + if(clui.location is not null, clui.location, c.location) as location, + c.nodeid, + c.area_id, + r.roadid, + if(rlui.from_crossid is not null, rlui.from_crossid, r.from_crossid) as from_crossid, + if(rlui.to_crossid is not null, rlui.to_crossid, r.to_crossid) as to_crossid, + if(rlui.name is not null, rlui.name, r.name) as road_name, + if(rlui.src_direct is not null, rlui.src_direct, r.src_direct) as src_direct + from `bound_crosses` as c + join `cross` c2 on c2.crossid = c.crossid and c2.nodeid = %s and c2.area_id = %s + left join `cross_ledger_update_info` as clui on clui.crossid = c.crossid and clui.nodeid = %s and clui.area_id = %s + left join `road` as r on r.nodeid = %s and r.to_crossid = c.crossid and r.recordstate = 0 and (r.is_sup_road is null or r.is_sup_road <> 1) + left join `road_ledger_update_info` as rlui on rlui.nodeid = %s and rlui.recordstate = r.recordstate and rlui.to_crossid = r.to_crossid and (rlui.is_sup_road is null or rlui.is_sup_road <> 1) + where c.nodeid = %s + and c.area_id = %s""" + print(cursor.mogrify(sql, (nodeid, area_id, nodeid, area_id, nodeid, nodeid, int(nodeid), int(area_id)))) + cursor.execute(sql, (nodeid, area_id, nodeid, area_id, nodeid, nodeid, int(nodeid), int(area_id))) result = cursor.fetchall() self.close(conn, cursor) return result, None except Exception as error: self.close(conn, cursor) - return None, error \ No newline at end of file + return None, error