using Common;
using Model;
using Oracle.DataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Text;
namespace Dao
{
public class GwClientDao : IDisposable
{
///
/// 加载代理商客户列表
///
/// 总计
///
///
/// 客户账号名称
/// 联系人
/// 联系电话
/// 业务员
/// 公司名称
/// 归属业务员
/// 归属客服人员
/// 产品ID
///
//public List LoadInfoList(out int recordCount, int pageIndex, int pageSizestring, string clientID, string clientName, string telphone, string agent)
public List LoadInfoList(out int recordCount, int pageIndex, int pageSizestring, string clientID, string clientName, string telephone, string agent, string company, string salesman, string supportStaff, string productId, int isEnable, string permissionsSQL )
{
List list = new List();
recordCount = 0;
try
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(" FROM ( ");
stringBuilder.Append("SELECT gwc.*, t.PRODUCT_IDS 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("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");
using (OracleDataReader reader = OracleHelper.ExecuteReader("select count(*) as count " + stringBuilder.ToString(), OracleHelper.Connection, oracleParameterArray))
{
while (((DbDataReader)reader).Read())
recordCount = this.ReadCount(reader);
}
using (OracleDataReader reader = OracleHelper.ExecuteReader(PubConstant.doOracleSql(pageIndex, pageSizestring, recordCount, "select * " + stringBuilder.ToString()).ToString(), OracleHelper.Connection, oracleParameterArray))
{
while (((DbDataReader)reader).Read())
{
GwClient o = new GwClient();
if (this.ReadInfo(reader, o))
list.Add(o);
}
}
}
catch (Exception ex)
{
LogHelper.Error(ex);
return list;
}
return list;
}
//导出客户信息
///
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);
}
/**
* 查询统计功能
*/
public List LoadInfoList(string clientID, string clientName, string company, string agent, string permissionsSQL)
{
List list = new List();
try
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("from GW_CLIENT where 1=1 and IS_ENABLE=1 ");
OracleParameter[] oracleParameterArray = new OracleParameter[4];
if (clientID != null && clientID != "")
{
oracleParameterArray[0] = new OracleParameter(":ClientID", (OracleDbType)126);
((DbParameter)oracleParameterArray[0]).Value = (object)('%' + clientID + '%');
stringBuilder.Append(" and CLIENT_ID like :ClientID");
}
if (clientName != null && clientName != "")
{
oracleParameterArray[1] = new OracleParameter(":ClientName", (OracleDbType)126);
((DbParameter)oracleParameterArray[1]).Value = (object)('%' + clientName + '%');
stringBuilder.Append(" and CLIENT_NAME like :ClientName");
}
if (company != null && company != "")
{
oracleParameterArray[2] = new OracleParameter(":Company", (OracleDbType)126);
((DbParameter)oracleParameterArray[2]).Value = (object)('%' + company + '%');
stringBuilder.Append(" and COMPANY like :Company");
}
if (agent != null && agent != "")
{
oracleParameterArray[3] = new OracleParameter(":Agent", (OracleDbType)126);
((DbParameter)oracleParameterArray[3]).Value = (object)("%" + agent + "%");
stringBuilder.Append(" and Agent like :Agent");
}
//客户权限SQL脚本
stringBuilder.Append(permissionsSQL);
stringBuilder.Append(" order by CREATE_TIME DESC,CLIENT_ID DESC");
using (OracleDataReader reader = OracleHelper.ExecuteReader("select * " + stringBuilder.ToString(), OracleHelper.Connection, oracleParameterArray))
{
while (((DbDataReader)reader).Read())
{
GwClient o = new GwClient();
if (this.ReadInfo(reader, o))
list.Add(o);
}
}
}
catch (Exception ex)
{
LogHelper.Error(ex);
return list;
}
return list;
}
public bool UpdatePassword(string clientID, string password)
{
return OracleHelper.ExecuteSql("UPDATE GW_CLIENT SET PASSWORD=:PASSWORD WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientID), new OracleParameter(":PASSWORD", (object)password)) > 0;
}
public bool UpdatePassword(string clientID, string oldPassword, string newPassword)
{
string str = DataHelper.MD5Hex(oldPassword);
return OracleHelper.ExecuteSql("update GW_CLIENT SET PASSWORD=:NEWPASSWORD WHERE CLIENT_ID=:CLIENT_ID AND ((PASSWORD=:OLDPASSWORD) OR (PASSWORD=:MD5Password) )", OracleHelper.Connection, new OracleParameter(":NEWPASSWORD", (object)DataHelper.MD5Hex(newPassword)), new OracleParameter(":OLDPASSWORD", (object)oldPassword), new OracleParameter(":MD5Password", (object)str), new OracleParameter(":CLIENT_ID", (object)clientID)) >= 1;
}
public bool UpdateClientInfo(GwClient client)
{
return OracleHelper.ExecuteSql("UPDATE GW_CLIENT SET CLIENT_NAME=:CLIENTNAME,TELEPHONE=:TELEPHONE,ADDRESS=:ADDRESS,COMPANY=:COMPANY,REMARK=:REMARK,ALARM_MOBILE=:ALARM_MOBILE,BALANCE_THRESHOLD=:BALANCE_THRESHOLD WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":CLIENTNAME", (object)client.ClientName), new OracleParameter(":TELEPHONE", (object)client.Telephone), new OracleParameter(":ADDRESS", (object)client.Address), new OracleParameter(":COMPANY", (object)client.Company), new OracleParameter(":REMARK", (object)client.Remark), new OracleParameter(":ALARM_MOBILE", (object)client.AlarmMobile), new OracleParameter(":BALANCE_THRESHOLD", (object)client.BalanceThreshold), new OracleParameter(":CLIENT_ID", (object)client.ClientID)) > 0 && this.UpdateClientSp(client);
}
public bool UpdateClientSp(GwClient client)
{
return OracleHelper.ExecuteSql("UPDATE GW_SP SET ALARM_MOBILE=:ALARM_MOBILE,BALANCE_THRESHOLD=:BALANCE_THRESHOLD WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":ALARM_MOBILE", (object)client.AlarmMobile), new OracleParameter(":BALANCE_THRESHOLD", (object)client.BalanceThreshold), new OracleParameter(":CLIENT_ID", (object)client.ClientID)) > 0;
}
//更新客户充值数据
/**
* payAmount:充值金额
* AddBalance:累计充值余额
* clientId:客户ID
*
*/
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;
}
public bool UpdateClientProduct(string clientId, string productId)
{
List> list = new List>();
if (string.IsNullOrEmpty(productId) )
{
string key = "UPDATE GW_CLIENT_PRODUCT SET PRODUCT_ID=:PRODUCT_ID WHERE CLIENT_ID=:CLIENT_ID";
OracleParameter[] oracleParameterArray = new OracleParameter[2]
{
new OracleParameter(":PRODUCT_ID", (object) productId),
new OracleParameter(":CLIENT_ID", (object) clientId)
};
list.Add(new KeyValuePair(key, oracleParameterArray));
}
OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
return true;
}
//启用或停用
public bool UpdateStatus(string clientId, string isEnable)
{
List> list = new List>();
if (!string.IsNullOrEmpty(isEnable))
{
string key = "UPDATE GW_CLIENT SET IS_ENABLE=:IS_ENABLE WHERE CLIENT_ID=:CLIENT_ID";
OracleParameter[] oracleParameterArray = new OracleParameter[2]
{
new OracleParameter(":IS_ENABLE", (object) isEnable),
new OracleParameter(":CLIENT_ID", (object) clientId)
};
list.Add(new KeyValuePair(key, oracleParameterArray));
}
OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
return true;
}
///
/// 更新账号的信息
///
///
///
public bool Update(GwClient item)
{
return OracleHelper.ExecuteSql("UPDATE GW_CLIENT SET CLIENT_ID=:CLIENT_ID,CLIENT_NAME=:CLIENTNAME," +
"TELEPHONE=:TELEPHONE,ADDRESS=:ADDRESS,COMPANY=:COMPANY,REMARK=:REMARK,AGENT=:AGENT,SALESMAN=:SALESMAN," +
"CUSTOMER_MANAGER=:CUSTOMER_MANAGER,SUPPORT_STAFF=:SUPPORT_STAFF,FINANCIAL_STAFF=:FINANCIAL_STAFF," +
"CHARGE_TYPE=:CHARGE_TYPE,SMS_STATUS_REPORT=:SMS_STATUS_REPORT,PERMISSION_DATA=:PERMISSION_DATA, " +
"IS_ENABLE_WHITE=:IS_ENABLE_WHITE, IS_ENABLE_BLACK=:IS_ENABLE_BLACK, IS_REMOTE_LOGIN_NOTICE=:IS_REMOTE_LOGIN_NOTICE, " +
"IS_MOBILE_CAPTCHA=:IS_MOBILE_CAPTCHA, IS_HIDE_MOBILE=:IS_HIDE_MOBILE, IS_DISPLAY_STATUS=:IS_DISPLAY_STATUS," +
" IS_LOGIN_IP_RESTRICT=:IS_LOGIN_IP_RESTRICT, IS_LOGIN_IP_ALLOW_GATHER=:IS_LOGIN_IP_ALLOW_GATHER, IS_LOGIN_CITY_RESTRICT=:IS_LOGIN_CITY_RESTRICT," +
" IS_LOGIN_CITY_ALLOW_GATHER=:IS_LOGIN_CITY_ALLOW_GATHER,CREATE_TIME=SYSDATE WHERE CLIENT_ID=:Id",
OracleHelper.Connection, new OracleParameter(":Id",(object)item.ClientID), new OracleParameter(":CLIENT_ID", (object)item.ClientID),
new OracleParameter(":CLIENTNAME", (object)item.ClientName), new OracleParameter(":TELEPHONE", (object)item.Telephone),
new OracleParameter(":ADDRESS", (object)item.Address), new OracleParameter(":COMPANY", (object)item.Company),
new OracleParameter(":REMARK", (object)item.Remark), 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(":PERMISSION_DATA", (object)item.PermissionData),
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 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,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,CLIENT_PARENTID,Certification_Status) VALUES (:CLIENTID,:CLIENTNAME,:TELEPHONE,:ADDRESS,:AGENT,:SALESMAN,:CUSTOMER_MANAGER,:SUPPORT_STAFF,:FINANCIAL_STAFF," +
":CHARGE_TYPE,:SMS_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," +
":CLIENT_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(":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(":CLIENT_PARENTID", (object)item.Client_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)
{
GwClient o = new GwClient();
if (string.IsNullOrEmpty(clientID) || string.Equals("0", clientID))
return o;
using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("select * from GW_CLIENT where CLIENT_ID=:CLIENT_ID"), OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientID)))
{
if (((DbDataReader)reader).Read())
{
this.ReadInfo(reader, o);
return o;
}
}
return o;
}
public GwClient GetClientName(string clientName)
{
GwClient o = new GwClient();
if (string.IsNullOrEmpty(clientName) || string.Equals("0", clientName))
return o;
using (OracleDataReader reader = OracleHelper.ExecuteReader(string.Format("select * from GW_CLIENT where CLIENT_NAME=:CLIENT_NAME"), OracleHelper.Connection, new OracleParameter(":CLIENT_NAME", (object)clientName)))
{
if (((DbDataReader)reader).Read())
{
this.ReadInfo(reader, o);
return o;
}
}
return o;
}
public List Clientlist()
{
List list = new List();
using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT * FROM GW_CLIENT", OracleHelper.Connection))
{
while (((DbDataReader)reader).Read())
{
GwClient o = new GwClient();
if (this.ReadInfo(reader, o))
list.Add(o);
}
}
return list;
}
///
/// 判断账户是否存在
///
/// 账户
///
public bool IsIDExists(string clientID)
{
if (string.IsNullOrEmpty(clientID) || string.Equals("0", clientID))
return true;
using (OracleDataReader oracleDataReader = OracleHelper.ExecuteReader(string.Format("select * from GW_CLIENT where CLIENT_ID=:CLIENT_ID"), OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientID)))
{
if (((DbDataReader)oracleDataReader).Read())
return true;
}
return false;
}
public bool IsNameExists(string clientName)
{
if (string.IsNullOrEmpty(clientName) || string.Equals("0", clientName))
return true;
using (OracleDataReader oracleDataReader = OracleHelper.ExecuteReader(string.Format("select * from GW_CLIENT where CLIENT_NAME=:CLIENT_NAME"), OracleHelper.Connection, new OracleParameter(":CLIENT_NAME", (object)clientName)))
{
if (((DbDataReader)oracleDataReader).Read())
return true;
}
return false;
}
public bool Delete(string clientID)
{
if (string.IsNullOrEmpty(clientID) || string.Equals("0", clientID))
return false;
return OracleHelper.ExecuteSql(string.Format("delete from GW_CLIENT where CLIENT_ID=:CLIENT_ID"), OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientID)) > 0;
}
private bool ReadInfo(OracleDataReader reader, GwClient o)
{
OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
o.ClientID = oracleReaderWrapper.GetString("CLIENT_ID", "");
o.ClientName = oracleReaderWrapper.GetString("CLIENT_NAME", "");
o.Telephone = oracleReaderWrapper.GetString("TELEPHONE", "");
o.Address = oracleReaderWrapper.GetString("ADDRESS", "");
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);
o.Balance = oracleReaderWrapper.GetInt("BALANCE", 0);
o.PermissionData = oracleReaderWrapper.GetString("PERMISSION_DATA", "");
o.ProductIds = oracleReaderWrapper.GetString("PRODUCT_IDS", ""); ; //已分配的个性产品集,多个以“,”分隔
o.Id = oracleReaderWrapper.GetInt("ID", 0);
o.Certification_Status = oracleReaderWrapper.GetInt("CERTIFICATION_STATUS", 0);
o.Client_Classes = oracleReaderWrapper.GetInt("CLIENT_CLASSES",0);
o.Client_Parentid = oracleReaderWrapper.GetString("CLIENT_PARENTID", "");
o.Client_Type = oracleReaderWrapper.GetInt("CLIENT_TYPE", 0);
o.Is_Enable = oracleReaderWrapper.GetInt("IS_ENABLE", 0);
o.Top_up_Amount_Total = (decimal)oracleReaderWrapper.GetInt("TOP_UP_AMOUNT_TOTAL", 0);
o.Salesman = oracleReaderWrapper.GetString("SALESMAN", "");
o.CustomerManager = oracleReaderWrapper.GetString("CUSTOMER_MANAGER", "");
o.SupportStaff = oracleReaderWrapper.GetString("SUPPORT_STAFF", "");
o.FinancialStaff = oracleReaderWrapper.GetString("FINANCIAL_STAFF", "");
o.ChargeType = oracleReaderWrapper.GetInt("CHARGE_TYPE", 0);
o.SmsStatusReport = oracleReaderWrapper.GetInt("SMS_STATUS_REPORT", 0);
o.MmsStatusReport = oracleReaderWrapper.GetInt("MMS_STATUS_REPORT", 0);
o.IsEnableWhite = oracleReaderWrapper.GetInt("IS_ENABLE_WHITE", 0);
o.IsEnableBlack = oracleReaderWrapper.GetInt("IS_ENABLE_BLACK", 0);
o.IsRemoteLoginNotice = oracleReaderWrapper.GetInt("IS_REMOTE_LOGIN_NOTICE", 0);
o.IsMobileCaptcha = oracleReaderWrapper.GetInt("IS_MOBILE_CAPTCHA", 0);
o.IsHideMobile = oracleReaderWrapper.GetInt("IS_HIDE_MOBILE", 0);
o.IsDisplayStatus = oracleReaderWrapper.GetInt("IS_DISPLAY_STATUS", 0);
o.IsLoginIpRestrict = oracleReaderWrapper.GetInt("IS_LOGIN_IP_RESTRICT", 0);
o.IsLoginIpAllowGather = oracleReaderWrapper.GetString("IS_LOGIN_IP_ALLOW_GATHER", "");
o.IsLoginCityRestrict = oracleReaderWrapper.GetInt("IS_LOGIN_CITY_RESTRICT", 0);
o.IsLoginCityAllowGather = oracleReaderWrapper.GetString("IS_LOGIN_CITY_ALLOW_GATHER", "");
return true;
}
private int ReadCount(OracleDataReader reader)
{
return new OracleReaderWrapper(reader).GetInt("count", 0);
}
public void Dispose()
{
}
public bool UpdateWhiteList(string clientID, string mobileList)
{
OracleHelper.ExecuteSql("BEGIN\r\n UPDATE GW_CLIENT_WHITE SET MOBILE_LIST=:MOBILE_LIST WHERE CLIENT_ID=:CLIENT_ID;\r\n IF SQL%ROWCOUNT =0 THEN\r\n INSERT INTO GW_CLIENT_WHITE(CLIENT_ID,MOBILE_LIST) VALUES(:CLIENT_ID,:MOBILE_LIST);\r\n END IF;\r\nEND;", OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientID), new OracleParameter(":MOBILE_LIST", (OracleDbType)105, (object)mobileList, ParameterDirection.Input));
return true;
}
public bool UpdateBlackList(string clientID, string mobileList)
{
OracleHelper.ExecuteSql("BEGIN\r\n UPDATE GW_CLIENT_BLACK SET MOBILE_LIST=:MOBILE_LIST WHERE CLIENT_ID=:CLIENT_ID;\r\n IF SQL%ROWCOUNT =0 THEN\r\n INSERT INTO GW_CLIENT_BLACK(CLIENT_ID,MOBILE_LIST) VALUES(:CLIENT_ID,:MOBILE_LIST);\r\n END IF;\r\nEND;", OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientID), new OracleParameter(":MOBILE_LIST", (OracleDbType)105, (object)mobileList, ParameterDirection.Input));
return true;
}
public string GetBlackList(string clientId)
{
using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT * FROM GW_CLIENT_BLACK WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientId)))
{
if (reader != null && ((DbDataReader)reader).Read())
return new OracleReaderWrapper(reader).GetString("MOBILE_LIST", string.Empty);
}
return string.Empty;
}
public string GetWhiteList(string clientId)
{
using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT * FROM GW_CLIENT_WHITE WHERE CLIENT_ID=:CLIENT_ID", OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientId)))
{
if (reader != null && ((DbDataReader)reader).Read())
return new OracleReaderWrapper(reader).GetString("MOBILE_LIST", string.Empty);
}
return string.Empty;
}
public bool Login(string account, string password, out GwClient client)
{
client = new GwClient();
string str = DataHelper.MD5Hex(password);
using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT * FROM GW_CLIENT WHERE CLIENT_ID=:ACCOUNT AND ((PASSWORD=:PASSWORD) OR (PASSWORD=:MD5Password)) ", OracleHelper.Connection, new OracleParameter(":ACCOUNT", (object)account), new OracleParameter(":PASSWORD", (object)password), new OracleParameter(":MD5Password", (object)str)))
{
if (reader == null || !((DbDataReader)reader).Read())
return false;
this.ReadInfo(reader, client);
}
return true;
}
/**
* 函数描述: 根据客户ID获取分配的个性产品
* clientId: 客户户ID
* userType: 用户类型,多个时以“,”分隔:1-管理员;2-业务员--全员;3-客户经理;4-客服人员;5-财务人员
* return: SQL字符串
* */
public Dictionary GetPersonalityProduct(string clientId)
{
Dictionary dictionary = new Dictionary();
using (OracleDataReader reader = OracleHelper.ExecuteReader("SELECT * FROM GW_PRODUCT WHERE INSTR (CLIENT_IDS, :CLIENT_ID) > 0 ", OracleHelper.Connection, new OracleParameter(":CLIENT_ID", (object)clientId)))
{
while (reader != null && ((DbDataReader)reader).Read())
{
OracleReaderWrapper oracleReaderWrapper = new OracleReaderWrapper(reader);
string string1 = oracleReaderWrapper.GetString("ID", "");
string string2 = oracleReaderWrapper.GetString("CLIENT_IDS", "");
GwProduct o = new GwProduct();
o.Id = string1;
o.ClientIds = string2;
dictionary[string1] = o;
}
}
return dictionary;
}
//修改分配个性产品:修改确认
public void UpdateProduct(string clientId, string[] productIdArray)
{
List> list = new List>();
//更新个性分配客户集去除包含本客户
string key1 = " UPDATE GW_PRODUCT SET CLIENT_IDS=(REPLACE(REPLACE(REPLACE(CLIENT_IDS, ','||:CLIENT_ID), :CLIENT_ID||',' ), :CLIENT_ID ) ) WHERE INSTR (CLIENT_IDS, :CLIENT_ID) > 0 ";
OracleParameter[] oracleParameterArray1 = new OracleParameter[1]
{
new OracleParameter(":CLIENT_ID", (object) clientId)
};
list.Add(new KeyValuePair(key1, oracleParameterArray1));
OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
if (productIdArray == null || productIdArray.Length <= 0)
return;
//更新个性分配客户集长度大于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>();
foreach (string str in productIdArray)
{
OracleParameter[] oracleParameterArray2 = new OracleParameter[2]
{
new OracleParameter(":CLIENT_ID", (object) clientId),
new OracleParameter(":PRODUCT_ID", (object) str)
};
list.Add(new KeyValuePair(key2, oracleParameterArray2));
}
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>();
foreach (string str in productIdArray)
{
OracleParameter[] oracleParameterArray2 = new OracleParameter[2]
{
new OracleParameter(":CLIENT_ID", (object) clientId),
new OracleParameter(":PRODUCT_ID", (object) str)
};
list.Add(new KeyValuePair(key3, oracleParameterArray2));
}
OracleHelper.ExecuteSqlTran(list, OracleHelper.Connection);
}
/**
* 函数描述: 根据系统用户获取有权限客户
* userId: 用户ID
* userType: 用户类型,多个时以“,”分隔:1-管理员;2-业务员--全员;3-客户经理;4-客服人员;5-财务人员
* return: SQL字符串
* */
public string GetClientPermissions(int userId, string userType, string alias)
{
if (!string.IsNullOrEmpty(alias))
{
alias += ".";
}
string sqlStr = "";
//业务员
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 (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 if (DataConverter.checkStrForArrayStr(1, userType))
{
//sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) ";
}
return sqlStr ;
}
/**
* 函数描述: 根据系统用户获取有权限客户账号
* userId: 用户ID
* userType: 用户类型,多个时以“,”分隔:1-管理员;2-业务员--全员;3-客户经理;4-客服人员;5-财务人员
* return: SQL字符串
* */
public string GetSpPermissions(int userId, string userType, string alias)
{
if (!string.IsNullOrEmpty(alias))
{
alias += ".";
}
string sqlStr = "";
//业务员
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 (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 if (DataConverter.checkStrForArrayStr(1, userType))
{
//sqlStr += " AND CLIENT_ID IN (SELECT CLIENT_ID FROM GW_CLIENT WHERE IS_ENABLE=1 ) ";
}
return sqlStr;
}
}
}