MSI\liwei 3 lat temu
rodzic
commit
b021f02c49

+ 95 - 0
src/api/dahua.ts

@@ -11,11 +11,46 @@ export interface DAHUALoginParams {
   pid: 2548;
 }
 
+
+export interface DAHUAKeepParams {
+ token: string;
+}
+
+export interface DAHUAInfomationParams{
+  token: string;
+}
+
 export interface LoginResponse extends BaseResponse {
   token?: string;
   userId?: string | number;
 }
 
+export interface DAHUAMeetParams extends BaseResponse {
+  token?: string;
+  name?: string , //会议名称
+  masterId?: string , //主持人用户ID
+  masterName?: string, //主持人名字
+  masterNumber?: string, //主持人号码
+  region: "", //号码对应的PAAS域ID
+  record: true, //是否录像录音true:录像录音 false:不录
+  type?: string, //会议类型“audio”: 音频会议 “video”: 音视频会议
+  mode: "group", //会议模式“p2p”:点对点“group”:群聊
+}
+
+export interface DAHUAMeetDeleteParams{
+  token: string;
+  meetId: string
+}
+
+
+export interface KeepAliveResponse extends BaseResponse {
+}
+
+export interface KeepMeetResponse extends BaseResponse {
+    id?: string 
+}
+
+
 export const DAHUALogin = (params: DAHUALoginParams) =>
   request<LoginResponse>('POST', {
     url: `${DA_HUA_URL_PREFIX}/videoService/accounts/authorize`,
@@ -25,3 +60,63 @@ export const DAHUALogin = (params: DAHUALoginParams) =>
       'X-Subject-Token': '',
     },
   });
+
+  export const DAHUAKeepAlive = (params: DAHUAKeepParams) =>
+  request<KeepAliveResponse>('PUT', {
+    url: `${DA_HUA_URL_PREFIX}/videoService/accounts/token/keepalive`,
+    data: params,
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
+  });
+
+  export const DAHUAUserInfo = (params: DAHUAKeepParams) =>
+  request<BaseResponse>('GET', {
+    url: `${DA_HUA_URL_PREFIX}/ras/user/info`,
+    params:params,
+    headers: {
+      'Content-Type':'application/json;charset=UTF-8',
+      'X-Subject-Token': params.token,
+    },
+  });
+
+  export const DAHUAInfomation = (params: DAHUAInfomationParams) =>
+  request<BaseResponse>('POST', {
+    url: `${DA_HUA_URL_PREFIX}/ras/acd/user/list`,
+    data:params,
+    headers: {
+      'Content-Type':'application/json;charset=UTF-8',
+      'X-Subject-Token': params.token,
+    },
+  });
+
+
+  export const DAHUACreateMeet = (params: DAHUAMeetParams) =>
+  request<KeepMeetResponse>('POST', {
+    url: `${DA_HUA_URL_PREFIX}/mcu/meeting`,
+    data: params,
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
+  });
+
+  export const DAHUADeleteMeet = (params: DAHUAMeetDeleteParams) =>
+  request<KeepMeetResponse>('DELETE', {
+    url: `${DA_HUA_URL_PREFIX}/mcu/meeting/`+params.meetId,
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
+  });
+
+  export const DAHUAMeetingUser = (params: DAHUAMeetDeleteParams) =>
+  request<KeepMeetResponse>('GET', {
+    url: `${DA_HUA_URL_PREFIX}/mcu/meeting/`+params.meetId,
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
+  });
+

+ 1 - 1
src/constants/constants.ts

@@ -7,7 +7,7 @@ export const DA_HUA = {
   password: 'huashe123',
   ip: '10.55.134.3',
   host: 'http',
-  port: '8314',
+  port: '6699',
 };
 
 export const DA_HUA_URL_PREFIX =

+ 22 - 1
src/layout/BaseLayout/index.tsx

