From 1e7aa4f0ff5e13c4a99ba511bb357a4cc63aa0c1 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 02 四月 2020 15:21:46 +0800
Subject: [PATCH] 2020-04-02

---
 src/api/index.js |  113 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 72 insertions(+), 41 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index 4c4bfb3..956b4f9 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -33,7 +33,7 @@
   }
 }
 
-let GlobMap = new Map()
+window.GLOB.CacheMap = new Map()
 
 axios.interceptors.response.use((response) => {
   if (response.data.ErrCode === 'LoginError') {
@@ -61,33 +61,17 @@
       // axios.defaults.baseURL = 'http://127.0.0.1:8888'
     }
   }
-
-  /**
-   * @description 绯荤粺鎺堟潈
-   */
-  systemauth (appId, timestamp) {
-    return axios({
-      url: '/webapi/dostar',
-      data: {
-        rduri: 'http://minkesoft.com/mksepc/webapi/dostar',
-        func: 'sEmpowerCloud_Get_LinkUrl',
-        userid: '',
-        AppID: appId,
-        TimeStamp: timestamp
-      }
-    })
-  }
   
   /**
-   * @description 鐧诲綍绯荤粺
+   * @description 浣跨敤dostar鎺ュ彛锛岃烦杩囬獙璇�
+   * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁�
    */
-  loginsystem (username, password) {
+  dostarInterface (param) {
+    param.userid = ''
+
     return axios({
-      url: '/zh-CN/Home/LoginAndRedirect',
-      data: {
-        Username: username,
-        Password: password
-      }
+      url: '/webapi/dostar',
+      data: param
     })
   }
 
@@ -99,14 +83,16 @@
       // func: 'webapi_login',
       UserName: username,
       Password: password,
+      systemType: options.systemType,
       Type: 'X'
     }
+
     param.Password = Utils.formatOptions(param.Password)
     param.appkey = window.GLOB.appkey || ''
 
     if (isCloud && options.cloudLoginApi) {
       param.rduri = options.cloudLoginApi
-    } else if (window.GLOB.mainSystemApi) {
+    } else if (!isCloud && window.GLOB.mainSystemApi) {
       param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon')
     }
 
@@ -142,8 +128,15 @@
     param.nonc = Utils.getuuid()
     
     let keys = Object.keys(param).sort()
-    keys = keys.filter(key => key !== 'rduri')
-    let values = keys.map(key => key + param[key]).join('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 
@@ -175,8 +168,15 @@
     param.nonc = Utils.getuuid()
     
     let keys = Object.keys(param).sort()
-    keys = keys.filter(key => key !== 'rduri')
-    let values = keys.map(key => key + param[key]).join('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 
@@ -199,8 +199,15 @@
     param.nonc = Utils.getuuid()
     
     let keys = Object.keys(param).sort()
-    keys = keys.filter(key => key !== 'rduri')
-    let values = keys.map(key => key + param[key]).join('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 
@@ -239,14 +246,21 @@
     _param = JSON.stringify(_param)
     _param  = md5(_param)
 
-    if (GlobMap.has(_param)) {
-      return Promise.resolve(GlobMap.get(_param))
+    if (window.GLOB.CacheMap.has(_param)) {
+      return Promise.resolve(window.GLOB.CacheMap.get(_param))
     } else {
       param.nonc = Utils.getuuid()
       
       let keys = Object.keys(param).sort()
-      keys = keys.filter(key => key !== 'rduri')
-      let values = keys.map(key => key + param[key]).join('')
+      let values = ''
+      keys.forEach(key => {
+        if (key === 'rduri' || key === 't') return
+        if (typeof(param[key]) === 'object') {
+          values += key + JSON.stringify(param[key])
+        } else {
+          values += key + param[key]
+        }
+      })
       param.sign  = md5(values)
       param.t = new Date().getTime()
 
@@ -255,8 +269,9 @@
           url: '/webapi/dostars',
           data: param
         }).then(res => {
-
-          GlobMap.set(_param, res)
+          if (res.status) {
+            window.GLOB.CacheMap.set(_param, res)
+          }
           resolve(res)
         })
       })
@@ -271,6 +286,7 @@
     param.lang = localStorage.getItem('lang') || ''
     param.SessionUid = sessionStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
+    param.appkey = window.GLOB.appkey || ''
 
     if (sessionStorage.getItem('isEditState') === 'true' && param.rduri === options.cloudServiceApi) { // HS涓嬭彍鍗�
       param.userid = sessionStorage.getItem('CloudUserID')
@@ -281,8 +297,15 @@
     param.nonc = Utils.getuuid()
     
     let keys = Object.keys(param).sort()
-    keys = keys.filter(key => key !== 'rduri' && key !== 't')
-    let values = keys.map(key => key + param[key]).join('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 
@@ -300,6 +323,7 @@
     param.lang = localStorage.getItem('lang') || ''
     param.SessionUid = sessionStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
+    param.appkey = window.GLOB.appkey || ''
     
     return new Promise(resolve => {
       axios({
@@ -374,8 +398,15 @@
     param.nonc = Utils.getuuid()
     
     let keys = Object.keys(param).sort()
-    keys = keys.filter(key => key !== 'rduri')
-    let values = keys.map(key => key + param[key]).join('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 

--
Gitblit v1.8.0