备注:使用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. [NOI2014] 魔法森林 - Link Cut Tree

    [NOI2014] 魔法森林 Description 给定一张图,每条边 \(i\) 的权为 \((a_i,b_i)\), 求一条 \(1 \sim n\) 路径,最小化 \(\max_{i\in P ...

  2. linux命令 EOF

    在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell. EOF只是一个分界符,当然也可以用abcde替 ...

  3. 月薪20k的web前端开发程序员,他们都会的这6招

    web前端工程师是近几年的新兴职业,也是目前火爆而且高薪的职业.不同的公司也有不同的叫法,比如:网页界面开发,网站设计等,要学好web前端开发,需要掌握什么方法与技巧? 一.div和table 这个是 ...

  4. 通过django搭建一个简易的web页面(实现数据的查询、添加、修改、删除)

    一.创建django项目 通过命令创建: django-admin startproject 项目名称 创建app应用 python3 manage.py startapp 应用名 #这里manage ...

  5. 圆桌问题 (ArrayList+模拟)

    圆桌上围坐着2n个人.其中n个人是好人,另外n个人是坏人.如果从第一个人开始数数,数到第m个人,则立即处死该人:然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人 ...

  6. 普及C组第三题(8.12)

    2304. 光芒 (File IO): input:light.in output:light.out 时间限制: 1000 ms  空间限制: 题目: 输入: 输出: 样例输入 5 1 1 0 1 ...

  7. [CERC2014] Outer space invaders

    题目链接 题意 你受到一群外星人的攻击,第 $i$ 个外星人会在 $ai$ 时间出现,与你的距离为 $di$,且必须在 $bi$ 时间前消灭.你有一个区域冲击波器,每次攻击可以设定一个功率 $R$,这 ...

  8. IDEA常用操作链接

    idea中svn的提交.更新等操作 https://jingyan.baidu.com/article/375c8e19e3c47a25f3a22955.html Idea 部署SVN详细步骤以及上传 ...

  9. input输入框在ios手机上获取焦点后有一个灰色阴影

    遇到的场景: 有一个输入框 设置 outline:none 然后我又想给他设置获取焦点的颜色 然后 我给input 设置 border 为 1px t透明的 然后 获取焦点的时候 重新设置border ...

  10. pip知识点

    pip第三方模块保存在\Lib\site-packages目录 安装第三方模块:\Script目录下->shift+鼠标右点打开powershift窗口 ->pip install 模块名 ...