From 2bccb9ec7bdefe23292a22bc153463cfa1479a49 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 21 六月 2024 16:25:42 +0800
Subject: [PATCH] 2024-06-21

---
 src/api/index.js |  176 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 112 insertions(+), 64 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index d602b0a..50f5937 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -15,7 +15,8 @@
 window.GLOB.$error = false
 
 let service = window.GLOB.service ? '-' + window.GLOB.service.replace('/', '') : ''
-let db = `mkdb${service}`
+let lang = sessionStorage.getItem('lang') !== 'zh-CN' ? sessionStorage.getItem('lang') : ''
+let db = `mkdb${service + lang}`
 
 if (window.indexedDB) {
   CacheUtils.openIndexDB(db)
@@ -57,6 +58,9 @@
 
     return Promise.reject(response.data)
   } else {
+    if (response.config.requestId) {
+      response.data.$requestId = response.config.requestId
+    }
     return Promise.resolve(response.data)
   }
 }, (error) => {
@@ -94,13 +98,16 @@
   }
 
   /**
-   * @description 寰俊涓氬姟璇锋眰
+   * @description 寰俊涓氬姟璇锋眰 鍘熸帴鍙� 'wxpay/getaccesstoken'
    */
   wxAccessToken (domain = '') {
-    let _url = window.GLOB.baseurl + 'wxpay/getaccesstoken'
+    let _url = domain || window.GLOB.baseurl 
 
-    if (domain) {
-      _url = domain + 'wxpay/getaccesstoken'
+    if (/qingqiumarket.cn|cloud.mk9h.cn/.test(_url)) {
+      _url = _url.replace('http://qingqiumarket.cn', 'http://qingqiumarket.cn:8080')
+      _url = _url.replace('http://cloud.mk9h.cn', 'http://cloud.mk9h.cn:8080')
+      _url = _url.replace('https://qingqiumarket.cn', 'https://qingqiumarket.cn:8443')
+      _url = _url.replace('https://cloud.mk9h.cn', 'https://cloud.mk9h.cn:8443')
     }
 
     return new Promise(resolve => {
@@ -109,13 +116,15 @@
       } else {
         window.GLOB.accessToken = {domain}
         axios({
-          url: _url,
-          method: 'get'
+          url: _url + 'wechat/jsapi/getaccesstoken',
+          method: 'post',
+          headers: { 'Content-Type': 'application/json' },
+          data: JSON.stringify({appId: 'wx4d8a34c8d4494872'})
         }).then(res => {
-          if (res.oa_access_token || res.mini_access_token) {
+          if (res.oa_access_token) {
             window.GLOB.accessToken.accessTime = parseInt(new Date().getTime() / 1000)
             window.GLOB.accessToken.oa_access_token = res.oa_access_token
-            window.GLOB.accessToken.mini_access_token = res.mini_access_token
+            // window.GLOB.accessToken.mini_access_token = res.mini_access_token
           }
           resolve(res)
         })
@@ -125,6 +134,7 @@
 
   /**
    * @description 寰俊涓氬姟璇锋眰
+   * 39涓� qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn
    */
   wxNginxRequest (url, method, param) {
     let _url = url
@@ -134,16 +144,11 @@
       if (process.env.NODE_ENV === 'production') {
         _url = document.location.origin + '/' + url
       }
-      if (/^http:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) {
-        _url = window.GLOB.location + ':8080/' + url
-        if (process.env.NODE_ENV === 'production') {
-          _url = document.location.origin + ':8080/' + url
-        }
-      } else if (/^https:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) {
-        _url = window.GLOB.location + ':8443/' + url
-        if (process.env.NODE_ENV === 'production') {
-          _url = document.location.origin + ':8443/' + url
-        }
+      if (/qingqiumarket.cn|cloud.mk9h.cn/.test(_url)) {
+        _url = _url.replace('http://qingqiumarket.cn', 'http://qingqiumarket.cn:8080')
+        _url = _url.replace('http://cloud.mk9h.cn', 'http://cloud.mk9h.cn:8080')
+        _url = _url.replace('https://qingqiumarket.cn', 'https://qingqiumarket.cn:8443')
+        _url = _url.replace('https://cloud.mk9h.cn', 'https://cloud.mk9h.cn:8443')
       }
     }
     
@@ -398,7 +403,7 @@
 
         this.getSystemConfig(param).then(res => {
           if (!res.status) {
-            reject()
+            reject(res.message)
             return
           }
 
@@ -438,7 +443,7 @@
 
           CacheUtils.updateIndexDBversion({version: res.app_version || '1.00', createDate: curTime})
 
-          resolve()
+          resolve(list)
         })
       }, () => {
         reject()
@@ -645,7 +650,7 @@
     param.sign = md5(values)
     param.t = new Date().getTime();
 
-    ['arr_field', 'LText_field', 'custom_script', 'LText1', 'LText', 'LText2', 'DateCount'].forEach(key => {
+    ['arr_field', 'custom_script', 'LText', 'DateCount'].forEach(key => {
       if (param[key]) {
         let val = param[key]
         delete param[key]
@@ -659,7 +664,7 @@
   /**
    * @description 鑾峰彇绯荤粺閰嶇疆锛屼紭鍏堜粠缂撳瓨涓彇鍊硷紝澧炲姞appkey
    * @param {Object}  param   璇锋眰鍙傛暟
-   * @param {Boolean} SSO     鏄惁涓哄崟鐐圭櫥褰曞湴鍧�
+   * @param {Boolean} cache   鏄惁浣跨敤缂撳瓨
    */
   getSystemCacheConfig (param, cache = true) {
     param.userid = param.userid || sessionStorage.getItem('UserID') || ''
@@ -755,7 +760,7 @@
       param = this.encryptParam(param)
 
       axios({
-        url: token.interface,
+        url: `${token.interface}${param.func ? '/' + param.func : ''}`,
         method: 'post',
         data: JSON.stringify(param)
       }).then(res => {
@@ -804,7 +809,7 @@
           param = this.encryptParam(param)
 
           axios({
-            url: token.interface,
+            url: `${token.interface}${param.func ? '/' + param.func : ''}`,
             method: 'post',
             data: JSON.stringify(param)
           }).then(res => {
@@ -834,7 +839,7 @@
    * @description 鑾峰彇涓氬姟閫氱敤鎺ュ彛
    * 璁块棶 'https://sso.mk9h.cn/webapi/dostars'鎴栦簯绔椂锛屼紶鍏serid銆丩oginUID
    */
-  genericInterface (param) {
+  genericInterface (param, script = '', position, requestId = '') {
     param.userid = param.userid || sessionStorage.getItem('UserID') || ''
     param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
@@ -852,9 +857,6 @@
       param.fullname = sessionStorage.getItem('Full_Name') || ''
     }
 
-    let login = false
-    let rduri = null
-
     if (param.rduri && /\s|\n/.test(param.rduri)) {
       param.rduri = param.rduri.replace(/\s|\n/g, '')
       if (!param.rduri) {
@@ -862,31 +864,50 @@
       }
     }
 
-    if (param.$login && !window.GLOB.transfer) {
-      login = true
-      rduri = param.rduri || ''
-    }
-    delete param.$login
+    if (script) {
+      try {
+        // eslint-disable-next-line
+        let func = new Function('axios', 'Api', 'param', 'position', 'systemType', 'notification', script)
+        let promise = func(axios, this, param, position, window.GLOB.systemType, notification)
 
-    let url = '/webapi/dostars'
+        if (promise instanceof Promise) {
+          return promise
+        }
+      } catch (e) {
+        console.warn(e)
+      }
 
-    if (param.rduri && !window.GLOB.transfer && /\/dostars/.test(param.rduri) && param.func !== 'webapi_ChangeUser') {
-      url = param.rduri
+      return Promise.resolve({
+        status: false,
+        message: '鑷畾涔夎剼鏈墽琛岄敊璇�',
+        ErrCode: 'E'
+      })
+    } else if (param.$login) {
+      let rduri = param.rduri || ''
+
+      delete param.$login
       delete param.rduri
-    }
 
-    param = this.encryptParam(param)
+      param = this.encryptParam(param)
 
-    if (login) {
       let time = +sessionStorage.getItem(rduri)
       let c_time = Math.round(new Date().getTime() / 1000)
 
       if (time && c_time - time <= 1800) {
         sessionStorage.setItem(rduri, c_time)
-        return axios({
-          url: `${url}${param.func ? '/' + param.func : ''}`,
-          method: 'post',
-          data: JSON.stringify(param)
+        return new Promise((resolve, reject) => {
+          axios({
+            url: `${rduri}${param.func ? '/' + param.func : ''}`,
+            method: 'post',
+            data: JSON.stringify(param)
+          }).then(result => {
+            if (result && result.ErrCode === 'LoginError') {
+              sessionStorage.removeItem(rduri)
+            }
+            resolve(result)
+          }, () => {
+            reject()
+          })
         })
       }
 
@@ -895,11 +916,13 @@
           if (res.status) {
             sessionStorage.setItem(rduri, c_time)
             axios({
-              url: `${url}${param.func ? '/' + param.func : ''}`,
+              url: `${rduri}${param.func ? '/' + param.func : ''}`,
               method: 'post',
               data: JSON.stringify(param)
             }).then(result => {
               resolve(result)
+            }, () => {
+              reject()
             })
           } else {
             resolve(res)
@@ -918,10 +941,19 @@
         })
       })
     } else {
+      let url = '/webapi/dostars'
+      if (param.rduri && !window.GLOB.transfer && /\/dostars/.test(param.rduri) && param.func !== 'webapi_ChangeUser') {
+        url = param.rduri
+        delete param.rduri
+      }
+
+      param = this.encryptParam(param)
+
       return axios({
         url: `${url}${param.func ? '/' + param.func : ''}`,
         method: 'post',
-        data: JSON.stringify(param)
+        data: JSON.stringify(param),
+        requestId
       })
     }
   }
@@ -998,16 +1030,11 @@
     if (process.env.NODE_ENV === 'production') {
       _url = document.location.origin + '/file/oss/upload'
     }
-    if (/^http:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) {
-      _url = window.GLOB.location + ':8080/file/oss/upload'
-      if (process.env.NODE_ENV === 'production') {
-        _url = document.location.origin + ':8080/file/oss/upload'
-      }
-    } else if (/^https:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) {
-      _url = window.GLOB.location + ':8443/file/oss/upload'
-      if (process.env.NODE_ENV === 'production') {
-        _url = document.location.origin + ':8443/file/oss/upload'
-      }
+    if (/qingqiumarket.cn|cloud.mk9h.cn/.test(_url)) {
+      _url = _url.replace('http://qingqiumarket.cn', 'http://qingqiumarket.cn:8080')
+      _url = _url.replace('http://cloud.mk9h.cn', 'http://cloud.mk9h.cn:8080')
+      _url = _url.replace('https://qingqiumarket.cn', 'https://qingqiumarket.cn:8443')
+      _url = _url.replace('https://cloud.mk9h.cn', 'https://cloud.mk9h.cn:8443')
     }
     
     return axios({
@@ -1031,6 +1058,21 @@
     })
   }
 
+  /**
+   * @description 寰俊鏀粯閫�娆�
+   */
+  setRefund (orderId) {
+    let _param = new FormData()
+    _param.append('out_biz_no', orderId)
+
+    return axios({
+      url: '/wxpay/wxRefund',
+      headers: { 'Content-Type': 'multipart/form-data' },
+      method: 'post',
+      data: _param
+    })
+  }
+
   postekPrint (data) {
     return axios({
       url: 'http://127.0.0.1:888/postek/print',
@@ -1042,10 +1084,10 @@
   /**
    * @description sql妫�楠�
    */
-  sDebug (sql, rduri = null) {
+  sDebug (sql) {
     let param = {
       func: 's_debug_sql',
-      exec_type: 'y',
+      exec_type: window.GLOB.execType || 'y',
       timestamp: moment().format('YYYY-MM-DD HH:mm:ss'),
       userid: sessionStorage.getItem('UserID') || '',
       lang: sessionStorage.getItem('lang') || '',
@@ -1053,6 +1095,16 @@
       LoginUID: sessionStorage.getItem('LoginUID') || '',
       appkey: window.GLOB.appkey || ''
     }
+
+    sql = sql.replace(/@time_id@/ig, `'${Utils.getuuid()}'`)
+    sql = sql.replace(/@ID@/ig, `'${Utils.getuuid()}'`)
+    sql = sql.replace(/@BID@/ig, `'${Utils.getuuid()}'`)
+    sql = sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID')}'`)
+    sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid')}'`)
+    sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID')}'`)
+    sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey}'`)
+    sql = sql.replace(/@lang@/ig, `'${sessionStorage.getItem('lang')}'`)
+    // sql = sql.replace(/@datam@/ig, `''`)
 
     if (window.GLOB.externalDatabase !== null) {
       sql = sql.replace(/@db@/ig, window.GLOB.externalDatabase)
@@ -1062,16 +1114,12 @@
 
     sql = sql.replace(/\n/ig, ' ')
 
-    param.LText = Utils.formatOptions(sql)
+    param.LText = Utils.formatOptions(sql, param.exec_type)
     param.secretkey = Utils.encrypt('', param.timestamp)
 
     param = this.encryptParam(param)
 
     let url = '/webapi/dostars'
-
-    if (rduri) {
-      url = rduri
-    }
 
     let timer = setTimeout(() => {
       let _param = {
@@ -1099,7 +1147,7 @@
         clearTimeout(timer)
         if (/Shared Memory Provider|浼氳瘽澶勪簬缁堟鐘舵�亅褰撳墠鍛戒护鍙戠敓浜嗕弗閲嶉敊璇�/.test(res.message)) {
           res.message = '楠岃瘉澶辫触锛岃妫�鏌QL涓槸鍚﹀瓨鍦ㄦ寰幆銆�'
-        } else if (res.message === 'ROLLBACK TRANSACTION 璇锋眰娌℃湁瀵瑰簲鐨� BEGIN TRANSACTION銆� EXECUTE 鍚庣殑浜嬪姟璁℃暟鎸囩ず BEGIN 鍜� COMMIT 璇彞鐨勬暟鐩笉鍖归厤銆備笂涓�璁℃暟 = 1锛屽綋鍓嶈鏁� = 0銆� ROLLBACK TRANSACTION 璇锋眰娌℃湁瀵瑰簲鐨� BEGIN TRANSACTION銆�') {
+        } else if (res.message.indexOf('EXECUTE 鍚庣殑浜嬪姟璁℃暟鎸囩ず BEGIN 鍜� COMMIT 璇彞鐨勬暟鐩笉鍖归厤銆備笂涓�璁℃暟 = 1锛屽綋鍓嶈鏁� = 0') > -1) {
           res.ErrCode = '-2'
         }
         resolve(res)

--
Gitblit v1.8.0