From 5d8eb51419d2c1b7dc88dd0cbde5c8341cceda2f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 24 二月 2023 18:01:14 +0800
Subject: [PATCH] 2023-02-24

---
 src/menu/datasource/verifycard/utils.jsx |   44 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/src/menu/datasource/verifycard/utils.jsx b/src/menu/datasource/verifycard/utils.jsx
index 8b3fd5a..93f129b 100644
--- a/src/menu/datasource/verifycard/utils.jsx
+++ b/src/menu/datasource/verifycard/utils.jsx
@@ -14,13 +14,11 @@
     let _customScript = ''
     let arr_field = columns.map(item => item.field).join(',')
 
-    if (scripts.length > 0) {
-      scripts.forEach(item => {
-        _customScript += `
-          ${item.sql}
-        `
-      })
-    }
+    scripts.forEach(item => {
+      _customScript += `
+        ${item.sql}
+      `
+    })
 
     if (!arr_field) {
       arr_field = '*'
@@ -44,8 +42,8 @@
     //   error = '绯荤粺鍑芥暟' + _customScript.match(/\$ex@.{1,50}@ex\$/g)[0].replace(/\$ex@|@ex\$/g, '') + '鏈畾涔�'
     // }
 
-    _dataresource = _dataresource.replace(/@(BID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid)@/ig, `'${timestamp}'`)
-    _customScript = _customScript.replace(/@(BID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid)@/ig, `'${timestamp}'`)
+    _dataresource = _dataresource.replace(/@(BID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid|typename)@/ig, `'${timestamp}'`)
+    _customScript = _customScript.replace(/@(BID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid|typename)@/ig, `'${timestamp}'`)
 
     _dataresource = _dataresource.replace(/@\$|\$@/ig, '')
     _customScript = _customScript.replace(/@\$|\$@/ig, '')
@@ -218,12 +216,38 @@
     if (/@[0-9a-zA-Z_]+@/ig.test(sql)) {
       let arr = sql.match(/@[0-9a-zA-Z_]+@/ig)
 
+      let getTrueSql = (sl) => {
+        if (!/\/\*/.test(sl)) return sl
+        let index = 0
+
+        sl = sl.replace(/\s/ig, ' ')
+        sl = sl.replace(/\*\//ig, 'm_k@')
+        sl = sl.replace(/\/\*/ig, () => {
+          index++
+          return '@m_k' + index
+        })
+
+        for (let i = index; i > 0; i--) {
+          let reg = new RegExp(`@m_k${i}.+m_k@`, 'ig')
+          sl = sl.replace(reg, '')
+        }
+
+        return sl
+      }
+
+      let _scripts = []
+      _dataresource = _dataresource.replace('/*system_query*/', '')
+      _dataresource = getTrueSql(_dataresource)
+      scripts.forEach(item => {
+        _scripts.push({...item, sql: getTrueSql(item.sql)})
+      })
+
       arr.forEach(item => {
         let reg = new RegExp(item, 'ig')
         if (reg.test(_dataresource)) {
           errors.push(`鏁版嵁婧愪腑瀛樺湪鏈浛鎹㈠��${item}`)
         }
-        scripts && scripts.forEach(script => {
+        _scripts.forEach(script => {
           if (reg.test(script.sql)) {
             errors.push(`鑷畾涔夎剼鏈�(${script.$index || ''})瀛樺湪鏈浛鎹㈠��${item}`)
           }

--
Gitblit v1.8.0