yzh
2022-06-30 3bf021ed05b7ae7a50b4287b2831588495bb06e6
web/Dao/GwClientDao.cs
@@ -131,6 +131,90 @@
            return list;
        }
        //导出客户信息
        /// <returns></returns>
        public DataTable LoadClientDataTable(string clientID, string clientName, string telephone, string agent, string company, string salesman, string supportStaff, string productId, int isEnable, string permissionsSQL)
        {
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.Append(" SELECT CLIENT_ID, COMPANY, CLIENT_NAME, TELEPHONE, Balance/1000 BALANCE, Top_up_Amount_Total/1000 TOP_UP_AMOUNT_TOTAL, SALESMAN_NAME, PRODUCT_IDS ");
            stringBuilder.Append(" , CASE WHEN (Is_Enable=1) then '启用' WHEN(Is_Enable=0) then '停用' end as Is_Enable ");
            stringBuilder.Append(" FROM ( ");
            stringBuilder.Append("SELECT gwc.*, t.PRODUCT_IDS, su.user_name SALESMAN_NAME  FROM GW_CLIENT gwc ");
            stringBuilder.Append(" LEFT JOIN ( ");
            stringBuilder.Append(" select gc.client_id, wm_concat( gp.name) PRODUCT_IDS from GW_CLIENT gc ");
            stringBuilder.Append(" LEFT JOIN gw_product gp on INSTR (CLIENT_IDS, gc.client_id) > 0 ");
            stringBuilder.Append(" GROUP BY gc.client_id ");
            stringBuilder.Append(" ) t on t.client_id = gwc.client_id ");
            stringBuilder.Append(" LEFT JOIN sys_user su on su.user_id = gwc.salesman ");
            //stringBuilder.Append("from GW_CLIENT where 1=1");
            stringBuilder.Append(" WHERE 1=1");
            OracleParameter[] oracleParameterArray = new OracleParameter[8];
            if (clientID != null && clientID != "")
            {
                oracleParameterArray[0] = new OracleParameter(":ClientID", (OracleDbType)126);
                ((DbParameter)oracleParameterArray[0]).Value = (object)('%' + clientID + '%');
                stringBuilder.Append(" and gwc.CLIENT_ID like :ClientID");
            }
            if (clientName != null && clientName != "")
            {
                oracleParameterArray[1] = new OracleParameter(":ClientName", (OracleDbType)126);
                ((DbParameter)oracleParameterArray[1]).Value = (object)('%' + clientName + '%');
                stringBuilder.Append(" and gwc.CLIENT_NAME like :ClientName");
            }
            if (telephone != null && telephone != "")
            {
                oracleParameterArray[2] = new OracleParameter(":Telephone", (OracleDbType)126);
                ((DbParameter)oracleParameterArray[2]).Value = (object)('%' + telephone + '%');
                stringBuilder.Append(" and gwc.TELEPHONE like :Telephone");
            }
            if (company != null && company != "")
            {
                oracleParameterArray[3] = new OracleParameter(":Company", (OracleDbType)126);
                ((DbParameter)oracleParameterArray[3]).Value = (object)('%' + company + '%');
                stringBuilder.Append(" and gwc.Company like :Company");
            }
            if (salesman != null && salesman != "")
            {
                oracleParameterArray[4] = new OracleParameter(":Salesman", (OracleDbType)126);
                ((DbParameter)oracleParameterArray[4]).Value = (object)(salesman);
                stringBuilder.Append(" and gwc.Salesman = :Salesman");
            }
            if (agent != null && agent != "")
            {
                oracleParameterArray[5] = new OracleParameter(":Agent", (OracleDbType)126);
                ((DbParameter)oracleParameterArray[5]).Value = (object)("%" + agent + "%");
                stringBuilder.Append(" and gwc.Agent like :Agent");
            }
            if (supportStaff != null && supportStaff != "")
            {
                oracleParameterArray[6] = new OracleParameter(":SupportStaff", (OracleDbType)126);
                ((DbParameter)oracleParameterArray[6]).Value = (object)(supportStaff);
                stringBuilder.Append(" and gwc.SUPPORT_STAFF = :SupportStaff");
            }
            if (isEnable != -1)
            {
                oracleParameterArray[7] = new OracleParameter(":IS_ENABLE", (OracleDbType)112);
                ((DbParameter)oracleParameterArray[7]).Value = (object)(isEnable);
                stringBuilder.Append(" and gwc.IS_ENABLE = :IS_ENABLE");
            }
            if (productId != null && productId != "")
            {
                stringBuilder.Append(" and gwc.CLIENT_ID IN ( SELECT distinct CLIENT_ID  FROM GW_SP WHERE PRODUCT_ID = '" + productId + "' )");
            }
            //客户权限SQL脚本
            stringBuilder.Append(permissionsSQL);
            stringBuilder.Append(" ) T ");
            stringBuilder.Append(" order by CREATE_TIME DESC,CLIENT_ID DESC");
            return OracleHelper.Execute(PubConstant.doOracleSql(100000, stringBuilder.ToString()).ToString(), OracleHelper.Connection, oracleParameterArray);
        }
        /**
         * 查询统计功能
         */
