using System; using System.Collections.Generic; using System.Data; using System.Data.OracleClient; using WX.CRM.Common; using WX.CRM.Model.Entity; using WX.CRM.Model.MAP; namespace WX.CRM.DAL.Wx { public class WX_RCONTACT_DAL { public DataTable CountRcontactByWxJobUserName() { try { var sql = "select a.jobwxusername,b.alias,b.nickname,a.countnum from (select jobwxusername,count(1) as countnum from wx_rcontact where type in(1,3,5,7,257,259,67,65539) or type>11 or type is null group by jobwxusername) a left join wx_workaccount b on a.jobwxusername = b.username order by a.countnum desc"; var param = new List(); DataSet dest = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); throw; } } public void UpdateRcontactResId(string username, string resid, decimal inneruserid) { try { var sql = "update wx_rcontact t set t.resid =:resid,bindrestime=:ctime where t.username=:username and t.jobwxusername in(select username from wx_workaccount x where x.inneruserid=:innseruserid)"; var param = new List(); param.Add(new OracleParameter() { ParameterName = ":resid", OracleType = OracleType.VarChar, Value = resid }); param.Add(new OracleParameter() { ParameterName = ":ctime", OracleType = OracleType.DateTime, Value = DateTime.Now }); param.Add(new OracleParameter() { ParameterName = ":username", OracleType = OracleType.VarChar, Value = username }); param.Add(new OracleParameter() { ParameterName = ":innseruserid", OracleType = OracleType.Number, Value = inneruserid }); OracleHelper.ExecuteNonQuery(CommandType.Text, sql, param.ToArray()); } catch { throw; } } public DataTable GetRcontactList(string resid) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_resid", OracleType = OracleType.VarChar, Value = resid }); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WX_RCONTACT.GetRcontactByResId", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); throw; } } /// /// 导出微信号 /// /// /// /// /// public DataSet ExportWeiXinResource(DateTime beginTime, DateTime endTime, decimal? inneruserid) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = new[] { new OracleParameter() { ParameterName = "p_beginTime", OracleType = OracleType.DateTime, Value = beginTime }, new OracleParameter() { ParameterName = "p_endTime", OracleType = OracleType.DateTime, Value = endTime }, inneruserid.HasValue?new OracleParameter() { ParameterName = "p_userid", OracleType = OracleType.Number, Value = inneruserid }: new OracleParameter() { ParameterName = "p_userid", OracleType = OracleType.Number, Value = DBNull.Value }, new OracleParameter() { ParameterName = "p_tuiguangdata", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }, new OracleParameter() { ParameterName = "p_nottuiguangdata", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }, new OracleParameter() { ParameterName = "p_rcontactdata", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output } }; var ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX_REPORT.RcontactExport", p); trans.Commit(); return ds; } } catch { throw; } finally { conn.Close(); } } public DataTable GetChatUserByResId(string resid) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_resid", OracleType = OracleType.VarChar, Value = resid }); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WX_RCONTACT.GetChatUserByResId", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); throw; } } public DataTable GetChatQwByResId(string resid) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_resid", OracleType = OracleType.VarChar, Value = resid }); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WX_RCONTACT.GetChatQwByResId", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); throw; } } public DataTable GetChatUser(string resid, string username, string alias, string nickname, string conremark, string jobusername, string workalias, decimal? eid) { try { var param = new List { string.IsNullOrEmpty(resid) ? new OracleParameter() {ParameterName = "v_resid", OracleType = OracleType.VarChar, Value = DBNull.Value} : new OracleParameter() {ParameterName = "v_resid", OracleType = OracleType.VarChar, Value = resid}, string.IsNullOrEmpty(username) ? new OracleParameter() {ParameterName = "v_username", OracleType = OracleType.VarChar, Value = DBNull.Value} : new OracleParameter() {ParameterName = "v_username", OracleType = OracleType.VarChar, Value = username}, string.IsNullOrEmpty(alias) ? new OracleParameter() {ParameterName = "v_alias", OracleType = OracleType.VarChar, Value = DBNull.Value} : new OracleParameter() {ParameterName = "v_alias", OracleType = OracleType.VarChar, Value = alias}, string.IsNullOrEmpty(nickname) ? new OracleParameter() {ParameterName = "v_nickname", OracleType = OracleType.NVarChar, Value = DBNull.Value} : new OracleParameter() {ParameterName = "v_nickname", OracleType = OracleType.NVarChar, Value = nickname}, string.IsNullOrEmpty(conremark) ? new OracleParameter() {ParameterName = "v_conremark", OracleType = OracleType.NVarChar, Value = DBNull.Value} : new OracleParameter() {ParameterName = "v_conremark", OracleType = OracleType.NVarChar, Value = conremark}, string.IsNullOrEmpty(jobusername) ? new OracleParameter() {ParameterName = "v_jobusername", OracleType = OracleType.VarChar, Value = DBNull.Value} : new OracleParameter() {ParameterName = "v_jobusername", OracleType = OracleType.VarChar, Value = jobusername}, string.IsNullOrEmpty(workalias) ? new OracleParameter() {ParameterName = "v_workalias", OracleType = OracleType.VarChar, Value = DBNull.Value} : new OracleParameter() {ParameterName = "v_workalias", OracleType = OracleType.VarChar, Value = workalias}, eid.HasValue ? new OracleParameter() {ParameterName = "v_eid", OracleType = OracleType.Number, Value = DBNull.Value} : new OracleParameter() {ParameterName = "v_eid", OracleType = OracleType.Number, Value = DBNull.Value}, new OracleParameter() {ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output} }; DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WX_RCONTACT.GetChatUser", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); throw; } } public DataTable CountRcontactByInnerUserId() { try { var sql = "select c.inneruserid,d.eid,d.truename,c.countnum from (select b.inneruserid,count(1) as countnum from wx_rcontact a left join wx_workaccount b on a.jobwxusername = b.username group by b.inneruserid ) c left join bas_inneruser d on c.inneruserid = d.pkid order by c.countnum desc"; var param = new List(); DataSet dest = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); throw; } } public DataTable CountRcontactByUserGroup() { try { var sql = "select d.gid,e.gname,d.countnum from (select c.gid,count(1) as countnum from wx_friendsrelation a left join wx_workaccount b on a.jobusername = b.username left join bas_innerusergroup c on b.inneruserid = c.inneruserid where a.createtime>to_date('2016-12-1 00:00:01','yyyy-mm-dd hh24:mi:ss') and a.isinneruser=0 group by c.gid) d left join bas_innergroup e on d.gid=e.gid order by d.countnum desc"; var param = new List(); DataSet ds = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()); if (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { return ds.Tables[0]; } return new DataTable(); } catch (Exception ex) { LogHelper.Error(ex); throw; } } public DataTable CountSaleUserCommission() { try { var sql = " select (case when t2.saleuserid is null then t1.inneruserid else t2.saleuserid end) as saleuserid," + " sum(1 * ((case when t2.commissionratio is null then 100 else t2.commissionratio end)/ 100)) as totalcommission " + " from wx_szzyorder t1 left join wx_commissionrule t2 on t1.orderid = t2.orderid" + " where t1.isopen = 1 " + " group by (case when t2.saleuserid is null then t1.inneruserid else t2.saleuserid end) "; var param = new List(); DataSet ds = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()); if (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { return ds.Tables[0]; } return new DataTable(); } catch (Exception ex) { LogHelper.Error(ex); throw; } } public DataTable CountSaleGroupCommission() { try { var sql = "select sum(1 * ((case when t2.commissionratio is null then 100 else t2.commissionratio end)/ 100)) as totalcommission, " + " (case " + " when t5.oldgroupid is not null and t1.arrivaltime >= to_date('2016-1-1', 'yyyy-mm-dd') and t1.arrivaltime < t5.indate then t5.oldgroupid " + " when t5.oldgroupid is not null and t1.arrivaltime >= t5.indate and t1.arrivaltime < t5.outdate then t5.newgroupid " + " else (case when t3.gid is null then 0 else t3.gid end) " + " end) gid " + " from wx_szzyorder t1 " + " left join wx_commissionrule t2 on t1.orderid = t2.orderid " + " left join bas_innerusergroup t3 on(case when t2.saleuserid is null then t1.inneruserid else t2.saleuserid end) = t3.inneruserid " + " left join (select * from bas_usergroupchangelog l where l.indate >= to_date('2016-1-1', 'yyyy-mm-dd') and l.oldgroupid is not null) t5 on t3.inneruserid = t5.salesid " + " where t1.isopen = 1 " + " group by (case " + " when t5.oldgroupid is not null and t1.arrivaltime >= to_date('2016-1-1', 'yyyy-mm-dd') and t1.arrivaltime < t5.indate then t5.oldgroupid " + " when t5.oldgroupid is not null and t1.arrivaltime >= t5.indate and t1.arrivaltime < t5.outdate then t5.newgroupid " + " else (case when t3.gid is null then 0 else t3.gid end) " + " end)"; var param = new List(); DataSet ds = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()); if (ds != null && ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { return ds.Tables[0]; } return new DataTable(); } catch (Exception ex) { LogHelper.Error(ex); throw; } } /// /// 推送数据到推广 /// /// 用户名 /// 工作微信username /// 返回PICI public decimal pushRcontactToTG(string v_username, string v_jobusername) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); decimal pici = 0; DataSet ds = null; if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = { new OracleParameter("v_username",OracleType.VarChar), new OracleParameter("v_jobusername",OracleType.VarChar), new OracleParameter(){ParameterName="v_data",OracleType=OracleType.Cursor,Direction = ParameterDirection.Output}, }; p[0].Value = v_username; p[1].Value = v_jobusername; ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX.pushRcontactToTG", p); trans.Commit(); if (ds != null && ds.Tables[0].Rows.Count > 0) pici = Convert.ToDecimal(ds.Tables[0].Rows[0]["pici"]); } } catch (Exception ex) { LogHelper.Error(ex); } finally { if (conn.State == ConnectionState.Open) conn.Close(); } return pici; } /// /// 从message表中提取好友关系被加数据 /// /// 好友username /// 工作微信 /// msgSvrId /// 内容 /// 时间 /// public decimal extractToBeFriendsDataFromMsg(decimal type, string v_username, string v_jobusername, DateTime v_createTime, ref bool ret) { OracleConnection conn = new OracleConnection(OracleHelper.AYCRMConn); decimal pici = 0; DataSet ds = null; if (conn.State == ConnectionState.Closed) conn.Open(); try { using (OracleTransaction trans = conn.BeginTransaction()) { OracleParameter[] p = { new OracleParameter("v_type", OracleType.Number), new OracleParameter("v_username", OracleType.VarChar), new OracleParameter("v_jobusername", OracleType.VarChar), new OracleParameter("v_createTime", OracleType.DateTime), new OracleParameter() {ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output}, }; p[0].Value = type; p[1].Value = v_username; p[2].Value = v_jobusername; p[3].Value = v_createTime; ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WXMSG.extractToBeFriendsDataFromMsg2", p); trans.Commit(); if (ds != null && ds.Tables[0].Rows.Count > 0) pici = Convert.ToDecimal(ds.Tables[0].Rows[0]["pici"]); } } catch (Exception ex) { ret = false; LogHelper.Error(ex.ToString()); } finally { if (conn.State == ConnectionState.Open) conn.Close(); } return pici; } public DataTable RcontactByDayReport(DateTime? beginTime, DateTime? endTime, decimal? type) { var conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (var trans = conn.BeginTransaction()) { var parms = new List() { type.HasValue ? new OracleParameter() { ParameterName = "p_type", OracleType = OracleType.Number, Value = type.Value } : new OracleParameter() { ParameterName = "p_type", OracleType = OracleType.Number, Value = 0 }, 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_WX_REPORT.RcontactByDay", parms.ToArray()); trans.Commit(); return ds.Tables[0]; } } catch (Exception ex) { LogHelper.Error(ex); return null; } finally { conn.Close(); } } public DataSet GetWebChatResourceList(DateTime? beginTime, DateTime? endTime, decimal? type) { var conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (var trans = conn.BeginTransaction()) { var parms = new List() { type.HasValue ? new OracleParameter() { ParameterName = "v_type", OracleType = OracleType.Number, Value = type.Value } : new OracleParameter() { ParameterName = "v_type", OracleType = OracleType.Number, Value = 0 }, beginTime.HasValue ? new OracleParameter() { ParameterName = "v_stime", OracleType = OracleType.DateTime, Value = beginTime.Value } : new OracleParameter() { ParameterName = "v_stime", OracleType = OracleType.DateTime, Value = DBNull.Value }, endTime.HasValue ? new OracleParameter() { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value = endTime.Value } : new OracleParameter() { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value = DBNull.Value }, new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }, }; DataSet ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX_REPORT.GetWebChatResourceList", parms.ToArray()); trans.Commit(); return ds; } } catch (Exception ex) { LogHelper.Error(ex); return null; } finally { conn.Close(); } } public DataSet GetWebChatResourceDetail(DateTime? beginTime, DateTime? endTime, string jobUsername) { var conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (var trans = conn.BeginTransaction()) { var parms = new List() { beginTime.HasValue ? new OracleParameter() { ParameterName = "v_stime", OracleType = OracleType.DateTime, Value = beginTime.Value } : new OracleParameter() { ParameterName = "v_stime", OracleType = OracleType.DateTime, Value = DBNull.Value }, endTime.HasValue ? new OracleParameter() { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value = endTime.Value } : new OracleParameter() { ParameterName = "v_etime", OracleType = OracleType.DateTime, Value = DBNull.Value }, new OracleParameter() { ParameterName = "v_jobusername", OracleType = OracleType.VarChar, Value=jobUsername }, new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }, }; DataSet ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX_REPORT.GetWebChatResourceDetail", parms.ToArray()); trans.Commit(); return ds; } } catch (Exception ex) { LogHelper.Error(ex); return null; } finally { conn.Close(); } } public DataTable RcontactByUserAndDay(DateTime beginTime, DateTime endTime, decimal? type) { var conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (var trans = conn.BeginTransaction()) { var parms = new List() { type.HasValue ? new OracleParameter() { ParameterName = "p_type", OracleType = OracleType.Number, Value = type.Value } : new OracleParameter() { ParameterName = "p_type", OracleType = OracleType.Number, Value = 0 }, 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_WX_REPORT.RcontactByUserAndDay", parms.ToArray()); trans.Commit(); return ds.Tables[0]; } } catch (Exception ex) { LogHelper.Error(ex); return null; } finally { conn.Close(); } } public DataTable RcontactByTag(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() { 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_WX_REPORT.RcontactByTag", parms.ToArray()); trans.Commit(); return ds.Tables[0]; } } catch (Exception ex) { LogHelper.Error(ex); return null; } finally { conn.Close(); } } public int ResourceByTagDistinctCount(DateTime beginTime, string tag) { int count = 0; var conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (var trans = conn.BeginTransaction()) { var parms = new List() { new OracleParameter() { ParameterName = "v_date", OracleType = OracleType.DateTime, Value = beginTime }, string.IsNullOrEmpty(tag)? new OracleParameter() { ParameterName = "v_tag", OracleType = OracleType.VarChar, Value = DBNull.Value }: new OracleParameter() { ParameterName = "v_tag", OracleType = OracleType.VarChar, Value = tag }, new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output } }; DataSet ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX_REPORT.ResourceByTagDistinctCount", parms.ToArray()); trans.Commit(); count = Convert.ToInt32(ds.Tables[0].Rows[0]["ncount"]); } } catch (Exception ex) { LogHelper.Error(ex); } finally { conn.Close(); } return count; } public int ResourceByNameDistinctCount(DateTime beginTime, string tag, decimal? groupid) { int count = 0; var conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (var trans = conn.BeginTransaction()) { var parms = new List() { new OracleParameter() { ParameterName = "v_date", OracleType = OracleType.DateTime, Value = beginTime }, string.IsNullOrEmpty(tag)? new OracleParameter() { ParameterName = "v_tag", OracleType = OracleType.VarChar, Value = DBNull.Value }: new OracleParameter() { ParameterName = "v_tag", OracleType = OracleType.VarChar, Value = tag }, !groupid.HasValue? new OracleParameter() { ParameterName = "v_groupid", OracleType = OracleType.Number, Value = DBNull.Value }: new OracleParameter() { ParameterName = "v_groupid", OracleType = OracleType.Number, Value = groupid }, new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output } }; DataSet ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX_REPORT.ResourceByNameDistinctCount", parms.ToArray()); trans.Commit(); count = Convert.ToInt32(ds.Tables[0].Rows[0]["ncount"]); } } catch (Exception ex) { LogHelper.Error(ex); } finally { conn.Close(); } return count; } public Wx_MsgConfig GetMsgConfig(string username) { Wx_MsgConfig config = new Wx_MsgConfig(); if (username.IndexOf("@@") > -1) return GetDbUpMsgConfig(username); try { config.fileCreateTime = 0; config.createTime = 0; var sql = "select max(createtime)createtime from wx_friendsrelation where jobusername=:jobusername"; var param = new List(); param.Add(new OracleParameter() { ParameterName = ":jobusername", OracleType = OracleType.VarChar, Value = username }); DataTable tab = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()).Tables[0]; if (tab.Rows.Count > 0) { if (!(tab.Rows[0]["createtime"] is DBNull)) config.friendCreateTime = Convert.ToDateTime(tab.Rows[0]["createtime"]); } sql = @"select ( select max(createtime) from dbo.wx_gen_message t where t.type in(10000,1) and t.username='" + username + @"' ) createTime, ( select max(clientid) from dbo.wx_gen_msqunfa t where t.jobusername='" + username + @"' )fileCreateTime "; DataTable tab2 = SqlHelper.Query(SqlHelper.DatabaseType.AYCRM, sql).Tables[0]; if (tab2.Rows.Count > 0) { if (!(tab2.Rows[0]["createTime"] is DBNull)) config.createTime = Convert.ToInt64(tab2.Rows[0]["createTime"]); if (!(tab2.Rows[0]["fileCreateTime"] is DBNull)) config.fileCreateTime = Convert.ToInt64(tab2.Rows[0]["fileCreateTime"]); } } catch (Exception ex) { throw; } return config; } private Wx_MsgConfig GetDbUpMsgConfig(string username) { username = username.Replace("@@", ""); Wx_MsgConfig config = new Wx_MsgConfig(); try { config.createTime = 0; config.fileCreateTime = 0; var sql = "select CREATETIME,QUNFACLIENTID from WX_UPLOADMAXCREATETIME where USERNAME=:jobusername"; var param = new List(); param.Add(new OracleParameter() { ParameterName = ":jobusername", OracleType = OracleType.VarChar, Value = username }); DataTable tab = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()).Tables[0]; if (tab.Rows.Count > 0) { if (!(tab.Rows[0]["createtime"] is DBNull)) config.createTime = Convert.ToInt64(tab.Rows[0]["createtime"]); if (!(tab.Rows[0]["QUNFACLIENTID"] is DBNull)) config.fileCreateTime = Convert.ToInt64(tab.Rows[0]["QUNFACLIENTID"]); } } catch (Exception xx) { } return config; } public bool WxDbUploadLog(WX_DBUPLOADLOG model, long createTime, DateTime createTimewin, string qunfaclientid) { try { var para = new List(); para.Add(new OracleParameter() { ParameterName = "v_username", OracleType = OracleType.VarChar, Value = model.USERNAME }); para.Add(new OracleParameter() { ParameterName = "v_password", OracleType = OracleType.VarChar, Value = model.PASSWORD }); para.Add(new OracleParameter() { ParameterName = "v_filepath", OracleType = OracleType.VarChar, Value = model.DBFILE }); para.Add(new OracleParameter() { ParameterName = "v_copytime", OracleType = OracleType.DateTime, Value = model.COPYTIME }); para.Add(new OracleParameter() { ParameterName = "v_msgCreatetime", OracleType = OracleType.Number, Value = createTime }); para.Add(new OracleParameter() { ParameterName = "v_msgCreatetimewin", OracleType = OracleType.DateTime, Value = createTimewin }); para.Add(new OracleParameter() { ParameterName = "v_qunfaclientid", OracleType = OracleType.VarChar, Value = qunfaclientid }); OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WX_DB.WxDbUploadLog", para.ToArray()); return true; } catch (Exception ex) { LogHelper.Error(ex.ToString()); return false; } } /// /// 获取 /// /// public DataSet GetJobWeiXinLastFriendList() { try { var sql = "select JobUserName,CreateTime from (select rank() over(partition by jobusername order by createtime desc) r,a.* from wx_friendsrelation a) where r=1"; var param = new List(); return OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()); } catch (Exception ex) { LogHelper.Error(ex); throw; } } public decimal GetDistinctWeiXinFriendCount(string day, decimal? type, decimal? saleDeptId) { try { if (!type.HasValue) { type = 0; } //默认读取全部 var sql = "select count(distinct username) from wx_friendsrelation t where t.type in(1,2) and t.isworkacount=1 and t.istuiguang=1 and t.isinneruser=0 and to_char(t.createtime,'yyyy-mm-dd')=:day and username not in(select username from wx_friendsrelation where createtime" + saleDeptId; } else if (type == 3) { sql = "select count(distinct t.username) from wx_friendsrelation t " + "left join wx_workaccount w on t.jobusername=w.username " + "left join bas_innerusergroup ug on w.inneruserid = ug.inneruserid " + "left join bas_innergroup gg on ug.gid = gg.gid " + "where t.type in(1,2) and t.isworkacount=1 and t.istuiguang=1 and t.isinneruser=0 and to_char(t.createtime,'yyyy-mm-dd')=:day and t.username not in(select username from wx_friendsrelation where createtime 0) { return Convert.ToDecimal(ds.Tables[0].Rows[0][0]); } else { return 0; } } catch (Exception ex) { LogHelper.Error(ex); throw; } } public DataSet GetWeixinFriendCount(decimal type) { var conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (var trans = conn.BeginTransaction()) { var parms = new List() { new OracleParameter() {ParameterName="p_type",OracleType=OracleType.Number,Value=type }, new OracleParameter() { ParameterName = "p_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output } }; DataSet ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WX.getWeixinFriendCount2", parms.ToArray()); trans.Commit(); return ds; } } catch (Exception ex) { LogHelper.Error(ex); return null; } finally { conn.Close(); } } public void UpadteUserPoint(decimal eid, decimal piont) { try { var para = new List(); para.Add(new OracleParameter() { ParameterName = "v_eid", OracleType = OracleType.Number, Value = eid }); para.Add(new OracleParameter() { ParameterName = "v_point", OracleType = OracleType.Number, Value = piont }); OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WX.UpdaePoint", para.ToArray()); } catch (Exception ex) { LogHelper.Error(ex.ToString()); throw; } } public void ComputeToPushData(string eids, decimal type) { try { var para = new List(); para.Add(new OracleParameter() { ParameterName = "p_type", OracleType = OracleType.Number, Value = type }); para.Add(new OracleParameter() { ParameterName = "v_eids", OracleType = OracleType.VarChar, Value = eids }); OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WX.ComputeToPushData", para.ToArray()); } catch (Exception ex) { LogHelper.Error(ex.ToString()); throw; } } public DataSet GetRcontactUserNameCount(string stime, string etime, string usernameList) { try { var sql = "select username,count(1) as num from wx_rcontact where username in(" + usernameList + ") and ctime >to_date(:stime,'yyyy-mm-dd hh24:mi:ss') and ctime 11) group by username"; var param = new List() { new OracleParameter() {ParameterName="stime",OracleType=OracleType.VarChar,Value=stime }, new OracleParameter() {ParameterName="etime",OracleType=OracleType.VarChar,Value=etime } }; DataSet ds = OracleHelper.DataQueray(CommandType.Text, sql, param.ToArray()); return ds; } catch (Exception ex) { LogHelper.Error(ex); throw; } } /// /// 获取工作微信的订单客户 /// /// /// public DataTable GetOrderUserName(string jobusername) { var conn = new OracleConnection(OracleHelper.AYCRMConn); if (conn.State == ConnectionState.Closed) conn.Open(); try { using (var trans = conn.BeginTransaction()) { var parms = new List() { new OracleParameter() {ParameterName="v_username",OracleType=OracleType.VarChar,Value=jobusername }, new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output } }; DataSet ds = OracleHelper.DataQueray(trans, CommandType.StoredProcedure, "PACK_WXMSG.GetOrderUserName", parms.ToArray()); trans.Commit(); return ds.Tables[0]; } } catch (Exception ex) { LogHelper.Error(ex); return null; } finally { conn.Close(); } } } }