using System; using System.Collections.Generic; using System.Data; using System.Data.OracleClient; using WX.CRM.Common; namespace WX.CRM.DAL.weapp { public class WX_UserInfo_DAL { #region 头像维护 public bool weapp_userinfo_Storage(string v_openid, string v_nickname, int v_gender, string v_language, string v_city, string v_province, string v_country, string v_avatarurl, int v_infotype, string v_unionid, int? Subscribe, DateTime? SubscribeTime, string AccountNum) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_openid", OracleType = OracleType.VarChar, Value =v_openid }, string.IsNullOrEmpty(v_nickname)? new OracleParameter() { ParameterName = "v_nickname", OracleType = OracleType.VarChar, Value =DBNull.Value }: new OracleParameter() { ParameterName = "v_nickname", OracleType = OracleType.VarChar, Value =v_nickname }, new OracleParameter() { ParameterName = "v_gender", OracleType = OracleType.Number, Value = v_gender }, string.IsNullOrEmpty(v_nickname)?new OracleParameter() { ParameterName = "v_language", OracleType = OracleType.VarChar, Value = DBNull.Value }:new OracleParameter() { ParameterName = "v_language", OracleType = OracleType.VarChar, Value = v_language }, string.IsNullOrEmpty(v_city)? new OracleParameter() { ParameterName = "v_city", OracleType = OracleType.VarChar, Value = DBNull.Value }:new OracleParameter() { ParameterName = "v_city", OracleType = OracleType.VarChar, Value = v_city }, string.IsNullOrEmpty(v_province)?new OracleParameter() { ParameterName = "v_province", OracleType = OracleType.VarChar, Value = DBNull.Value }:new OracleParameter() { ParameterName = "v_province", OracleType = OracleType.VarChar, Value = v_province }, string.IsNullOrEmpty(v_country)?new OracleParameter() { ParameterName = "v_country", OracleType = OracleType.VarChar, Value = DBNull.Value }:new OracleParameter() { ParameterName = "v_country", OracleType = OracleType.VarChar, Value = v_country }, string.IsNullOrEmpty(v_avatarurl)? new OracleParameter() { ParameterName = "v_avatarurl", OracleType = OracleType.VarChar, Value = DBNull.Value }: new OracleParameter() { ParameterName = "v_avatarurl", OracleType = OracleType.VarChar, Value = v_avatarurl }, new OracleParameter() { ParameterName = "v_infotype", OracleType = OracleType.Number, Value = v_infotype }, string.IsNullOrEmpty(v_unionid)? new OracleParameter() { ParameterName = "v_unionid", OracleType = OracleType.VarChar, Value = DBNull.Value }: new OracleParameter() { ParameterName = "v_unionid", OracleType = OracleType.VarChar, Value = v_unionid }, Subscribe.HasValue?new OracleParameter() { ParameterName = "v_Subscribe", OracleType = OracleType.Number, Value = Subscribe }:new OracleParameter() { ParameterName = "v_Subscribe", OracleType = OracleType.Number, Value = DBNull.Value }, SubscribeTime.HasValue? new OracleParameter() { ParameterName = "v_SubscribeTime", OracleType = OracleType.DateTime, Value = SubscribeTime }: new OracleParameter() { ParameterName = "v_SubscribeTime", OracleType = OracleType.DateTime, Value = DBNull.Value }, new OracleParameter() { ParameterName = "v_AccountNum", OracleType = OracleType.VarChar, Value = AccountNum }, }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP.weapp_userinfo_Storage", param.ToArray()); } catch { result = false; throw; } return result; } public bool Img_flat_Storage(string v_username, int v_imgflag, long v_lastupdatetime, string v_url1, string v_url2, string v_url3, string v_url4) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_username", OracleType = OracleType.VarChar, Value =v_username }, new OracleParameter() { ParameterName = "v_imgflag", OracleType = OracleType.Number, Value =v_imgflag }, new OracleParameter() { ParameterName = "v_lastupdatetime", OracleType = OracleType.Number, Value = v_lastupdatetime }, new OracleParameter() { ParameterName = "v_url1", OracleType = OracleType.VarChar, Value = v_url1 }, new OracleParameter() { ParameterName = "v_url2", OracleType = OracleType.VarChar, Value = v_url2 }, new OracleParameter() { ParameterName = "v_url3", OracleType = OracleType.VarChar, Value = v_url3 }, new OracleParameter() { ParameterName = "v_url4", OracleType = OracleType.VarChar, Value = v_url4 }, }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP.Img_flat_Storage", param.ToArray()); } catch { result = false; throw; } return result; } /// /// 获取用户头像信息 /// /// 打开ID /// public DataTable GetUserHeadInfo(string openid) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_openid", OracleType = OracleType.VarChar, Value = openid }); param.Add(new OracleParameter() { ParameterName = "v_sqldata", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP.GetUserheaderByOpenId", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } /// /// 获取分配的售后服务人员 /// /// 打开ID /// public DataTable GetFenPeiCustomerService(int type, string openid, string onlineUser, string accountnum, string fenpei) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_type", OracleType = OracleType.Number, Value = type }); param.Add(new OracleParameter() { ParameterName = "v_openid", OracleType = OracleType.VarChar, Value = openid }); param.Add(new OracleParameter() { ParameterName = "v_lineUser", OracleType = OracleType.VarChar, Value = onlineUser }); param.Add(new OracleParameter() { ParameterName = "v_accountnum", OracleType = OracleType.VarChar, Value = accountnum }); param.Add(new OracleParameter() { ParameterName = "v_sqldata", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP." + fenpei, param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } public DataSet GetCustomerInfoByOpenId(string openid) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_openid", OracleType = OracleType.VarChar, Value = openid }); param.Add(new OracleParameter() { ParameterName = "v_CustoermResData", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); param.Add(new OracleParameter() { ParameterName = "v_ChatListData", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP.GetCustomerInfoByOpenId", param.ToArray()); return dest; } catch (Exception ex) { LogHelper.Error(ex); } return null; } #endregion #region 微信客户头像MD5获取 /// /// 获取用户头像信息 /// /// 打开ID /// public DataTable Get_ImgFlagForDownLoad() { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP_FLAG.Get_ImgFlag", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } /// /// 修改数据 /// /// /// /// /// public bool Upadte_ImgFlag(string v_username, string v_md5, string v_file) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_username", OracleType = OracleType.VarChar, Value =v_username }, new OracleParameter() { ParameterName = "v_md5", OracleType = OracleType.VarChar, Value =v_md5 }, new OracleParameter() { ParameterName = "v_file", OracleType = OracleType.VarChar, Value = v_file }, }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP_FLAG.Upadte_ImgFlag", param.ToArray()); } catch { result = false; throw; } return result; } #endregion #region 公众号小程序头像MD5获取 /// /// 获取用户头像信息 /// /// 打开ID /// public DataTable Get_WeapUserInfo() { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP_FLAG.Get_WeapUserInfo", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } /// /// 修改数据 /// /// /// /// /// public bool Up_WeapImgFlag(string v_openid, string v_md5, string v_file) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_openid", OracleType = OracleType.VarChar, Value =v_openid }, new OracleParameter() { ParameterName = "v_md5", OracleType = OracleType.VarChar, Value =v_md5 }, new OracleParameter() { ParameterName = "v_file", OracleType = OracleType.VarChar, Value = v_file }, }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP_FLAG.Up_WeapImgFlag", param.ToArray()); } catch { result = false; throw; } return result; } #endregion #region 获取微信公众号 /// /// 获取微信公众号列表 以及分配过程 /// /// public DataTable GetWxAccount() { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP.GetWxAccount", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } #endregion #region 登录获取好友列表 public DataTable GetFriends(decimal eid, string accountnum) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_eid", OracleType = OracleType.VarChar, Value = eid }); param.Add(new OracleParameter() { ParameterName = "v_accountnum", OracleType = OracleType.VarChar, Value = accountnum }); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP.OnLogonGetFriends", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } #endregion #region 客服在线维护 /// /// 获取在线人员 /// /// public DataTable GetOnlineUser() { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP_LINE.GetOnlineUser", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } /// /// 客服上线 /// /// /// /// /// /// /// /// public bool Logon(string v_ConnectionId, string v_UserID, string v_UserName, string v_DeptName, DateTime v_LoginTime, string v_accountNum) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_ConnectionId", OracleType = OracleType.VarChar, Value =v_ConnectionId }, new OracleParameter() { ParameterName = "v_UserID", OracleType = OracleType.VarChar, Value =v_UserID }, new OracleParameter() { ParameterName = "v_UserName", OracleType = OracleType.VarChar, Value = v_UserName }, new OracleParameter() { ParameterName = "v_DeptName", OracleType = OracleType.VarChar, Value = v_DeptName }, new OracleParameter() { ParameterName = "v_LoginTime", OracleType = OracleType.DateTime, Value = v_LoginTime }, new OracleParameter() { ParameterName = "v_accountNum", OracleType = OracleType.VarChar, Value = v_accountNum } }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP_LINE.Logon", param.ToArray()); } catch { result = false; throw; } return result; } /// /// 客服离线 /// /// /// /// public bool UnLogon(string v_UserId, string v_accountNum) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_UserID", OracleType = OracleType.VarChar, Value =v_UserId }, new OracleParameter() { ParameterName = "v_accountNum", OracleType = OracleType.VarChar, Value = v_accountNum } }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP_LINE.UnLogon", param.ToArray()); } catch { result = false; throw; } return result; } #endregion #region 关联公众号客户的Resid /// /// 关联公众号客户的Resid /// /// /// /// public bool SetWeapUserResId(string v_resid, string v_openid) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_resid", OracleType = OracleType.VarChar, Value =v_resid }, new OracleParameter() { ParameterName = "v_openid", OracleType = OracleType.VarChar, Value = v_openid } }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP.SetWeapUserResId", param.ToArray()); } catch { result = false; throw; } return result; } #endregion #region 维护关注状态 public bool weapp_update_subscribe(string v_openid, string v_subType, DateTime v_time, string v_AccountNum) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_openid", OracleType = OracleType.VarChar, Value = v_openid }, new OracleParameter() { ParameterName = "v_subType", OracleType = OracleType.VarChar, Value = v_subType }, new OracleParameter() { ParameterName = "v_time", OracleType = OracleType.DateTime, Value = v_time }, new OracleParameter() { ParameterName = "v_AccountNum", OracleType = OracleType.VarChar, Value = v_AccountNum } }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP.weapp_update_subscribe", param.ToArray()); } catch { result = false; throw; } return result; } #endregion #region 修改发送时间 public bool UpdateSendTime(string v_openid, DateTime v_ctime, string v_AccountNum, decimal eid) { bool result = true; try { var param = new List { new OracleParameter() { ParameterName = "v_openid", OracleType = OracleType.VarChar, Value = v_openid }, new OracleParameter() { ParameterName = "v_ctime", OracleType = OracleType.DateTime, Value = v_ctime }, new OracleParameter() { ParameterName = "v_accountnum", OracleType = OracleType.VarChar, Value = v_AccountNum }, new OracleParameter() { ParameterName = "v_eid", OracleType = OracleType.Number, Value = eid } }; OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_WEAPP.UpdateSendTime", param.ToArray()); } catch (Exception x) { result = false; LogHelper.Error("错误=>v_openid:" + v_openid + ",v_ctime:" + v_ctime + ",v_AccountNum:" + v_AccountNum + ",eid:" + eid + x.ToString()); } return result; } #endregion public int BindResIdByOpenId(string openId, string resId, decimal resIdVerify, ref ValidationErrors errors) { int result = 0; try { var sql = "update WEAPP_USERINFO set resid=:resid,residverify=:residverify where openid=:openid and (residverify=0 or residverify is null)"; var param = new List() { new OracleParameter() { ParameterName="resid",OracleType= OracleType.VarChar,Value=resId}, new OracleParameter() {ParameterName="residverify",OracleType = OracleType.VarChar,Value=resIdVerify }, new OracleParameter() {ParameterName="openid",OracleType = OracleType.VarChar,Value=openId }, }; result = OracleHelper.ExecuteNonQuery(CommandType.Text, sql, param.ToArray()); } catch (Exception ex) { LogHelper.Error(ex); errors.Add(ex.ToString()); } return result; } #region /// /// 关联公众号客户的Resid /// /// /// /// public DataTable TransferEid(int fromEid, int toEid, string openId, string accountNum) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_fromEid", OracleType = OracleType.Number, Value = fromEid }); param.Add(new OracleParameter() { ParameterName = "v_toEid", OracleType = OracleType.Number, Value = toEid }); param.Add(new OracleParameter() { ParameterName = "v_openId", OracleType = OracleType.VarChar, Value = openId }); param.Add(new OracleParameter() { ParameterName = "v_accountNum", OracleType = OracleType.VarChar, Value = accountNum }); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP_OP.TransferEid", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } #endregion /// /// 获取员工对应的公众号 /// /// /// public DataTable GetUserAccount(decimal eid) { try { var param = new List(); param.Add(new OracleParameter() { ParameterName = "v_eid", OracleType = OracleType.Number, Value = eid }); param.Add(new OracleParameter() { ParameterName = "v_data", OracleType = OracleType.Cursor, Direction = ParameterDirection.Output }); DataSet dest = OracleHelper.DataQueray(CommandType.StoredProcedure, "PACK_WEAPP_OP.GetUserAccount", param.ToArray()); return dest.Tables[0]; } catch (Exception ex) { LogHelper.Error(ex); } return null; } } }