@@ -219,7 +303,7 @@
         * clientId:客户ID
         * 
         */
        public bool UpdateClientAmount(int AddBalance, int payAmount, string clientId )
        public bool UpdateClientAmount(Int64 AddBalance, Int64 payAmount, string clientId )
        {
            return OracleHelper.ExecuteSql("UPDATE GW_CLIENT SET BALANCE=(BALANCE + :BALANCE), TOP_UP_AMOUNT_TOTAL=(TOP_UP_AMOUNT_TOTAL + :TOP_UP_AMOUNT_TOTAL) WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":BALANCE", (object)AddBalance), new OracleParameter(":TOP_UP_AMOUNT_TOTAL", (object)payAmount), new OracleParameter(":CLIENT_ID", (object)clientId)) > 0;
        }
@@ -271,7 +355,7 @@
        public bool Add(GwClient item)
        {
            return OracleHelper.ExecuteSql("INSERT INTO GW_CLIENT(CLIENT_ID,CLIENT_NAME,TELEPHONE,ADDRESS,AGENT,SALESMAN,CUSTOMER_MANAGER,SUPPORT_STAFF,FINANCIAL_STAFF,CHARGE_TYPE,SMS_STATUS_REPORT,MMS_STATUS_REPORT,COMPANY,REMARK,PASSWORD,PERMISSION_DATA, IS_ENABLE_WHITE, IS_ENABLE_BLACK, IS_REMOTE_LOGIN_NOTICE, IS_MOBILE_CAPTCHA, IS_HIDE_MOBILE, IS_DISPLAY_STATUS, IS_LOGIN_IP_RESTRICT, IS_LOGIN_IP_ALLOW_GATHER, IS_LOGIN_CITY_RESTRICT, IS_LOGIN_CITY_ALLOW_GATHER,CREATE_TIME,PARENTID,Certification_Status) VALUES(:CLIENTID,:CLIENTNAME,:TELEPHONE,:ADDRESS,:AGENT,:SALESMAN,:CUSTOMER_MANAGER,:SUPPORT_STAFF,:FINANCIAL_STAFF,:CHARGE_TYPE,:SMS_STATUS_REPORT,:MMS_STATUS_REPORT,:COMPANY,:REMARK,:PASSWORD,:PERMISSION_DATA, :IS_ENABLE_WHITE, :IS_ENABLE_BLACK, :IS_REMOTE_LOGIN_NOTICE, :IS_MOBILE_CAPTCHA, :IS_HIDE_MOBILE, :IS_DISPLAY_STATUS, :IS_LOGIN_IP_RESTRICT, :IS_LOGIN_IP_ALLOW_GATHER, :IS_LOGIN_CITY_RESTRICT, :IS_LOGIN_CITY_ALLOW_GATHER,SYSDATE,:PARENTID,:Certification_Status)", OracleHelper.Connection, new OracleParameter(":CLIENTID", (object)item.ClientID), new OracleParameter(":CLIENTNAME", (object)item.ClientName), new OracleParameter(":TELEPHONE", (object)item.Telephone), new OracleParameter(":ADDRESS", (object)item.Address), new OracleParameter(":AGENT", (object)item.Agent), new OracleParameter(":SALESMAN", (object)item.Salesman), new OracleParameter(":CUSTOMER_MANAGER", (object)item.CustomerManager), new OracleParameter(":SUPPORT_STAFF", (object)item.SupportStaff), new OracleParameter(":FINANCIAL_STAFF", (object)item.FinancialStaff), new OracleParameter(":CHARGE_TYPE", (object)item.ChargeType), new OracleParameter(":SMS_STATUS_REPORT", (object)item.SmsStatusReport), new OracleParameter(":MMS_STATUS_REPORT", (object)item.MmsStatusReport), new OracleParameter(":COMPANY", (object)item.Company), new OracleParameter(":REMARK", (object)item.Remark), new OracleParameter(":PASSWORD", (object)item.Password), new OracleParameter(":PERMISSION_DATA", (object)item.PermissionData), new OracleParameter(":PARENTID", (object)item.ParentId), new OracleParameter(":Certification_Status", (object)item.Certification_Status), new OracleParameter(":IS_ENABLE_WHITE", (object)item.IsEnableWhite), new OracleParameter(":IS_ENABLE_BLACK", (object)item.IsEnableBlack), new OracleParameter(":IS_REMOTE_LOGIN_NOTICE", (object)item.IsRemoteLoginNotice), new OracleParameter(":IS_MOBILE_CAPTCHA", (object)item.IsMobileCaptcha), new OracleParameter(":IS_HIDE_MOBILE", (object)item.IsHideMobile), new OracleParameter(":IS_DISPLAY_STATUS", (object)item.IsDisplayStatus), new OracleParameter(":IS_LOGIN_IP_RESTRICT", (object)item.IsLoginIpRestrict), new OracleParameter(":IS_LOGIN_IP_ALLOW_GATHER", (object)item.IsLoginIpAllowGather), new OracleParameter(":IS_LOGIN_CITY_RESTRICT", (object)item.IsLoginCityRestrict), new OracleParameter(":IS_LOGIN_CITY_ALLOW_GATHER", (object)item.IsLoginCityAllowGather) ) > 0;
            return OracleHelper.ExecuteSql("INSERT INTO GW_CLIENT(CLIENT_ID,CLIENT_NAME,TELEPHONE,ADDRESS,AGENT,SALESMAN,CUSTOMER_MANAGER,SUPPORT_STAFF,FINANCIAL_STAFF,CHARGE_TYPE,SMS_STATUS_REPORT,MMS_STATUS_REPORT,COMPANY,REMARK,PASSWORD, SALT, PERMISSION_DATA, IS_ENABLE_WHITE, IS_ENABLE_BLACK, IS_REMOTE_LOGIN_NOTICE, IS_MOBILE_CAPTCHA, IS_HIDE_MOBILE, IS_DISPLAY_STATUS, IS_LOGIN_IP_RESTRICT, IS_LOGIN_IP_ALLOW_GATHER, IS_LOGIN_CITY_RESTRICT, IS_LOGIN_CITY_ALLOW_GATHER,CREATE_TIME,PARENTID,Certification_Status) VALUES(:CLIENTID,:CLIENTNAME,:TELEPHONE,:ADDRESS,:AGENT,:SALESMAN,:CUSTOMER_MANAGER,:SUPPORT_STAFF,:FINANCIAL_STAFF,:CHARGE_TYPE,:SMS_STATUS_REPORT,:MMS_STATUS_REPORT,:COMPANY,:REMARK,:PASSWORD, :SALT,:PERMISSION_DATA, :IS_ENABLE_WHITE, :IS_ENABLE_BLACK, :IS_REMOTE_LOGIN_NOTICE, :IS_MOBILE_CAPTCHA, :IS_HIDE_MOBILE, :IS_DISPLAY_STATUS, :IS_LOGIN_IP_RESTRICT, :IS_LOGIN_IP_ALLOW_GATHER, :IS_LOGIN_CITY_RESTRICT, :IS_LOGIN_CITY_ALLOW_GATHER,SYSDATE,:PARENTID,:Certification_Status)", OracleHelper.Connection, new OracleParameter(":CLIENTID", (object)item.ClientID), new OracleParameter(":CLIENTNAME", (object)item.ClientName), new OracleParameter(":TELEPHONE", (object)item.Telephone), new OracleParameter(":ADDRESS", (object)item.Address), new OracleParameter(":AGENT", (object)item.Agent), new OracleParameter(":SALESMAN", (object)item.Salesman), new OracleParameter(":CUSTOMER_MANAGER", (object)item.CustomerManager), new OracleParameter(":SUPPORT_STAFF", (object)item.SupportStaff), new OracleParameter(":FINANCIAL_STAFF", (object)item.FinancialStaff), new OracleParameter(":CHARGE_TYPE", (object)item.ChargeType), new OracleParameter(":SMS_STATUS_REPORT", (object)item.SmsStatusReport), new OracleParameter(":MMS_STATUS_REPORT", (object)item.MmsStatusReport), new OracleParameter(":COMPANY", (object)item.Company), new OracleParameter(":REMARK", (object)item.Remark), new OracleParameter(":PASSWORD", (object)item.Password), new OracleParameter(":SALT", (object)item.Salt), new OracleParameter(":PERMISSION_DATA", (object)item.PermissionData), new OracleParameter(":PARENTID", (object)item.ParentId), new OracleParameter(":Certification_Status", (object)item.Certification_Status), new OracleParameter(":IS_ENABLE_WHITE", (object)item.IsEnableWhite), new OracleParameter(":IS_ENABLE_BLACK", (object)item.IsEnableBlack), new OracleParameter(":IS_REMOTE_LOGIN_NOTICE", (object)item.IsRemoteLoginNotice), new OracleParameter(":IS_MOBILE_CAPTCHA", (object)item.IsMobileCaptcha), new OracleParameter(":IS_HIDE_MOBILE", (object)item.IsHideMobile), new OracleParameter(":IS_DISPLAY_STATUS", (object)item.IsDisplayStatus), new OracleParameter(":IS_LOGIN_IP_RESTRICT", (object)item.IsLoginIpRestrict), new OracleParameter(":IS_LOGIN_IP_ALLOW_GATHER", (object)item.IsLoginIpAllowGather), new OracleParameter(":IS_LOGIN_CITY_RESTRICT", (object)item.IsLoginCityRestrict), new OracleParameter(":IS_LOGIN_CITY_ALLOW_GATHER", (object)item.IsLoginCityAllowGather) ) > 0;
        }
        public GwClient Get(string clientID)
@@ -367,6 +451,7 @@
            o.Company = oracleReaderWrapper.GetString("COMPANY", "");
            o.Remark = oracleReaderWrapper.GetString("REMARK", "");
            o.Password = oracleReaderWrapper.GetString("PASSWORD", "");
            o.Salt = oracleReaderWrapper.GetString("SALT", "");
            o.Agent = oracleReaderWrapper.GetString("AGENT", "");
            o.AlarmMobile = oracleReaderWrapper.GetString("ALARM_MOBILE", "");
            o.BalanceThreshold = oracleReaderWrapper.GetInt("BALANCE_THRESHOLD", 0);
@@ -458,7 +543,7 @@
        /**
         * 函数描述: 根据客户ID获取分配的个性产品
         * clientId: 客户户ID
         * userType: 用户类型:1-管理员;2-业务员--全员;3-业务主管;4-业务总监;5-客服人员;6-财务人员;99-其他
         * userType: 用户类型,多个时以“,”分隔:1-管理员;2-业务员--全员;3-客户经理;4-客服人员;5-财务人员
         * return: SQL字符串
         * */
@@ -501,6 +586,8 @@
            //更新个性分配客户集长度大于0时
            string key2 = "UPDATE GW_PRODUCT SET CLIENT_IDS=:CLIENT_ID || ',' || CLIENT_IDS  WHERE (CLIENT_IDS IS NOT NULL AND LENGTH(CLIENT_IDS) > 0) AND ID=:PRODUCT_ID ";
            list = new List<KeyValuePair<string, OracleParameter[]>>();
            foreach (string str in productIdArray)
            {
                OracleParameter[] oracleParameterArray2 = new OracleParameter[2]
@@ -509,14 +596,15 @@
                  new OracleParameter(":PRODUCT_ID", (object) str)
                };
                list = new List<KeyValuePair<string, OracleParameter[]>>();
                list.Add(new KeyValuePair<string, OracleParameter[]>(key2, oracleParameterArray2));
                OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
            }
            OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
            //更新个性分配客户集长度为0时
            string key3 = "UPDATE GW_PRODUCT SET CLIENT_IDS=:CLIENT_ID WHERE (CLIENT_IDS IS NULL OR LENGTH(CLIENT_IDS) <= 0) AND ID=:PRODUCT_ID ";
            list = new List<KeyValuePair<string, OracleParameter[]>>();
            foreach (string str in productIdArray)
            {
                OracleParameter[] oracleParameterArray2 = new OracleParameter[2]
@@ -524,21 +612,20 @@
                  new OracleParameter(":CLIENT_ID", (object) clientId),
                  new OracleParameter(":PRODUCT_ID", (object) str)
                };
                list = new List<KeyValuePair<string, OracleParameter[]>>();
                list.Add(new KeyValuePair<string, OracleParameter[]>(key3, oracleParameterArray2));
                OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
            }
            OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
        }
        /**
         * 函数描述: 根据系统用户获取有权限客户
         * userId: 用户ID
         * userType: 用户类型:1-管理员;2-业务员--全员;3-业务主管;4-业务总监;5-客服人员;6-财务人员;99-其他
         * userType: 用户类型,多个时以“,”分隔:1-管理员;2-业务员--全员;3-客户经理;4-客服人员;5-财务人员
         * return: SQL字符串
         * */
        public string GetClientPermissions(int userId, int userType, string alias)
        public string GetClientPermissions(int userId, string userType, string alias)
        {
            if (!string.IsNullOrEmpty(alias))
            {
@@ -546,17 +633,18 @@
            }
            string sqlStr = "";
            //业务员和其他
            if(userType==2 || userType == 99)
            //业务员
            if(DataConverter.checkStrForArrayStr(2, userType))
            {
                sqlStr  += " AND " + alias + "CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' ) ) ";
            }
            //业务主管
            else if (userType == 3)
            //客户经理
            else if (DataConverter.checkStrForArrayStr(3, userType) )
            {
                sqlStr += " AND " + alias + "CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' or CUSTOMER_MANAGER='" + userId + "' ) ) ";
            }
            else
            //管理员
            else if (DataConverter.checkStrForArrayStr(1, userType))
            {
                //sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) ";
            }
@@ -567,10 +655,10 @@
        /**
         * 函数描述: 根据系统用户获取有权限客户账号
         * userId: 用户ID
         * userType: 用户类型:1-管理员;2-业务员--全员;3-业务主管;4-业务总监;5-客服人员;6-财务人员;99-其他
         * userType: 用户类型,多个时以“,”分隔:1-管理员;2-业务员--全员;3-客户经理;4-客服人员;5-财务人员
         * return: SQL字符串
         * */
        public string GetSpPermissions(int userId, int userType, string alias)
        public string GetSpPermissions(int userId, string userType, string alias)
        {
            if (!string.IsNullOrEmpty(alias))
            {
@@ -578,17 +666,18 @@
            }
            string sqlStr = "";
            //业务员和其他
            if (userType == 2 || userType == 99)
            //业务员
            if (DataConverter.checkStrForArrayStr(2, userType))
            {
                sqlStr += " AND " + alias + "SP_ID IN (SELECT SP_ID from GW_SP where DEL_FLAG = 0 and CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' ) ) ) ";
            }
            //业务主管
            else if (userType == 3)
            //客户经理
            else if (DataConverter.checkStrForArrayStr(3, userType))
            {
                sqlStr += " AND " + alias + "SP_ID IN (SELECT SP_ID from GW_SP where DEL_FLAG = 0 and CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 AND (SALESMAN='" + userId + "' or CUSTOMER_MANAGER='" + userId + "' ) ) ) ";
            }
            else
            //管理员
            else if (DataConverter.checkStrForArrayStr(1, userType))
            {
                //sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) ";
            }