TG.WXCRM.V4/DAL/WeWork/ExtUser_DAL.cs

140 lines
5.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OracleClient;
using WX.CRM.Common;
namespace WX.CRM.DAL.WeWork
{
public class ExtUser_DAL
{
public decimal GetDistinctWeWorkFriendCount(string day)
{
try
{
//默认读取全部
var sql = "select count(distinct USERID) from WW_EXTUSER t where to_char(t.ctime,'yyyy-mm-dd')=:day and USERID not in(select USERID from WW_EXTUSER where ctime<to_date(:day,'yyyy-mm-dd'))";
var param = new List<OracleParameter>()
{
new OracleParameter() {ParameterName="day",OracleType=OracleType.VarChar,Value=day }
};
DataSet ds = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray());
if (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
{
return Convert.ToDecimal(ds.Tables[0].Rows[0][0]);
}
else
{
return 0;
}
}
catch (Exception ex)
{
LogHelper.Error(ex);
throw;
}
}
public DataTable CountByDayReport(DateTime? beginTime, DateTime? endTime)
{
var conn = new OracleConnection(OracleHelper.AYCRMConn);
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
using (var trans = conn.BeginTransaction())
{
var parms = new List<OracleParameter>()
{
beginTime.HasValue ? new OracleParameter() { ParameterName = "p_beginTime", OracleType = OracleType.DateTime, Value = beginTime.Value } : new OracleParameter() { ParameterName = "p_beginTime", OracleType = OracleType.DateTime, Value = DBNull.Value },
endTime.HasValue ? new OracleParameter() { ParameterName = "p_endTime", OracleType = OracleType.DateTime, Value = endTime.Value } : new OracleParameter() { ParameterName = "p_endTime", OracleType = OracleType.DateTime, Value = DBNull.Value },
new OracleParameter() { ParameterName = "p_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output },
};
DataSet ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WW_REPORT.CountByDay", parms.ToArray());
trans.Commit();
return ds.Tables[0];
}
}
catch (Exception ex)
{
LogHelper.Error(ex);
return null;
}
finally
{
conn.Close();
}
}
public DataTable CountByUserAndDay(DateTime beginTime, DateTime endTime)
{
var conn = new OracleConnection(OracleHelper.AYCRMConn);
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
using (var trans = conn.BeginTransaction())
{
var parms = new List<OracleParameter>()
{
new OracleParameter() { ParameterName = "p_beginTime", OracleType = OracleType.DateTime, Value = beginTime },
new OracleParameter() { ParameterName = "p_endTime", OracleType = OracleType.DateTime, Value = endTime },
new OracleParameter() { ParameterName = "p_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }
};
DataSet ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WW_REPORT.CountByUserAndDay", parms.ToArray());
trans.Commit();
return ds.Tables[0];
}
}
catch (Exception ex)
{
LogHelper.Error(ex);
return null;
}
finally
{
conn.Close();
}
}
/// <summary>
/// 客户资料和企业微信绑定获取
/// </summary>
/// <param name="resid"></param>
/// <returns></returns>
public string[] ExtUserBandGet(string resid)
{
var conn = new OracleConnection(OracleHelper.AYCRMConn);
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
using (var trans = conn.BeginTransaction())
{
var parms = new List<OracleParameter>()
{
new OracleParameter() { ParameterName = "v_resid", OracleType = OracleType.VarChar, Value = resid },
new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output },
};
DataTable ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WW.ExtUserBandGet", parms.ToArray()).Tables[0];
trans.Commit();
List<string> extuserids = new List<string>();
foreach (DataRow item in ds.Rows)
{
extuserids.Add(item["userid"].ToString());
}
return extuserids.ToArray();
}
}
catch (Exception ex)
{
LogHelper.Error(ex);
return null;
}
finally
{
conn.Close();
}
}
}
}