baoyubo пре 6 месеци
родитељ
комит
1749072309
2 измењених фајлова са 33 додато и 15 уклоњено
  1. 16 1
      routers/api/comprehensive_search/__init__.py
  2. 17 14
      routers/api/pattern/__init__.py

+ 16 - 1
routers/api/comprehensive_search/__init__.py

@@ -16,6 +16,7 @@ from models import *
 from utils import *
 from utils.spatial import *
 from utils.ry_system_util import *
+from utils.video_util import *
 import json
 import traceback
 
@@ -27,7 +28,21 @@ def get_add_data(keyword:str ,db :Session):
     return [{"id":i.id,"name":i.name,"dataType":i.dataType,"area":i.area,"longitude":i.longitude,"latitude":i.latitude,"address":i.address} for i in db.execute(sql).all()]
 def get_video_data(keyword:str ,db :Session):
     sql = text("""SELECT T1.*,T2.dict_label FROM point_data T1 LEFT JOIN (SELECT * FROM `sys_dict_data` WHERE `dict_type`='point_type') T2 on T1.dataType=T2.dict_value where T1.dataType in (30,31,32,33,34) and ( T1.id like '%{keyword}%' or T1.`name` like '%{keyword}%') """.replace("{keyword}",keyword))
-    return [{"id":i.id,"name":i.name,"dataType":i.dataType,"area":i.area,"longitude":i.longitude,"latitude":i.latitude,"address":i.address,"dict_label":i.dict_label} for i in db.execute(sql).all()]
+    result = []
+    for i in db.execute(sql).all():
+        tag = []
+        for info in get_video_tag_list(db, i.id):
+            tag_info = get_dict_data_info(db, info.dict_type, info.dict_value)
+            tag.append({"id": info.id,
+                        "video_code": i.id,
+                        "dict_type": info.dict_type,
+                        "dict_value": info.dict_value,
+                        "dict_label": tag_info.dict_label,
+                        "dict_code": tag_info.dict_code})
+        result.append({"id": i.id, "name": i.name, "dataType": i.dataType, "area": i.area, "longitude": i.longitude,
+      "latitude": i.latitude, "address": i.address, "tag_info":tag}) #"dict_label": i.dict_label,
+
+    return result
 def get_point_data(keyword:str ,db :Session):
     sql = text("""SELECT T1.*,T2.dict_label FROM point_data T1 LEFT JOIN (SELECT * FROM `sys_dict_data` WHERE `dict_type`='point_type') T2 on T1.dataType=T2.dict_value where  (T2.dict_label like '%{keyword}%' or T1.`name` like '%{keyword}%')""".replace("{keyword}",keyword))
     return [{"id":i.id,"name":i.name,"dataType":i.dataType,"area":i.area,"longitude":i.longitude,"latitude":i.latitude,"address":i.address,"dict_label":i.dict_label} for i in db.execute(sql).all()]

+ 17 - 14
routers/api/pattern/__init__.py

@@ -164,8 +164,11 @@ async def websocket_endpoint(pattern_id:str ,websocket: WebSocket,db: Session =
             if 'operation' in data:
                 if data['operation'] == 'add':
                     if 'name' in data  and 'content'in data and 'visible' in data:
+                        id = new_guid()
+                        if 'id' in data:
+                            id = data['id']
                         new_pattern_ws = TpPatternWSList(
-                            id=new_guid(),
+                            id=id,
                             name=data['name'],
                             pattern_id=pattern_id,
                             content=data['content'],
@@ -200,24 +203,24 @@ async def websocket_endpoint(pattern_id:str ,websocket: WebSocket,db: Session =
                         db.commit()
                         await websocket.send_text('{"code": 200, "msg": "更新成功", "data": null}')
                         await manager.broadcast(pattern_id, db,websocket)
-                    elif data['operation'] == 'delete':
-                        if 'id' in data:
-                            id = data['id']
-                            query = db.query(TpPatternWSList)
-                            query = query.filter(TpPatternWSList.del_flag != '2')
-                            query = query.filter(TpPatternWSList.id == id)
-                            info = query.first()
-                            info.del_flag='2'
-                            info.update_by = user_id
-                            db.commit()
-                            await websocket.send_text('{"code": 200, "msg": "更新成功", "data": null}')
-                            await manager.broadcast(pattern_id, db, websocket)
+                elif data['operation'] == 'delete':
+                    if 'id' in data:
+                        id = data['id']
+                        query = db.query(TpPatternWSList)
+                        query = query.filter(TpPatternWSList.del_flag != '2')
+                        query = query.filter(TpPatternWSList.id == id)
+                        info = query.first()
+                        info.del_flag='2'
+                        info.update_by = user_id
+                        db.commit()
+                        await websocket.send_text('{"code": 200, "msg": "更新成功", "data": null}')
+                        await manager.broadcast(pattern_id, db, websocket)
                     else:
                         await websocket.send_text('{"code": 404, "msg": "更新数据 id为必填","data":null}')
                 elif data['operation'] == 'heartCheck':
                     await websocket.send_text('null')
                 else:
-                    await websocket.send_text('{"code":404,"msg":"operation入参add or update or heartCheck"}')
+                    await websocket.send_text('{"code":404,"msg":"operation入参add or update or delete or heartCheck"}')
             else:
                 await websocket.send_text('{"code":404,"msg":"需包含operation参数"}')
          # 广播消息给所有连接