• 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(01)
     *        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;
    }
  • 相关阅读:
    Python入门6 —— 流程控制
    Python入门5 —— 基本运算符
    Python入门4 —— 输入与输出
    实用小工具 下载链接
    [笔记] BGP in the Data Center (O'Reilly 2017)
    数据中心网络:Spine-Leaf 架构设计综述(2016)
    Using Open vSwitch* with DPDK for Inter-VM NFV Applications
    hung_task
    TCPDUMP and IPv6 and perf trace --no-syscalls
    Go非缓冲/缓冲/双向/单向通道
  • 原文地址:https://www.cnblogs.com/sinosoft/p/11858740.html
Copyright © 2020-2023  润新知