Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }