Groovy脚本-通用SQL开关
备注:使用Groovy语言进行编写,看不懂的同学请先了解Groovy脚本。
Groovy学习地址:https://www.cnblogs.com/tiechui2015/p/10828457.html。
本段程序实现的功能如下:
一、开关的维度是商户、机构、配置代码维度。设置有效标识控制是否生效。
二、采用All代表全商户特殊值,在商户号中配置All则表示该开关在某机构下全商户生效;
采用H代表H5商户特殊值,在商户号中配置H则表示该开关在某机构下H5商户生效;
采用S代表接口接入商户特殊值,在商户号中配置S则表示该开关在某机构下接口接入商户生效。
三、商户号值为All,机构值为03,表示在整个系统中该开关都生效。
商户号值为S,机构值为03,表示在整个标准对接的全机构中该开关都生效。
商户号值为H,机构值为03,表示在整个H5商户的全机构中该开关都生效。
四、支持多商户以逗号分隔、多机构以逗号分隔的配置方式及多商户多机构均以逗号分隔的配置形式。
五、考虑通用性问题,支持五级机构向上递增配置。
检索五级机构,五级机构配置则直接。
五级机构未配置或配置已失效,则检索四级机构配置。
四级机构未配置或配置已失效,则检索三级机构配置。
三级机构未配置或配置已失效,则检索二级机构配置。
二级机构未配置或配置已失效,则检索一级机构配置。
一级机构未配置或配置已失效,则开关未配置。
/**
*
* 开关配置脚本
*
* 2019-11-07
*
* in
* clientNo : 商户号
* companyCode : 机构代码
* configCode : 配置代码
*
* out
* isRightSwitch(0\1)
* 0:关
* 1:开
**/
def isRightSwitch = false; def queryConfigInfo = []; queryConfigInfo = $$.query('queryGeneralSwitch',[clientName:"All",companyCode:"03",configCode:configCode]); if(!queryConfigInfo){
if(clientNo.contains("H")){
def subCompany = ""; int j = 0; for (int i = companyCode.length(); j <= (i * j);j++) {
subCompany = companyCode.substring(0,i); queryConfigInfo = $$.query('queryGeneralSwitch',[clientName:"H",companyCode:subCompany,configCode:configCode]); if(queryConfigInfo){ // isRightSwitch = queryConfigInfo.configValue;
//
// return isRightSwitch;
isRightSwitch = true; return isRightSwitch;
} i=i-2;
}
}else if(clientNo.contains("S")){ def subCompany = ""; int j = 0; for (int i = companyCode.length();j <= (i * j);j++) {
subCompany = companyCode.substring(0,i); queryConfigInfo = $$.query('queryGeneralSwitch',[clientName:"S",companyCode:subCompany,configCode:configCode]); if(queryConfigInfo){ // isRightSwitch = queryConfigInfo.configValue; isRightSwitch = true; return isRightSwitch;
} i=i-2;
}
} if(!queryConfigInfo){ def subCompany = ""; int j = 0; for (int i = companyCode.length(); j <= (i * j);j++) { subCompany = companyCode.substring(0,i); queryConfigInfo = $$.query('queryGeneralSwitch',[clientName:clientNo,companyCode:subCompany,configCode:configCode]); if(queryConfigInfo){ // isRightSwitch = queryConfigInfo.configValue;
//
// return isRightSwitch; isRightSwitch = true; return isRightSwitch;
} i=i-2;
}
}
}else{ // isRightSwitch = queryConfigInfo.configValue;
//
// return isRightSwitch; isRightSwitch = true; return isRightSwitch;
}
Groovy脚本-通用SQL开关的更多相关文章
- Groovy脚本基础全攻略
1 背景 Groovy脚本基于Java且拓展了Java,所以从某种程度来说掌握Java是学习Groovy的前提,故本文适用于不熟悉Groovy却想快速得到Groovy核心基础干货的Java开发者(注意 ...
- [SoapUI] Post请求Body里面限制特殊字符(&、%),Groovy脚本里特殊字符需要添加“\”转义($)。
SoapUI的Post请求,在body里面不能包含(&.%),如果含有这些特殊字符,请求会报错:在添加的Groovy脚本里有些特殊字符需要使用“\”转义($),不然也会报错.
- jenkins2 groovy脚本参考
使用plugin生成groovy脚本,或者参考已有的groovy脚本. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.co ...
- ODI 12c中使用Groovy脚本创建工程
本文主要介绍在ODI中使用groovy创建工程,并添加一个表转换的映射.要创建groovy脚本,可以从ODI Studio的菜单:工具->Groovy->新脚本 打开一个编辑窗口.在执行下 ...
- JAVA嵌入运行Groovy脚本
摘自: http://shift-alt-ctrl.iteye.com/blog/1938238 . 最近设计一个数据统计系统,系统中上百种数据统计维度,而且这些数据统计的指标可能随时会调整.如果基于 ...
- 利用脚本修改SQL SERVER排序规则
利用脚本修改SQL SERVER排序规则 编写人:CC阿爸 2014-3-1 l 今年的一项重要工作是对公司所用系统进行繁简的转换,程序转成简体基本很容易解决,但数据库转换成简体,就没那么容易了.经 ...
- soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)
soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...
- 即时编译和打包您的 Groovy 脚本(转)
在本文中将会涉及到: 使用 CliBuilder 来实现对命令行选项的支持,脚本执行时所需要的参数将通过命令行选项的方式传递. 使用 GroovyClassLoader 加载 Groovy class ...
- MSSQL-Scripter,一个新的生成T-SQL脚本的SQL Server命令行工具
这里向大家介绍一个新的生成T-SQL脚本的SQL Server命令行工具:mssql-scripter.它支持在SQL Server.Azure SQL DB以及Azure SQL DW中为数据库生成 ...
随机推荐
- 数据库 oracle 函数
static OracleConnection mQracleConnecting = null; public static OracleConnection QracleConnecting { ...
- ISCC2018_leftleftrightright-Writeup
leftleftrightright(150) 这个题学到了不少东西,值得认真写一下 下载好文件后发现是upx的壳,upx -d直接脱掉后运行,发现是经典的check输入的题目(作为一个linuxer ...
- 安装MySQL5.7.22遇到的坑
安装MySQL: 第一步:将压缩包解压后,手动新建名为my.ini的文本文档,代码内容如下: #代码开始[mysql]default-character-set=utf8[mysqld]#skip-g ...
- pikaqiu练习平台(CSRF(跨站请求伪造) )
CSRF(跨站请求伪造) CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接 ...
- js获取当前时间:yyyy-MM-dd HH:MM:SS
var nowDate = new Date();var year = nowDate.getFullYear(); < ? ; ? " + nowDate.getDate() : n ...
- 题解【SP2713】GSS4 - Can you answer these queries IV
题目描述 You are given a sequence \(A\) of \(N(N \leq 100,000)\) positive integers. There sum will be le ...
- 源码安装python 报错,openssl: error while loading shared libraries: libssl.so.1.1
在执行openssl version出现如下错误: openssl: error while loading shared libraries: libssl.so.1.1: cannot open ...
- Commercial Lighting: LED Ceiling Light, LED Ceiling Light
Unlike ceiling lamps, floor lamps, chandeliers, lamps that can sometimes rely on "faces", ...
- js Array 的所有方法
下面的这些方法会改变调用它们的对象自身的值: Array.prototype.copyWithin() 在数组内部,将一段元素序列拷贝到另一段元素序列上,覆盖原有的值. Array.prototyp ...
- Python结束当前运行的代码
import sys print(0) print(1) print(2) # 到此结束运行 sys.exit() # 已结束,以下不会执行 print(4) print(5)