king
2023-08-27 5e1d4d5155c57c43739d61914e2d29a64f9bb683
src/menu/datasource/verifycard/utils.jsx
@@ -11,13 +11,20 @@
    let sql = ''
    let error = ''
    let _dataresource = ''
    let _customScript = ''
    let arr_field = columns.map(item => item.field).join(',')
    scripts.forEach(item => {
      _customScript += `
        ${item.sql}
      `
    let _customScript = ''
    let _tailScript = ''
    scripts && scripts.forEach(script => {
      if (script.status === 'false') return
      if (script.position !== 'back') {
        _customScript += `
        ${script.sql}
        `
      } else {
        _tailScript += `
        ${script.sql}
        `
      }
    })
    if (!arr_field) {
@@ -26,6 +33,10 @@
    if (setting.interType === 'system' && setting.execute !== 'false') {
      _dataresource = setting.dataresource || ''
    }
    if (/\s/.test(_dataresource)) {
      _dataresource = '(' + _dataresource + ') tb'
    }
    
    if (window.GLOB.funcs && window.GLOB.funcs.length > 0) {
@@ -38,16 +49,17 @@
    _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}'`)
    _tailScript = _tailScript.replace(/@(BID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid|typename)@/ig, `'${timestamp}'`)
    _dataresource = _dataresource.replace(/@\$|\$@/ig, '')
    _customScript = _customScript.replace(/@\$|\$@/ig, '')
    _tailScript = _tailScript.replace(/@\$|\$@/ig, '')
    _dataresource = _dataresource.replace(/@select\$|\$select@/ig, '')
    _customScript = _customScript.replace(/@select\$|\$select@/ig, '')
    // _dataresource = _dataresource.replace(/@sum\$|\$sum@/ig, '')
    _customScript = _customScript.replace(/@sum\$|\$sum@/ig, '')
    _dataresource = _dataresource.replace(/\$sum@/ig, '/*$sum@')
    _dataresource = _dataresource.replace(/@sum\$/ig, '@sum$*/')
    _dataresource = _dataresource.replace(/\$sum@/ig, '/*')
    _dataresource = _dataresource.replace(/@sum\$/ig, '*/')
    if (type === 'calendar') {
      _dataresource = _dataresource.replace(/@mk_year@/ig, '')
@@ -64,6 +76,7 @@
    if (window.GLOB.externalDatabase !== null) {
      _dataresource = _dataresource.replace(/@db@/ig, window.GLOB.externalDatabase)
      _customScript = _customScript.replace(/@db@/ig, window.GLOB.externalDatabase)
      _tailScript = _tailScript.replace(/@db@/ig, window.GLOB.externalDatabase)
    }
    if (window.GLOB.urlFields) {
@@ -71,12 +84,14 @@
        let reg = new RegExp('@' + field + '@', 'ig')
        _dataresource = _dataresource.replace(reg, `'0'`)
        _customScript = _customScript.replace(reg, `'0'`)
        _tailScript = _tailScript.replace(reg, `'0'`)
      })
    }
    // 正则替换
    let _regoptions = []
    let _fields = []
    let custompage = /@pageSize@|@orderBy@/i.test(_dataresource + _customScript)
    searches.forEach(item => {
      if (!item.field) return
@@ -142,6 +157,7 @@
    _regoptions.forEach(item => {
      _dataresource = _dataresource.replace(item.reg, '0')
      _customScript = _customScript.replace(item.reg, '0')
      _tailScript = _tailScript.replace(item.reg, '0')
    })
    let _search = defSearch
@@ -150,36 +166,14 @@
      _search = ''
    }
    let sumSql = ''
    if (_dataresource && /\/\*\$sum@/ig.test(_dataresource)) {
      let _sql = _dataresource.replace(/\/\*\$sum@|@sum\$\*\//ig, '')
      _sql = `/*system_query*/${_sql} ${_search}`
      if (_customScript) {
        sumSql = `/* sql sum验证 */
          ${_customScript}
          ${_sql}
          aaa:
          if @ErrorCode!=''
            insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select '${timestamp}',@ErrorCode, @retmsg,'${timestamp}'
        `
      } else {
        sumSql = `/* sql sum验证 */
          declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100) select @ErrorCode='',@retmsg =''
          ${_sql}`
      }
    }
    // 数据源处理, 存在显示列时 
    if (_dataresource) {
      if (/\s/.test(_dataresource)) {
        _dataresource = '(' + _dataresource + ') tb'
      }
      if (setting.order) {
      if (custompage) {
        _dataresource = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search}`
      } else if (setting.order) {
        _dataresource = `/*system_query*/select${setting.laypage === 'true' ?  ' top 10' : ''} ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${setting.order}) as rows from ${_dataresource} ${_search}) tmptable ${setting.laypage === 'true' ?  'where rows > 0' : ''} order by tmptable.rows`
      } else {
        _dataresource = `/*system_query*/select${setting.laypage === 'true' ?  ' top 10' : ''} ${arr_field} from ${_dataresource} ${_search}`
        _dataresource = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search}`
      }
    }
@@ -187,9 +181,19 @@
      sql = `/* sql 验证 */
        ${_customScript}
        ${_dataresource}
        ${_tailScript}
        aaa:
        if @ErrorCode!=''
          insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select '${timestamp}',@ErrorCode, @retmsg,'${timestamp}'
      `
    } else if (_tailScript) {
      sql = `/* sql 验证 */
        declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100) select @ErrorCode='',@retmsg =''
        ${_dataresource}
        ${_tailScript}
        aaa:
        if @ErrorCode!=''
          insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select '${timestamp}',@ErrorCode, @retmsg,'${timestamp}'
      `
    } else {
      sql = `/* sql 验证 */
@@ -244,14 +248,8 @@
      })
    }
    if (sumSql) {
      sumSql = sumSql.replace(/\n\s{10}/ig, '\n')
      console.info(sumSql)
      sumSql = sumSql.replace(/\n/g, ' ')
    }
    sql = sql.replace(/\n/g, ' ')
    return { error, sql, sumSql, errors: errors.join(';') }
    return { error, sql, errors: errors.join(';') }
  }
}