TG.WXCRM.V4/DAL/Soft/Soft_User_DAL.cs

289 lines
14 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OracleClient;
using WX.CRM.Common;
namespace WX.CRM.DAL.Soft
{
public class Soft_User_DAL
{
public DataSet geUnAgentUserList(ref Pager pager, DateTime? ctime, DateTime? etime, string username, decimal? regtag)
{
OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn);
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
using (OracleTransaction trans = conn.BeginTransaction())
{
var p = new List<OracleParameter>
{
new OracleParameter { ParameterName = "v_username", OracleType = OracleType.VarChar, Value = username },
new OracleParameter { ParameterName = "v_regtag", OracleType = OracleType.Number, Value = regtag },
new OracleParameter { ParameterName = "v_ctime", OracleType = OracleType.DateTime, Value = ctime },
new OracleParameter { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value = etime },
new OracleParameter{ParameterName = "v_pageIndex",OracleType = OracleType.Number,Value =pager.page},
new OracleParameter{ParameterName = "v_pageSize",OracleType = OracleType.Number,Value = pager.rows},
new OracleParameter
{
ParameterName = "v_sqldata",
OracleType = OracleType.Cursor,
Direction = ParameterDirection.Output
}
};
var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "pack_soft.soft_unagentuserlist", p.ToArray());
trans.Commit();
return ds;
}
}
catch (Exception)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
/// <summary>
/// 是否含有 用户名
/// </summary>
/// <param name="username">用户名</param>
/// <returns></returns>
public bool IsHasUser(string username)
{
bool isHas = false;
try
{
string sql = "select count(*) ncount from soft_user where username=:username";
var param = new List<OracleParameter>() { new OracleParameter() { ParameterName = ":username", OracleType = OracleType.VarChar, Value = username } };
DataTable tab = OracleHelper.DataQueray(OracleHelper.AYCRMConn2, CommandType.Text, sql, param.ToArray()).Tables[0];
int count = Convert.ToInt32(tab.Rows[0]["ncount"]);
if (count > 0)
isHas = true;
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
return isHas;
}
/// <summary>
/// 是否含有resid
/// </summary>
/// <param name="resid">客户ID</param>
/// <param name="isOne">是否是一部</param>
/// <returns></returns>
public bool IsHasResId(string resid, bool isOne)
{
bool isHas = false;
try
{
string sql = "select count(*) ncount from res_customer where resid=:resid";
var param = new List<OracleParameter>() { new OracleParameter() { ParameterName = ":resid", OracleType = OracleType.VarChar, Value = resid } };
string conn = isOne ? OracleHelper.AYCRMConn : OracleHelper.AYCRMConn2;
DataTable tab = OracleHelper.DataQueray(conn, CommandType.Text, sql, param.ToArray()).Tables[0];
int count = Convert.ToInt32(tab.Rows[0]["ncount"]);
if (count > 0)
isHas = true;
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
return isHas;
}
public bool InserSoftUser(bool isOne, string resid, string tag, string cardNo, string userName, DateTime? regDate, int companyId, string activeMobile = null, string platform = null)
{
bool isSucced = false;
try
{
// string sql = @"insert into soft_user
// (username, userpass, userno,regcampainid, regplatform, isactive, activetime, activeresid, ctime, companyid, regdate, resid)
// values
// (@v_username, 'string.Empty', @v_userno, @v_regcampainid, @v_regplatform, NULL, NULL, @v_activeresid ,sysdate, @v_companyid, @v_regdate, @v_resid)";
decimal? ISACTIVE = null;
string ACTIVERESID = string.Empty;
DateTime? ACTIVETIME = null;
if (!string.IsNullOrEmpty(activeMobile))
{
ISACTIVE = 1;
ACTIVERESID = resid;
ACTIVETIME = regDate;
}
var p = new List<OracleParameter>
{
new OracleParameter { ParameterName = "v_username", OracleType = OracleType.VarChar, Value = userName },
new OracleParameter { ParameterName = "v_userno", OracleType = OracleType.Number, Value = decimal.Parse(cardNo) },
new OracleParameter { ParameterName = "v_regcampainid", OracleType = OracleType.Number, Value =decimal.Parse(tag) },
new OracleParameter { ParameterName = "v_regplatform", OracleType = OracleType.VarChar, Value =platform },
ISACTIVE.HasValue?new OracleParameter { ParameterName = "v_isactive", OracleType = OracleType.Number, Value =ISACTIVE }:new OracleParameter { ParameterName = "v_isactive", OracleType = OracleType.Number, Value =DBNull.Value },
ACTIVETIME.HasValue? new OracleParameter { ParameterName = "v_activetime", OracleType = OracleType.DateTime, Value =ACTIVETIME.Value }:new OracleParameter { ParameterName = "v_activetime", OracleType = OracleType.DateTime, Value =DBNull.Value },
!string.IsNullOrEmpty(ACTIVERESID)? new OracleParameter { ParameterName = "v_activeresid", OracleType = OracleType.VarChar, Value =ACTIVERESID }:new OracleParameter { ParameterName = "v_activeresid", OracleType = OracleType.VarChar, Value =DBNull.Value },
new OracleParameter { ParameterName = "v_companyid", OracleType = OracleType.Number, Value =companyId },
new OracleParameter { ParameterName = "v_regdate", OracleType = OracleType.DateTime, Value =regDate },
!string.IsNullOrEmpty(resid)? new OracleParameter { ParameterName = "v_resid", OracleType = OracleType.VarChar, Value =resid }:new OracleParameter { ParameterName = "v_resid", OracleType = OracleType.VarChar, Value =DBNull.Value },
};
string conn = isOne ? OracleHelper.AYCRMConn : OracleHelper.AYCRMConn2;
OracleHelper.ExecuteNonQuery(conn, CommandType.StoredProcedure, "PACK_SOFT.soft_Add", p.ToArray());
ContractUser(isOne, resid, userName);//关联 resid和username
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
return isSucced;
}
/// <summary>
/// 数据管理
/// </summary>
/// <param name="isOne">是否是一部</param>
/// <param name="resid">客户ID</param>
/// <param name="userName">用户名</param>
/// <returns></returns>
public int ContractUser(bool isOne, string resid, string userName)
{
try
{
var param = new List<OracleParameter>
{
new OracleParameter() { ParameterName = "vResid", OracleType = OracleType.Char, Value = resid },
new OracleParameter() { ParameterName = "vUserName", OracleType = OracleType.VarChar, Value = userName }
};
string conn = isOne ? OracleHelper.AYCRMConn : OracleHelper.AYCRMConn2;
return OracleHelper.ExecuteNonQuery(conn, CommandType.StoredProcedure, "PACK_RES.res_ContractSoftUser", param.ToArray());
}
catch
{
throw;
}
}
public DataSet GetInvistListCount(DateTime? stime, DateTime? etime, decimal hasMobile, string deptId, string groupId, string innerUserId)
{
OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn);
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
using (OracleTransaction trans = conn.BeginTransaction())
{
var p = new List<OracleParameter>
{
new OracleParameter { ParameterName = "v_stime", OracleType = OracleType.DateTime, Value = stime },
new OracleParameter { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value = etime },
new OracleParameter { ParameterName = "v_hasmobile", OracleType = OracleType.Number, Value = hasMobile },
new OracleParameter { ParameterName = "v_deptId", OracleType = OracleType.VarChar, Value = deptId },
new OracleParameter { ParameterName = "v_groupId", OracleType = OracleType.VarChar, Value = groupId },
new OracleParameter { ParameterName = "v_userId", OracleType = OracleType.VarChar, Value = innerUserId },
new OracleParameter
{
ParameterName = "v_sqldata",
OracleType = OracleType.Cursor,
Direction = ParameterDirection.Output
}
};
var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_SOFT.soft_userInviteListCount", p.ToArray());
trans.Commit();
return ds;
}
}
catch (Exception)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
public DataSet GetInviteCountByDay(DateTime? stime, DateTime? etime)
{
OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn);
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
using (OracleTransaction trans = conn.BeginTransaction())
{
var p = new List<OracleParameter>
{
new OracleParameter { ParameterName = "v_stime", OracleType = OracleType.DateTime, Value = stime },
new OracleParameter { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value = etime },
new OracleParameter
{
ParameterName = "v_sqldata",
OracleType = OracleType.Cursor,
Direction = ParameterDirection.Output
}
};
var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_SOFT.soft_userInviteCountByDay", p.ToArray());
trans.Commit();
return ds;
}
}
catch (Exception)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
public DataTable Soft_Rpt_Get(DateTime ctime, DateTime etime)
{
OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn);
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
using (OracleTransaction trans = conn.BeginTransaction())
{
var p = new List<OracleParameter>
{
new OracleParameter { ParameterName = "v_stime", OracleType = OracleType.DateTime, Value = ctime },
new OracleParameter { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value = etime },
new OracleParameter
{
ParameterName = "v_data",
OracleType = OracleType.Cursor,
Direction = ParameterDirection.Output
}
};
var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_SOFT_USER_RPT.Soft_Rpt_Get", p.ToArray());
trans.Commit();
return ds.Tables[0];
}
}
catch (Exception)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
}
}