/// <summary> /// 批量修改绑定客服 /// </summary> /// <param name="aid"></param> /// <param name="id"></param> /// <param name="customerId"></param> /// <returns></returns> public ActionResult SaveBindEmployee(int aid = 0, int id = 0, string customerId = "") { Return_Msg returnData = new Return_Msg(); if (id <= 0) { returnData.isok = false; returnData.Msg = "无效参数"; return(Json(returnData)); } if (string.IsNullOrEmpty(customerId)) { returnData.isok = false; returnData.Msg = "无效客户参数"; return(Json(returnData)); } customerId = customerId.Substring(0, customerId.Length - 1); QiyeEmployee employeeModel = QiyeEmployeeBLL.SingleModel.GetModel(id); if (employeeModel == null) { returnData.isok = false; returnData.Msg = "无效员工,请刷新重试!"; return(Json(returnData)); } returnData.isok = QiyeCustomerBLL.SingleModel.UpdateBindEmployee(id, customerId); returnData.Msg = returnData.isok ? "保存成功" : "保存失败"; return(Json(returnData)); }
/// <summary> /// 企业智推版员工获取联系人 /// </summary> /// <param name="fuserid"></param> /// <param name="appid"></param> /// <returns></returns> public List <ImMessage> GetListByQiye(int tuserId, string appid, int pageSize, int pageIndex, ref int count, string name) { string key = string.Format(redis_ListEmployeekey, tuserId); List <ImMessage> list = new List <ImMessage>(); List <ImMessage> redisList = RedisUtil.Get <List <ImMessage> >(key); if (redisList == null || redisList.Count <= 0 || pageIndex == 1) { redisList = new List <ImMessage>(); string sql = $"select {"{0}"} from ImContact im left join c_userinfo c on im.fuserid = c.id "; string sqlCount = string.Format(sql, "count(*)"); string sqlList = string.Format(sql, "im.*,c.NickName,c.HeadImgUrl"); string sqlWhere = $" where im.appid = '{appid}' and im.tuserid={tuserId}"; string sqlPage = "";//$" limit {(pageIndex - 1) * pageSize},{pageSize}"; List <MySqlParameter> parms = new List <MySqlParameter>(); if (!string.IsNullOrEmpty(name)) { sqlWhere += $" and (c.NickName like @name or c.TelePhone like @name)"; parms.Add(new MySqlParameter("@name", $"%{name}%")); } count = base.GetCountBySql(sqlCount + sqlWhere, parms.ToArray()); if (count <= 0) { return(redisList); } using (MySqlDataReader dr = SqlMySql.ExecuteDataReaderMaster(connName, CommandType.Text, sqlList + sqlWhere + sqlPage, parms.ToArray())) { while (dr.Read()) { ImContact tempmodel = base.GetModel(dr); ImMessage model = new ImMessage(); model.fuserId = tempmodel.fuserId; model.tuserId = tuserId; model.NoReadMessageCount = ImMessageBLL.SingleModel.GetUserNoReadCount(tuserId, tempmodel.fuserId); ImMessage imModel = ImMessageBLL.SingleModel.GetNewMessage(model.fuserId, tuserId, 0, 1); if (imModel != null) { model.LastMsg = imModel.msg; model.msgType = imModel.msgType; model.sendDate = imModel.sendDate; } model.CardImgUrl = dr["HeadImgUrl"].ToString(); model.CardName = dr["NickName"].ToString(); redisList.Add(model); } } string userIds = string.Join(",", redisList.Select(s => s.fuserId).Distinct()); List <QiyeCustomer> customerList = QiyeCustomerBLL.SingleModel.GetListByUserIds(userIds); if (customerList == null || customerList.Count <= 0) { return(redisList); } string empIds = string.Join(",", customerList.Select(s => s.StaffId).Distinct()); List <QiyeEmployee> employeeList = QiyeEmployeeBLL.SingleModel.GetListByIds(empIds); if (employeeList == null || employeeList.Count <= 0) { return(redisList); } foreach (ImMessage item in redisList) { QiyeCustomer customerModel = customerList.FirstOrDefault(f => f.UserId == item.fuserId); if (customerModel == null) { continue; } QiyeEmployee empModel = employeeList.FirstOrDefault(f => f.Id == customerModel.StaffId); if (empModel == null) { continue; } item.Desc = customerModel.Desc; item.EmployeeName = empModel.Name; } RedisUtil.Set <List <ImMessage> >(key, redisList); redisList = redisList.OrderByDescending(o => o.sendDate).ToList(); //list = redisList.Skip((pageIndex-1)*pageSize).Take(pageSize).ToList(); } list = redisList.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); return(list); }
/// <summary> /// 企业智推版获取客户与员工私信记录 /// </summary> /// <param name="tuserId"></param> /// <param name="pageSize"></param> /// <param name="pageIndex"></param> /// <param name="count"></param> /// <param name="name"></param> /// <returns></returns> public List <ImMessage> GetListByTuserId(int tuserId, int pageSize, int pageIndex, ref int count, string name) { List <ImMessage> list = new List <ImMessage>(); string sql = $"select {"{0}"} from (select * from immessage where tuserid={tuserId} group by fuserid) i left join c_userinfo c on i.fuserid=c.id"; string sqlCount = string.Format(sql, "count(*)"); //(select count(*) from immessage where tuserid={tuserId} and fuserid=i.fuserid and isread=0) messagecount,(select msg from immessage where tuserid = {tuserId} and fuserid = i.fuserid order by senddate DESC LIMIT 1) lastmsg, string sqlList = string.Format(sql, $@"i.*,c.NickName, c.HeadImgUrl, c.TelePhone"); string sqlWhere = $" where i.tuserid={tuserId}"; string sqlPage = $" limit {(pageIndex - 1) * pageSize},{pageSize}"; List <MySqlParameter> parms = new List <MySqlParameter>(); if (!string.IsNullOrEmpty(name)) { sqlWhere += $" and (c.NickName like @name or c.TelePhone like @name)"; parms.Add(new MySqlParameter("@name", $"%{name}%")); } count = base.GetCountBySql(sqlCount + sqlWhere, parms.ToArray()); if (count <= 0) { return(list); } using (MySqlDataReader dr = SqlMySql.ExecuteDataReaderMaster(connName, CommandType.Text, sqlList + sqlWhere + sqlPage, parms.ToArray())) { while (dr.Read()) { ImMessage model = base.GetModel(dr); model.NoReadMessageCount = GetNoReadCount(model.fuserId, tuserId); ImMessage imModel = GetNewMessage(model.fuserId, tuserId, 0, 1); if (imModel != null) { model.LastMsg = imModel.msg; model.msgType = imModel.msgType; } if (dr["HeadImgUrl"] != DBNull.Value) { model.CardImgUrl = dr["HeadImgUrl"].ToString(); } if (dr["NickName"] != DBNull.Value) { model.CardName = dr["NickName"].ToString(); } list.Add(model); } } string userIds = string.Join(",", list.Select(s => s.fuserId).Distinct()); List <QiyeCustomer> customerList = QiyeCustomerBLL.SingleModel.GetListByUserIds(userIds); if (customerList == null || customerList.Count <= 0) { return(list); } string empIds = string.Join(",", customerList.Select(s => s.StaffId).Distinct()); List <QiyeEmployee> employeeList = QiyeEmployeeBLL.SingleModel.GetListByIds(empIds); if (employeeList == null || employeeList.Count <= 0) { return(list); } foreach (ImMessage item in list) { QiyeCustomer customerModel = customerList.FirstOrDefault(f => f.UserId == item.fuserId); if (customerModel == null) { continue; } QiyeEmployee empModel = employeeList.FirstOrDefault(f => f.Id == customerModel.StaffId); if (empModel == null) { continue; } item.Desc = customerModel.Desc; item.EmployeeName = empModel.Name; } return(list); }