备注:使用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开关的更多相关文章

  1. Groovy脚本基础全攻略

    1 背景 Groovy脚本基于Java且拓展了Java,所以从某种程度来说掌握Java是学习Groovy的前提,故本文适用于不熟悉Groovy却想快速得到Groovy核心基础干货的Java开发者(注意 ...

  2. [SoapUI] Post请求Body里面限制特殊字符(&、%),Groovy脚本里特殊字符需要添加“\”转义($)。

    SoapUI的Post请求,在body里面不能包含(&.%),如果含有这些特殊字符,请求会报错:在添加的Groovy脚本里有些特殊字符需要使用“\”转义($),不然也会报错.

  3. jenkins2 groovy脚本参考

    使用plugin生成groovy脚本,或者参考已有的groovy脚本. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.co ...

  4. ODI 12c中使用Groovy脚本创建工程

    本文主要介绍在ODI中使用groovy创建工程,并添加一个表转换的映射.要创建groovy脚本,可以从ODI Studio的菜单:工具->Groovy->新脚本 打开一个编辑窗口.在执行下 ...

  5. JAVA嵌入运行Groovy脚本

    摘自: http://shift-alt-ctrl.iteye.com/blog/1938238 . 最近设计一个数据统计系统,系统中上百种数据统计维度,而且这些数据统计的指标可能随时会调整.如果基于 ...

  6. 利用脚本修改SQL SERVER排序规则

    利用脚本修改SQL SERVER排序规则 编写人:CC阿爸 2014-3-1 l  今年的一项重要工作是对公司所用系统进行繁简的转换,程序转成简体基本很容易解决,但数据库转换成简体,就没那么容易了.经 ...

  7. soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  8. 即时编译和打包您的 Groovy 脚本(转)

    在本文中将会涉及到: 使用 CliBuilder 来实现对命令行选项的支持,脚本执行时所需要的参数将通过命令行选项的方式传递. 使用 GroovyClassLoader 加载 Groovy class ...

  9. MSSQL-Scripter,一个新的生成T-SQL脚本的SQL Server命令行工具

    这里向大家介绍一个新的生成T-SQL脚本的SQL Server命令行工具:mssql-scripter.它支持在SQL Server.Azure SQL DB以及Azure SQL DW中为数据库生成 ...

随机推荐

  1. 傻傻分不清之 Cookie、Session、Token、JWT

    傻傻分不清之 Cookie.Session.Token.JWT 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打 ...

  2. Hadoop启动HDFS时DataNode未启动

    在用$HADOOP_HOME/sbin/start-dfs.sh启动HDFS时发现只有NameNode和SecondaryNameNode启动,没有DataNode. 查看logs下的DataNode ...

  3. 是未来还是“有毒”?紧抓球鞋风口的毒APP机遇与危机并存

    编辑 | 于斌 出品 | 于见(mpyujian) 新一代的"潮流"之风正在席卷新生代消费市场,从去年开始,国内二手球鞋交易领域突然开始火爆,大有成为新一轮"风口&quo ...

  4. java-日期取特定值

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author G ...

  5. sql 单表操作

    前戏 --创建表 create table xxx( id int unsigned not null auto_increment primary key, name varchar(20) not ...

  6. windows10中docker nginx开启 但页面访问不了

    Windows下对docker端口进行映射,但是当你在主机的浏览器中,打开localhost:port无法访问对应的服务. docker是运行在Linux上的,在Windows中运行docker,实际 ...

  7. OpenCV的视频输入和相似度测量

    #include <iostream> #include <string> #include <iomanip> // 控制浮动类型的打印精度 #include & ...

  8. STM32F103之ADC学习记录

    1.问题 1)10位ADC的误差是多少? 首先要分清分辨率与精度的区别. 10cm的尺子,有100个等分刻度,则该尺子的分辨率为1mm. 但不能说这把尺子的精度是1mm. 在冬天,尺子会热胀冷缩,依然 ...

  9. 钉钉内网穿透工具在windows的使用。

    钉钉内网穿透工具在windows环境下使用 1.WIN+R,然后cmd,调出dos控制台 2.进入内网穿透程序ding.exe所在目录 3.执行 ./ding.exe -config=ding.cfg ...

  10. Python - 安装 - 在 Alpine Linux 下安装 Python2

    概述 在 Alpine Liunx 下安装 python2 感觉又是水了一发... 感觉还是有点丢人, 就像在帮小学生写作业, 写完了后还想找人夸我... 最近看 docker 和 jenkins, ...