| | |
| | | * @return {Object} setting 页面设置 |
| | | * @return {Array} columns 显示字段 |
| | | */ |
| | | static getDebugSql (setting, scripts, columns, searches = [], defSearch, timestamp) { |
| | | static getDebugSql (setting, scripts, columns, searches = [], defSearch, type, timestamp) { |
| | | let sql = '' |
| | | let error = '' |
| | | let _dataresource = '' |
| | | 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 = '*' |
| | |
| | | // error = '系统函数' + _customScript.match(/\$ex@.{1,50}@ex\$/g)[0].replace(/\$ex@|@ex\$/g, '') + '未定义' |
| | | // } |
| | | |
| | | _dataresource = _dataresource.replace(/@(BID|ID|LoginUID|SessionUid|UserID|Appkey|time_id|datam|upid)@/ig, `'${timestamp}'`) |
| | | _customScript = _customScript.replace(/@(BID|ID|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, '') |
| | |
| | | |
| | | _dataresource = _dataresource.replace(/\$sum@/ig, '/*$sum@') |
| | | _dataresource = _dataresource.replace(/@sum\$/ig, '@sum$*/') |
| | | |
| | | if (type === 'calendar') { |
| | | _dataresource = _dataresource.replace(/@mk_year@/ig, '') |
| | | _customScript = _customScript.replace(/@mk_year@/ig, '') |
| | | } |
| | | |
| | | if (_customScript) { |
| | | _customScript = `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 ='' |
| | |
| | | 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}`) |
| | | } |