@@ -11,10 +11,31 @@ export default defineComponent({
 
     const store = useIncidentStore();
     const daHuaStore = useDaHuaStore();
+    // console.log(daHuaStore.dhuser);
+
+    // const list = computed(() => [
+
+    // ]);
 
     // login da hua
     onMounted(() => {
-      daHuaStore.DAHUALogin();
+      if(!localStorage.getItem("DAHUA_token")){
+               daHuaStore.DAHUALogin();
+      }else{
+        daHuaStore.KEEPAlive();  //保活
+        daHuaStore.DAHUAUserInfo();   //获取当前用户信息
+        daHuaStore.DAHUAUserInfo().then(res=>{
+              console.log(res);
+              daHuaStore.DAHUACreateMeet(res).then(data=>{         //创建会议
+                      console.log(data.id);
+                      daHuaStore.DAHUAMeetingUser(data.id);
+                      // daHuaStore.DAHUADeleteMeet(data.id);
+              });
+       })
+        // console.log(dhUser);
+        daHuaStore.DAHUAInfomation();  //获取所有用户信息
+
+      }
     });
 
     return () => (

+ 80 - 4
src/store/useDaHuaStore.ts

@@ -1,6 +1,6 @@
 import { defineStore } from 'pinia';
 
-import { DAHUALogin, DAHUALoginParams, LoginResponse } from '@/api/dahua';
+import { DAHUALogin, DAHUALoginParams, LoginResponse,DAHUAKeepAlive,DAHUAUserInfo,DAHUAInfomation,DAHUACreateMeet,DAHUADeleteMeet,DAHUAMeetingUser } from '@/api/dahua';
 import isString from 'lodash/isString';
 import { parseStr } from '@/utils';
 import md5 from 'crypto-js/md5';
@@ -8,16 +8,23 @@ import { DA_HUA, DA_HUA_URL_PREFIX } from '@/constants/constants';
 import hex from 'crypto-js/format-hex';
 import { ElMessage } from 'element-plus';
 
-export interface DaHuaStateType {}
+export interface DaHuaStateType {
+  dhuser: object
+}
 
 export interface DaHuaActionsType {
   DAHUALogin(): void;
+  KEEPAlive(): void;
+  DAHUAUserInfo(): void;
+  DAHUAInfomation(): void;
 }
 
 export default defineStore<'daHua', DaHuaStateType, {}, DaHuaActionsType>(
   'daHua',
   {
-    state: () => ({}),
+    state: () => ({
+        dhuser:{}
+    }),
     actions: {
       async DAHUALogin() {
         try {
@@ -60,11 +67,12 @@ export default defineStore<'daHua', DaHuaStateType, {}, DaHuaActionsType>(
           const next = isString(data)
             ? parseStr<LoginResponse>(data)
             : data ?? {};
-          localStorage.setItem('DAHUA_token', JSON.stringify(next.token || ''));
+          localStorage.setItem('DAHUA_token', next.token);
           localStorage.setItem(
             'DAHUA_userId',
             JSON.stringify(next.userId || ''),
           );
+          this.KEEPAlive();
         } catch (err) {
           console.log(err);
           ElMessage.error({
@@ -72,6 +80,74 @@ export default defineStore<'daHua', DaHuaStateType, {}, DaHuaActionsType>(
           });
         }
       },
+      async KEEPAlive(){
+        const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
+        // const dahuaToken = '5269850340392960_c63314d9429094389d84166a6d888338647bf98afd0c10d6f23bf696a84d439cd50d2efd7260977a26023391617a50343cf5125fc523acc8a1bb1b12191bf188';
+        console.log(dahuaToken);
+        const res = await DAHUAKeepAlive({
+            token:dahuaToken
+        });
+        const that = this;
+        setTimeout(function() {
+          that.KEEPAlive();
+      }, 20000);
+      },
+      async DAHUAUserInfo(){
+        const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
+        const res = await DAHUAUserInfo({
+          token:dahuaToken
+        });   
+        return res
+      },
+      async DAHUAInfomation(){
+        const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
+        const res = await DAHUAInfomation({
+            page: 1,
+            pageSize: 1000,
+            condition: {},
+            keyCondition: {},
+            token:dahuaToken
+          });   
+       console.log(res);
+      },
+      async DAHUACreateMeet(user){
+        const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
+        // console.log(user.userName);
+        const res = await DAHUACreateMeet({
+          masterName : user.userName,
+          masterId : user.userCode,
+          masterNumber : user.userPhone,
+          region : user.paasId,
+          mode : 'group',
+          name : '11111',
+          record : true,
+          type : 'video',
+          token : dahuaToken
+          });   
+          return res
+      },
+
+      async DAHUAMeetingUser(id){
+        console.log(id);
+        const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
+        // console.log(user.userName);
+        const res = await DAHUAMeetingUser({
+              token: dahuaToken,
+              meetId: id
+          });   
+       console.log(res);
+      },
+
+      async DAHUADeleteMeet(id){
+        console.log(id);
+        const dahuaToken = localStorage.getItem('DAHUA_token').replace('"','');
+        // console.log(user.userName);
+        const res = await DAHUADeleteMeet({
+              token: dahuaToken,
+              meetId: id
+          });   
+       console.log(res);
+      },
     },
   },
 );

+ 2 - 0
src/utils/request.ts

@@ -62,6 +62,8 @@ axios.interceptors.response.use(
       ElMessage.error({ message: '系统异常, 请稍后重试!' });
       throw Error(res.statusText);
     }
+
+    return res.data;
   },
   (error) => {
     // ElMessage.error({ message: '系统异常, 请稍后重试!' });