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 { /// /// 获取 工作微信好友列表(用于消息助手,好友选择) /// /// /// /// /// /// /// /// /// /// public List 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 list = new List(); try { var param1 = new List() { 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(); 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; } /// /// 提交发送批次 /// /// Rcontact的pkid集合 /// 工作微信号 /// 发送内容 /// 时间类型 /// 执行日期 /// 执行时间 /// 错误信息 /// 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() { 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; } /// /// 获取推送批次 /// /// public DataTable GetTsMsgSendPici() { DataTable table = null; try { var para = new List(); 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; } /// /// 根据批次获取详细数据 /// /// 批次 /// public DataTable GetTsMsgDetailByPici(decimal pici) { DataTable table = null; try { var para = new List(); 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; } /// /// 修改批次推送状态 /// /// 批次 /// 时间 /// 状态 /// 推送结果 /// public bool UpdateSendMsgStutas(decimal v_pici, DateTime v_senddate, decimal v_stutas, string v_msg) { bool resut = false; try { var param1 = new List() { 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; } /// /// 上传执行日志 /// /// 日志信息 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(); } } /// /// 加人日志查询 /// /// 工号 /// 微信号 /// 分页信息 /// 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(); } } } /// /// 批量详细详细日志 /// /// /// 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(); } } } /// /// 添加拉黑好友 /// /// /// /// public bool AddBlackFriend(string v_jobusername, string v_username) { bool resut = false; try { var param1 = new List() { 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; } } }