备注:使用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. Java中数字的格式化输出

    Java中数字的格式化输出 double d = 345.678; String s = "hello!"; int i = 1234; //"%"表示进行格式 ...

  2. 自己动手系列----使用数组实现一个简单的Set

    Set:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复.主要有HashSet和TreeSet两大实现类. ...

  3. Android 开发 SurfaceView 总结

    Android中一种常见的自定义画UI接口类:SurfaceView.可以在异步线程中,完成相关数据更新. 首先介绍几个基本的定义,在其他知识中也会设计如下名词: 1.Paint 画笔,所有的图像.图 ...

  4. 基于.NET Core winform的录音、字幕软件HTWCore的技术总结

    HTWCore是一款基于.NET Core的winform客户端程序,可以用来处理各种会议,记录,讲座,讲课等等来源的音视频,运用语音识别.视频内容提取等技术整理成word文档.项目中运用了以下技术: ...

  5. DSDT/SSDT

    版权说明:本文章参考tonymacx86的Patching LAPTOP DSDT/SSDTs这篇文章 如果需要转载,请注明原文地址:http://blog.csdn.net/wr132/articl ...

  6. python之路之线程,进程,协程

    一.线程和进程概述 1.python线程的Event 2.python线程其他和队列以及生产者消费者 3. 使用multprocessing创建进程 4.进程间数据共享方式——sharedmeory( ...

  7. 好文章推荐 数据库mysql

    https://blog.csdn.net/guofeng93/article/details/53994112

  8. SpringBoot整合mybatis使用pageHelper插件进行分页操作

    SpringBoot整合mybatis分页操作 SpringBoot整合Mybatis进行分页操作,这里需要使用Mybatis的分页插件:pageHelper, 关于pageHelper的介绍,请查看 ...

  9. python学习之 logging包

    1,logging包 python的一个包,专门用来写日志的. 官方一共划分了6个等级的log类型,分别对应重要性等级50,40,30,20,10,0: 级别排序:CRITICAL > ERRO ...

  10. IntelliJ IDEA 2017.3尚硅谷-----设置项目文件编码

    这也可以 R暂时显示 C转换