baoyubo преди 1 месец
родител
ревизия
9307863d24
променени са 2 файла, в които са добавени 60 реда и са изтрити 7 реда
  1. 51 0
      routers/api/videoResource/tag/__init__.py
  2. 9 7
      routers/api/videoResource/videoinfo.py

+ 51 - 0
routers/api/videoResource/tag/__init__.py

@@ -119,6 +119,57 @@ async def get_dict_data_by_type(
         traceback.print_exc()
         raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e))
 
+@router.get('/notAll/list')
+async def get_dict_data_by_type(
+    # dictType: str = Query(None, max_length=100),
+    page: int = Query(1, gt=0),
+    pageSize: int = Query(10, gt=0),
+    db: Session = Depends(get_db),
+    body = Depends(remove_xss_json),
+    user_id = Depends(valid_access_token)
+):
+    try:
+        # 根据 dict_type 查询字典数据
+        query = db.query(SysDictData)
+        query = query.filter(SysDictData.dict_type == 'video_type')
+        query = query.filter(SysDictData.del_flag != '2')
+        query = query.order_by(SysDictData.dict_sort)
+        # dict_data = db.query(SysDictData).filter_by(dict_type==dict_type and del_flag != '2').all()
+        total_items = query.count()
+        dict_data = query.offset((page - 1) * pageSize).limit(pageSize).all()
+
+        # 将模型转换为字典
+        dict_data_list = []
+        for d in dict_data:
+            if d.dict_label!='全量视频':
+                dict_data_list.append( {
+                "dictCode": d.dict_code,
+                "dictSort": d.dict_sort,
+                "dictLabel": d.dict_label,
+                "dictValue": d.dict_value,
+                "dictType": d.dict_type,
+                "cssClass": d.css_class,
+                "listClass": d.list_class,
+                "isDefault": d.is_default,
+                "remark": d.remark,
+                "createTime": d.create_time.strftime('%Y-%m-%d %H:%M:%S') if d.create_time else ''
+            })
+        # 构建返回结果
+        result = {
+            "code": 200,
+            "msg": "操作成功",
+            "data": dict_data_list,
+            "total": total_items,
+            "page": page,
+            "pageSize": pageSize,
+            "totalPages": (total_items + pageSize - 1) // pageSize
+        }
+        return result
+    except Exception as e:
+        # 处理异常
+        traceback.print_exc()
+        raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e))
+
 @router.get('/info/{dictCode}')
 async def get_dict_data_by_type(
     dictCode: str ,

+ 9 - 7
routers/api/videoResource/videoinfo.py

@@ -159,12 +159,6 @@ async def get_video_url_by_id(
                 if tag_info.dict_label != '全量视频':
                     videoli = [info.video_code for info in tag_get_video_tag_list(db, video_tag)]
                     query = query.filter(TPVideoInfo.gbIndexCode.in_(videoli))
-        if longitude is not None and latitude is not None:
-            point = func.ST_GeomFromText(f'POINT({latitude} {longitude})', 4326)
-            query = query.add_columns(
-                func.ST_Distance_Sphere(TPVideoInfo.location, point).label('distance')
-            ).order_by('distance')
-
         videoIds = user_id_get_user_videoIds(db, user_id)
         video_list = [i.video_code_int for i in videoIds]
 
@@ -178,6 +172,14 @@ async def get_video_url_by_id(
             ).label('user_priority')
             query = query.add_columns(video_priority_case).order_by('user_priority')
 
+        if longitude is not None and latitude is not None:
+            point = func.ST_GeomFromText(f'POINT({latitude} {longitude})', 4326)
+            query = query.add_columns(
+                func.ST_Distance_Sphere(TPVideoInfo.location, point).label('distance')
+            ).order_by('distance')
+
+
+
 
         total_items = query.count()
         videos = query.offset(pageSize * (page - 1)).limit(pageSize).all()
@@ -191,7 +193,7 @@ async def get_video_url_by_id(
             for info in tag_list:
                 tag_info = get_dict_data_info(db, info.dict_type, info.dict_value)
                 if tag_info:
-                    if tag_info.dict_label not in tag_lable:
+                    if tag_info.dict_label not in tag_lable and tag_info.dict_label!='全量视频':
                         tag.append({"id": info.id,
                                     "video_code": row.gbIndexCode,
                                     "dict_type": info.dict_type,