345 lines
17 KiB
C#
345 lines
17 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.OracleClient;
|
|
using System.Linq;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.Model.DTO;
|
|
using WX.CRM.Model.MAP;
|
|
|
|
namespace WX.CRM.DAL.TS
|
|
{
|
|
public class WX_TS_BATCHMSG_DAL
|
|
{
|
|
/// <summary>
|
|
/// 获取 工作微信好友列表(用于消息助手,好友选择)
|
|
/// </summary>
|
|
/// <param name="v_jobusername"></param>
|
|
/// <param name="v_username"></param>
|
|
/// <param name="v_alias"></param>
|
|
/// <param name="v_nickname"></param>
|
|
/// <param name="v_conRemark"></param>
|
|
/// <param name="v_stime"></param>
|
|
/// <param name="v_etime"></param>
|
|
/// <param name="v_rtype"></param>
|
|
/// <returns></returns>
|
|
public List<WX_WorkRCONTACT> GetRcontactByJobusername(string v_jobusername, string v_username, string v_alias, string v_nickname, DateTime? v_stime, DateTime? v_etime, int v_rtype, int isnofriend, string v_column, string v_sort)
|
|
{
|
|
List<WX_WorkRCONTACT> list = new List<WX_WorkRCONTACT>();
|
|
try
|
|
{
|
|
var param1 = new List<OracleParameter>()
|
|
{
|
|
new OracleParameter() { ParameterName = "v_jobusername", OracleType = OracleType.VarChar, Value =v_jobusername },
|
|
new OracleParameter() { ParameterName = "v_username", OracleType = OracleType.VarChar, Value =v_username },
|
|
new OracleParameter() { ParameterName = "v_alias", OracleType = OracleType.VarChar, Value =v_alias },
|
|
new OracleParameter() { ParameterName = "v_nickname", OracleType = OracleType.VarChar, Value =v_nickname },
|
|
new OracleParameter() { ParameterName = "v_stime", OracleType = OracleType.DateTime, Value =v_stime },
|
|
new OracleParameter() { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value =v_etime },
|
|
new OracleParameter() { ParameterName = "v_rtype", OracleType = OracleType.Number, Value =v_rtype },
|
|
new OracleParameter() { ParameterName = "v_isnofriend", OracleType = OracleType.Number, Value =isnofriend },
|
|
new OracleParameter() { ParameterName = "v_column", OracleType = OracleType.VarChar, Value =v_column },
|
|
new OracleParameter() { ParameterName = "v_sort", OracleType = OracleType.VarChar, Value =v_sort },
|
|
new OracleParameter() {ParameterName="v_data",OracleType=OracleType.Cursor,Direction = ParameterDirection.Output }
|
|
};
|
|
DataTable tab = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.GetRcontactByJobusername", param1.ToArray()).Tables[0];
|
|
//list = tab.ToList<WX_WorkRCONTACT>();
|
|
foreach (DataRow item in tab.Rows)
|
|
{
|
|
WX_WorkRCONTACT model = new WX_WorkRCONTACT();
|
|
model.ALIAS = item["ALIAS"].ToString();
|
|
model.CONREMARK = item["CONREMARK"].ToString();
|
|
model.FUSERNAME = item["FUSERNAME"].ToString();
|
|
model.JOBWXUSERNAME = item["JOBWXUSERNAME"].ToString();
|
|
model.LASTCHARTIME = Convert.ToDecimal(item["LASTCHARTIME"]);
|
|
model.NICKNAME = item["NICKNAME"].ToString();
|
|
model.NUSERNAME = item["NUSERNAME"].ToString();
|
|
model.PKID = Convert.ToDecimal(item["PKID"]);
|
|
model.USERNAME = item["USERNAME"].ToString();
|
|
model.WUSERNAME = item["WUSERNAME"].ToString();
|
|
model.isblacklist = Convert.ToDecimal(item["isblacklist"]);
|
|
model.isunservedlist = Convert.ToDecimal(item["isunservedlist"]);
|
|
model.ctime = Convert.ToDateTime(item["ctime"]);
|
|
model.rtype = Convert.ToInt32(item["rtype"]);
|
|
list.Add(model);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 提交发送批次
|
|
/// </summary>
|
|
/// <param name="v_rid">Rcontact的pkid集合</param>
|
|
/// <param name="v_alias">工作微信号</param>
|
|
/// <param name="v_sendMsg">发送内容</param>
|
|
/// <param name="v_timeType">时间类型</param>
|
|
/// <param name="v_exe_date">执行日期</param>
|
|
/// <param name="v_exe_time">执行时间</param>
|
|
/// <param name="errors">错误信息</param>
|
|
/// <returns></returns>
|
|
public bool CreateBatchPici(string v_rid, string v_alias, string v_sendMsg, int v_timeType, string v_exe_date, string v_exe_time, ref ValidationErrors errors)
|
|
{
|
|
bool resut = false;
|
|
try
|
|
{
|
|
var param1 = new List<OracleParameter>()
|
|
{
|
|
new OracleParameter() { ParameterName = "v_rid", OracleType = OracleType.VarChar, Value =v_rid },
|
|
new OracleParameter() { ParameterName = "v_alias", OracleType = OracleType.VarChar, Value =v_alias },
|
|
new OracleParameter() { ParameterName = "v_sendMsg", OracleType = OracleType.VarChar, Value =v_sendMsg },
|
|
new OracleParameter() { ParameterName = "v_timeType", OracleType = OracleType.Number, Value =v_timeType },
|
|
new OracleParameter() { ParameterName = "v_exe_date", OracleType = OracleType.VarChar, Value =v_exe_date },
|
|
new OracleParameter() { ParameterName = "v_exe_time", OracleType = OracleType.VarChar, Value =v_exe_time },
|
|
};
|
|
OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.CreateBatchPici", param1.ToArray());
|
|
resut = true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.ToString());
|
|
LogHelper.Error("CreateBatchPici:" + ex.ToString());
|
|
}
|
|
return resut;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取推送批次
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataTable GetTsMsgSendPici()
|
|
{
|
|
DataTable table = null;
|
|
try
|
|
{
|
|
var para = new List<OracleParameter>();
|
|
para.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output });
|
|
table = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.GetTsMsgSendPici", para.ToArray()).Tables[0];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
}
|
|
return table;
|
|
}
|
|
/// <summary>
|
|
/// 根据批次获取详细数据
|
|
/// </summary>
|
|
/// <param name="pici">批次</param>
|
|
/// <returns></returns>
|
|
public DataTable GetTsMsgDetailByPici(decimal pici)
|
|
{
|
|
DataTable table = null;
|
|
try
|
|
{
|
|
var para = new List<OracleParameter>();
|
|
para.Add(new OracleParameter() { ParameterName = "v_pici", OracleType = OracleType.Number, Value = pici });
|
|
para.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output });
|
|
table = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.GetTsMsgDetailByPici", para.ToArray()).Tables[0];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
}
|
|
return table;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改批次推送状态
|
|
/// </summary>
|
|
/// <param name="v_pici">批次</param>
|
|
/// <param name="v_senddate">时间</param>
|
|
/// <param name="v_stutas">状态</param>
|
|
/// <param name="v_msg">推送结果</param>
|
|
/// <returns></returns>
|
|
public bool UpdateSendMsgStutas(decimal v_pici, DateTime v_senddate, decimal v_stutas, string v_msg)
|
|
{
|
|
bool resut = false;
|
|
try
|
|
{
|
|
var param1 = new List<OracleParameter>()
|
|
{
|
|
new OracleParameter() { ParameterName = "v_pici", OracleType = OracleType.Number, Value =v_pici },
|
|
new OracleParameter() { ParameterName = "v_senddate", OracleType = OracleType.DateTime, Value =v_senddate },
|
|
new OracleParameter() { ParameterName = "v_stutas", OracleType = OracleType.Number, Value =v_stutas },
|
|
new OracleParameter() { ParameterName = "v_msg", OracleType = OracleType.VarChar, Value =v_msg }
|
|
};
|
|
OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.UpdateSendMsgStutas", param1.ToArray());
|
|
resut = true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("UpdateSendMsgStutas:" + ex.ToString());
|
|
}
|
|
return resut;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 上传执行日志
|
|
/// </summary>
|
|
/// <param name="info">日志信息</param>
|
|
public void BatchMsgLogUP(batchmsg info, ref ValidationErrors errors)
|
|
{
|
|
|
|
OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn);
|
|
if (conn.State == ConnectionState.Closed)
|
|
conn.Open();
|
|
try
|
|
{
|
|
using (OracleTransaction trans = conn.BeginTransaction())
|
|
{
|
|
OracleParameter[] p =
|
|
{
|
|
new OracleParameter() { ParameterName = "v_pici", OracleType = OracleType.Number, Value =info.pici },
|
|
new OracleParameter() { ParameterName = "v_isStart", OracleType = OracleType.Number, Value =info.isStart },
|
|
new OracleParameter() { ParameterName = "v_startTime", OracleType = OracleType.DateTime, Value = DateTimeTool.GetTimeFromLinuxTime(info.starttime) },
|
|
new OracleParameter() { ParameterName = "v_isEnd", OracleType = OracleType.Number, Value =info.isEnd },
|
|
new OracleParameter() { ParameterName = "v_endTime", OracleType = OracleType.DateTime, Value =DateTimeTool.GetTimeFromLinuxTime(info.endTime) },
|
|
string.IsNullOrEmpty(info.remarks)?new OracleParameter() { ParameterName = "v_erromsg", OracleType = OracleType.VarChar, Value =DBNull.Value }:
|
|
new OracleParameter() { ParameterName = "v_erromsg", OracleType = OracleType.VarChar, Value =info.remarks }
|
|
};
|
|
OracleHelper.ExecuteNonQuery(trans, CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.UpdatePiciExecStatus", p);
|
|
|
|
if (info.detial != null)
|
|
{
|
|
foreach (batchmsg_detial model in info.detial)
|
|
{
|
|
OracleParameter[] mp =
|
|
{
|
|
new OracleParameter() { ParameterName = "v_pici", OracleType = OracleType.Number, Value =info.pici },
|
|
new OracleParameter() { ParameterName = "v_rid", OracleType = OracleType.Number, Value =model.rid },
|
|
new OracleParameter() { ParameterName = "v_status", OracleType = OracleType.Number, Value =model.status },
|
|
new OracleParameter() { ParameterName = "v_zitime", OracleType = OracleType.DateTime, Value =DateTimeTool.GetTimeFromLinuxTime(model.zitime) }
|
|
};
|
|
OracleHelper.ExecuteNonQuery(trans, CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.UpdateDetialStatus", mp);
|
|
}
|
|
}
|
|
trans.Commit();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
errors.Add(ex.ToString());
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
conn.Close();
|
|
}
|
|
|
|
}
|
|
/// <summary>
|
|
/// 加人日志查询
|
|
/// </summary>
|
|
/// <param name="v_eid">工号</param>
|
|
/// <param name="v_alias">微信号</param>
|
|
/// <param name="pager">分页信息</param>
|
|
/// <returns></returns>
|
|
public DataTable BatchMsgLogReport(Decimal v_eid, string v_alias, ref Pager pager)
|
|
{
|
|
OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn);
|
|
if (conn.State == ConnectionState.Closed)
|
|
conn.Open();
|
|
OracleTransaction trans = conn.BeginTransaction();
|
|
try
|
|
{
|
|
OracleParameter[] p2 =
|
|
{
|
|
new OracleParameter(){ ParameterName = "v_eid", OracleType = OracleType.Number, Value = v_eid},
|
|
string.IsNullOrEmpty(v_alias)?
|
|
new OracleParameter(){ ParameterName = "v_alias", OracleType = OracleType.VarChar, Value = DBNull.Value}:
|
|
new OracleParameter(){ ParameterName = "v_alias", OracleType = OracleType.VarChar, Value = v_alias},
|
|
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_total",OracleType=OracleType.Number,Direction = ParameterDirection.Output},
|
|
new OracleParameter(){ ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }
|
|
};
|
|
var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.BatchMsgLogReport", p2).Tables[0];
|
|
pager.totalRows = int.Parse(string.Format("{0}", p2.Single(m => m.ParameterName == "v_total").Value));
|
|
trans.Commit();
|
|
return ds;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
trans.Rollback();
|
|
throw;
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 批量详细详细日志
|
|
/// </summary>
|
|
/// <param name="v_pici"></param>
|
|
/// <returns></returns>
|
|
public DataTable LogReport_Detial(Decimal v_pici, string v_key)
|
|
{
|
|
OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn);
|
|
if (conn.State == ConnectionState.Closed)
|
|
conn.Open();
|
|
OracleTransaction trans = conn.BeginTransaction();
|
|
try
|
|
{
|
|
|
|
OracleParameter[] p2 =
|
|
{
|
|
new OracleParameter(){ ParameterName = "v_pici", OracleType = OracleType.Number, Value = v_pici},
|
|
new OracleParameter(){ ParameterName = "v_key", OracleType = OracleType.VarChar, Value = v_key},
|
|
new OracleParameter(){ ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }
|
|
};
|
|
var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.LogReport_Detial", p2).Tables[0];
|
|
trans.Commit();
|
|
return ds;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
trans.Rollback();
|
|
throw;
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 添加拉黑好友
|
|
/// </summary>
|
|
/// <param name="v_jobusername"></param>
|
|
/// <param name="v_username"></param>
|
|
/// <returns></returns>
|
|
public bool AddBlackFriend(string v_jobusername, string v_username)
|
|
{
|
|
bool resut = false;
|
|
try
|
|
{
|
|
var param1 = new List<OracleParameter>()
|
|
{
|
|
new OracleParameter() { ParameterName = "v_jobusername", OracleType = OracleType.VarChar, Value =v_jobusername },
|
|
new OracleParameter() { ParameterName = "v_username", OracleType = OracleType.VarChar, Value =v_username }
|
|
};
|
|
OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WX_TSBATCHMSG.AddBlackFriend", param1.ToArray());
|
|
resut = true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("AddBlackFriend:" + ex.ToString());
|
|
}
|
|
return resut;
|
|
}
|
|
}
|
|
}
|