소스 검색

no message

libushang 5 달 전
부모
커밋
5d5206d880
2개의 변경된 파일37개의 추가작업 그리고 31개의 파일을 삭제
  1. 15 1
      models/video_base.py
  2. 22 30
      routers/api/videoResource/avcon.py

+ 15 - 1
models/video_base.py

@@ -129,4 +129,18 @@ class AvconDeviceChannel(Base):
     create_time = Column(DateTime, default=datetime.now, comment='数据创建时间')
 
     class Config:
-        orm_mode = True
+        orm_mode = True
+
+
+class AvconUser(Base):
+    '''
+    融合设备账号映射
+    '''
+    __tablename__ = 'avcon_user'
+
+    user_id = Column(BigInteger, primary_key=True,autoincrement=True, comment='用户ID')
+    dev_id = Column(String, nullable=False, comment='融合设备ID')
+    dev_name = Column(String, default='', nullable=True, comment='融合设备名称')
+
+    class Config:
+        orm_mode = True

+ 22 - 30
routers/api/videoResource/avcon.py

@@ -24,7 +24,8 @@ router = APIRouter()
 
 @router.get('/get_video_list')
 async def get_video_list(
-    db: Session = Depends(get_db)
+    db: Session = Depends(get_db),
+    user_id=Depends(valid_access_token)
 ):
     return AvconH5API.get_channel_all()
 
@@ -54,17 +55,31 @@ async def get_mini_video_list(
 @router.post("/get_start_mini_param")
 async def get_start_mini_param(
     body = Depends(remove_xss_json),
-    db: Session = Depends(get_db)
+    db: Session = Depends(get_db),
+    user_id = Depends(valid_access_token)
 ):
-    userid = get_req_param(body, "userid")
+    user_info = db.query(AvconUser).filter(AvconUser.user_id).first()
+    if user_info is None:
+        return {
+            "code": 500,
+            "msg": "当前账号对应的融合设备为空,请联系管理员配置。"
+        }
+
+    userid = user_info.dev_id
     password = "123"
 
     # 自动入会时的会议ID,若不传roomid或roomid为空,则程序会自动召开一个会议,并将dev-list对应的人员拉入会议中
     roomid = get_req_param_optional(body, "roomid")
 
-    # 进入会议后需要广播的人员列表
-    dev_list = get_req_param(body, "dev-list")
+    windowpos = get_req_param(body, "windowpos")
+    x = windowpos['x']
+    y = windowpos['y']
+    width = windowpos['width']
+    height = windowpos['height']
+    top = windowpos['top']
 
+    # 进入会议后需要广播的人员列表
+    members = get_req_param(body, "members")
     params = {
         "mode": "mini",
         "cmd": "enterroom",
@@ -72,32 +87,9 @@ async def get_start_mini_param(
         "userid": userid,
         "password": password,
         "roomid": roomid,
-        "windowpos": {"x": 0,"y": 0,"width": 1000,"height": 700,"top": True},
-        "members": {
-            "num": 10,
-            "dev-list": [
-                {
-                    "id": "cs0030@xf"
-                },
-                {
-                    "id": "cs0028@xf",
-                    "avtype": "a"
-                }
-            ],
-            "sip-list": [
-                {
-                    "id": "60002"
-                },
-                {
-                    "id": "60008",
-                    "avtype": "a"
-                }
-            ]
-        }
+        "windowpos": {"x": x,"y": y,"width": width,"height": height,"top": top},
+        "members": members
     }
-
-    params['members']['num'] = len(dev_list)
-    params['members']['dev-list'] = dev_list
     
     logger.info("发起融合通信mini客户端: {}", params)