示例#1
0
        public JsonResult Dissolve(int id)
        {
            JsonModel jm = new JsonModel();

            try
            {
                ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

                var sc = socialCircleBLL.GetEntity(s => s.Id == id);
                if (sc != null)
                {
                    if (sc.CreaterId == GetCurrentUser().Id)
                    {
                        if (!socialCircleBLL.Dissolve(sc))
                        {
                            jm.Msg = "解散失败";
                        }
                    }
                    else
                    {
                        jm.Msg = "只有创建人自己才能解散圈子";
                    }
                }
                else
                {
                    jm.Msg = "圈子已不存在";
                }
            }
            catch
            {
                jm.Msg = "请求发生异常";
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        public JsonResult UpdateContent(EditContentModel model)
        {
            JsonModel jm = new JsonModel();

            try
            {
                ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

                var sc = socialCircleBLL.GetEntity(s => s.Id == model.Id);
                if (sc != null)
                {
                    //修改名称
                    sc.Content = model.Content;
                    socialCircleBLL.Update(sc);
                }
                else
                {
                    jm.Msg = "圈子已不存在";
                }
            }
            catch
            {
                jm.Msg = "请求发生异常";
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        public JsonResult Create(SocialCircleModel model)
        {
            JsonModel jm = new JsonModel();

            try
            {
                var returnImg = GetMultimedia(ConstantParam.SOCIAL_CIRCLE_HEAD_DIR, model.HeadImg);

                ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

                T_SocialCircle socialCircle = new T_SocialCircle()
                {
                    Name        = model.Name,
                    Content     = model.Content,
                    CreaterId   = GetCurrentUser().Id,
                    CreateTime  = DateTime.Now,
                    PlaceId     = model.PlaceId,
                    HeadImgPath = returnImg
                };
                socialCircleBLL.Save(socialCircle);
            }
            catch
            {
                jm.Msg = "请求发生异常";
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
示例#4
0
        public ActionResult ReceiveMassTextingDetail(int id)
        {
            WeixinApiInit();
            var Owner = GetCurrentUser();

            //将该圈子发给当前用户的群发消息改为已读
            IUserSocialCircleMassTextingBLL usMassTextingBll = BLLFactory <IUserSocialCircleMassTextingBLL> .GetBLL("UserSocialCircleMassTextingBLL");

            var usMassTextings = usMassTextingBll.GetList(um => um.UserId == Owner.Id && um.SocialCircleMassTexting.SocialCircleId == id && um.IsNoRead).ToList();

            foreach (var texting in usMassTextings)
            {
                texting.IsNoRead = false;
                usMassTextingBll.Update(texting);
            }
            //获取指定圈子的信息
            ISocialCircleBLL socialCircleBll = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var sc = socialCircleBll.GetEntity(s => s.Id == id);

            SocialCircleChatModel model = new SocialCircleChatModel()
            {
                Id   = sc.Id,
                Name = sc.Name
            };

            ViewBag.TimeInterval = Convert.ToInt32(PropertyUtils.GetConfigParamValue("ChatTimeInterval"));
            return(View(model));
        }
示例#5
0
        public JsonResult GetSocialCircleJsonList(SearchModel model)
        {
            PageResultModel m        = new PageResultModel();
            var             ownerId  = GetCurrentUser().Id;
            var             PlaceIds = GetVerifiedPlaceIds();

            //查询条件
            Expression <Func <T_SocialCircle, bool> > where = s => PlaceIds.Contains(s.PlaceId) && s.CreaterId != ownerId &&
                                                              s.UserSocialCircles.Count(us => us.UserId == ownerId && us.ApplyStatus == ConstantParam.IsVerified_YES) == 0;
            if (!string.IsNullOrEmpty(model.Kword))
            {
                where = PredicateBuilder.And(where, s => s.Name.Contains(model.Kword));
            }
            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            m.Total  = socialCircleBLL.Count(where);
            m.Result = socialCircleBLL.GetPageList(where, "Id", false, model.PageIndex).Select(s => new SocialCircleItemModel()
            {
                Id        = s.Id,
                Name      = s.Name.Length > 10 ? s.Name.Substring(0, 10) + ".." : s.Name,
                PlaceName = s.PropertyPlace.Name.Length > 10 ? s.PropertyPlace.Name.Substring(0, 10) + ".." : s.PropertyPlace.Name,
                HeadPath  = s.HeadImgPath,
                IsApplyed = s.UserSocialCircles.Count(us => us.UserId == ownerId && us.ApplyStatus == 0) > 0
            });
            return(Json(m, JsonRequestBehavior.AllowGet));
        }
示例#6
0
        /// <summary>
        /// 业主圈子首页2
        /// </summary>
        /// <returns></returns>
        public ActionResult Index2()
        {
            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            //获取验证通过的小区圈子总数
            var PlaceIds = GetVerifiedPlaceIds();

            ViewBag.Count = socialCircleBLL.Count(s => PlaceIds.Contains(s.PlaceId));
            return(View());
        }
示例#7
0
        public ActionResult Deatil(int id)
        {
            WeixinApiInit();

            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var sc = socialCircleBLL.GetEntity(s => s.Id == id);

            ViewBag.CurrentUserId = GetCurrentUser().Id;
            return(View(sc));
        }
示例#8
0
        public ActionResult UpdateContent(int id)
        {
            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var sc = socialCircleBLL.GetEntity(s => s.Id == id);
            EditContentModel model = new EditContentModel()
            {
                Id      = sc.Id,
                Content = sc.Content
            };

            return(View(model));
        }
示例#9
0
        public ActionResult UpdateName(int id)
        {
            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var           sc    = socialCircleBLL.GetEntity(s => s.Id == id);
            EditNameModel model = new EditNameModel()
            {
                Id   = sc.Id,
                Name = sc.Name
            };

            return(View(model));
        }
示例#10
0
        public ActionResult MassTextingList(int id)
        {
            //获取指定圈子信息
            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var sc = socialCircleBLL.GetEntity(s => s.Id == id);
            SocialCircleChatModel model = new SocialCircleChatModel()
            {
                Id   = sc.Id,
                Name = sc.Name
            };

            ViewBag.TimeInterval = Convert.ToInt32(PropertyUtils.GetConfigParamValue("ChatTimeInterval"));
            return(View(model));
        }
示例#11
0
        public ActionResult CircleUserManage(int Id)
        {
            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var             src   = socialCircleBLL.GetEntity(s => s.Id == Id);
            int             coun  = src.UserSocialCircles.Where(s => s.ApplyStatus == ConstantParam.IsVerified_YES).Count();
            circleuserModel model = new circleuserModel()
            {
                Count      = coun + 1,
                Id         = src.Id,
                UserId     = GetCurrentUser().Id,
                CreateId   = src.Creater.Id,
                CreateName = src.Creater.UserName,
                HeadImg    = string.IsNullOrEmpty(src.Creater.HeadPath) ? "/Images/WeiXin/header_default.png" : src.Creater.HeadPath
            };

            return(View(model));
        }
示例#12
0
        /// <summary>
        /// 圈子聊天页面
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Chat(int id)
        {
            WeixinApiInit();

            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var sc                      = socialCircleBLL.GetEntity(s => s.Id == id);
            int MemberCount             = sc.UserSocialCircles.Where(us => us.ApplyStatus == Property.Common.ConstantParam.IsVerified_YES).Select(us => us.UserId).Distinct().Count();
            SocialCircleChatModel model = new SocialCircleChatModel()
            {
                Id          = sc.Id,
                Name        = sc.Name,
                MemberCount = MemberCount + 1
            };

            ViewBag.TimeInterval = Convert.ToInt32(PropertyUtils.GetConfigParamValue("ChatTimeInterval"));
            return(View(model));
        }
示例#13
0
        public JsonResult GetSearchMySocialCircle(string kwords)
        {
            var placeIds = GetVerifiedPlaceIds();
            MySocialCircleListModel model = new MySocialCircleListModel();
            var ownerId = GetCurrentUser().Id;
            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            //我创建的圈子查询条件
            Expression <Func <T_SocialCircle, bool> > where1 = s => s.CreaterId == ownerId && placeIds.Contains(s.PlaceId);

            if (!string.IsNullOrEmpty(kwords))
            {
                where1 = PredicateBuilder.And(where1, s => s.Name.Contains(kwords));
            }
            //获取我创建的圈子列表
            model.CreateList = socialCircleBLL.GetList(where1).ToList().Select(s => new SocialCircleItemModel()
            {
                Id        = s.Id,
                Name      = s.Name.Length > 10 ? s.Name.Substring(0, 10) + ".." : s.Name,
                PlaceName = s.PropertyPlace.Name.Length > 10 ? s.PropertyPlace.Name.Substring(0, 10) + ".." : s.PropertyPlace.Name,
                HeadPath  = s.HeadImgPath
            }).ToList();
            model.CreateCount = socialCircleBLL.Count(where1);

            //我加入的圈子查询条件
            Func <R_UserSocialCircle, bool> where2 = us => us.ApplyStatus == ConstantParam.IsVerified_YES && placeIds.Contains(us.SocialCircle.PlaceId) &&
                                                     (string.IsNullOrEmpty(kwords) ? true : us.SocialCircle.Name.Contains(kwords));

            //获取我加入的圈子列表
            model.JoinList = GetCurrentUser().UserSocialCircles.Where(where2).ToList().Select(us => new SocialCircleItemModel()
            {
                Id             = us.SocialCircleId,
                Name           = us.SocialCircle.Name.Length > 10 ? us.SocialCircle.Name.Substring(0, 10) + ".." : us.SocialCircle.Name,
                PlaceName      = us.SocialCircle.PropertyPlace.Name.Length > 10 ? us.SocialCircle.PropertyPlace.Name.Substring(0, 10) + ".." : us.SocialCircle.PropertyPlace.Name,
                HeadPath       = us.SocialCircle.HeadImgPath,
                NewestChatTime = ""
            }).Distinct(new SocialCircleComparer()).ToList();

            model.JoinCount = model.JoinList.Count;
            return(Json(model, JsonRequestBehavior.AllowGet));
        }
示例#14
0
        public JsonResult UpdateImg(int id, string Img)
        {
            JsonModel jm = new JsonModel();

            try
            {
                ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

                var sc = socialCircleBLL.GetEntity(s => s.Id == id);
                if (sc != null)
                {
                    if (!string.IsNullOrEmpty(Img))
                    {
                        string oldImgPath = sc.HeadImgPath;

                        //头像路径保存
                        sc.HeadImgPath = GetMultimedia(ConstantParam.SOCIAL_CIRCLE_HEAD_DIR, Img);
                        socialCircleBLL.Update(sc);

                        //删除旧头像
                        if (!string.IsNullOrEmpty(oldImgPath))
                        {
                            FileInfo f = new FileInfo(Server.MapPath(oldImgPath));
                            if (f.Exists)
                            {
                                f.Delete();
                            }
                        }
                    }
                }
                else
                {
                    jm.Msg = "圈子已不存在";
                }
            }
            catch
            {
                jm.Msg = "请求发生异常";
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
示例#15
0
        /// <summary>
        /// 发送模板消息
        /// <param name="openId">关注公众号的用户openId</param>
        /// </summary>
        public void SendTemplateMessage(int circleId, string openId, string accessToken)
        {
            //获取新消息的所属圈子
            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var socialCircle = socialCircleBLL.GetEntity(s => s.Id == circleId);

            //获取圈子群发消息未读条数
            int noReadCount = socialCircle.SocialCircleMassTextings.Count(m => m.UserSocialCircleMassTextings.Count(usm => usm.User != null && !string.IsNullOrEmpty(usm.User.WeixinOpenId) &&
                                                                                                                    usm.User.WeixinOpenId == openId && usm.IsNoRead) > 0);
            var data = new
            {
                first    = new TemplateDataItem(string.Format("您好,{0}发来一条新消息,请尽快查看", socialCircle.Name)),
                keyword1 = new TemplateDataItem(noReadCount.ToString()),
                keyword2 = new TemplateDataItem("【Ai我家】"),
                keyword3 = new TemplateDataItem(DateTime.Now.ToString()),
                remark   = new TemplateDataItem("请点击查看消息详细内容!")
            };

            TemplateApi.SendTemplateMessage(accessToken, openId, TemplateId, "#000", "http://v.homekeeper.com.cn/WeixinSocialCircle/ReceiveMassTexting", data);
        }
示例#16
0
        public ActionResult ReceiveMassTexting()
        {
            var Owner    = GetCurrentUser();
            var PlaceIds = GetVerifiedPlaceIds();

            //获取有当前用户群发消息的圈子
            ISocialCircleBLL socialCircleBll = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var list = socialCircleBll.GetList(s => PlaceIds.Contains(s.PlaceId) && s.SocialCircleMassTextings.Count(m => m.UserSocialCircleMassTextings.Count(
                                                                                                                         usm => usm.UserId == Owner.Id) > 0) > 0).ToList().Select(s => new ReceiveMassTextSocialCircleItemModel()
            {
                Id              = s.Id,
                Name            = s.Name.Length > 10 ? s.Name.Substring(0, 10) + ".." : s.Name,
                PlaceName       = s.PropertyPlace.Name.Length > 10 ? s.PropertyPlace.Name.Substring(0, 10) + ".." : s.PropertyPlace.Name,
                HeadPath        = s.HeadImgPath,
                TotalMassCount  = s.SocialCircleMassTextings.Count(m => m.UserSocialCircleMassTextings.Count(usm => usm.UserId == Owner.Id) > 0),
                NoReadMassCount = s.SocialCircleMassTextings.Count(m => m.UserSocialCircleMassTextings.Count(usm => usm.UserId == Owner.Id && usm.IsNoRead) > 0),
                NewestChatTime  = TimeFormat(s.SocialCircleMassTextings.Last(m => m.UserSocialCircleMassTextings.Count(usm => usm.UserId == Owner.Id) > 0).ChatTime)
            }).ToList();

            return(View(list));
        }
示例#17
0
        public ActionResult SendMsg(int id, string ids)
        {
            WeixinApiInit();

            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            var sc = socialCircleBLL.GetEntity(s => s.Id == id);

            string[] i = ids.Split(',');
            int[]    d = new int[i.Length - 1];
            for (var s = 0; s < i.Length - 1; s++)
            {
                d[s] = int.Parse(i[s]);
            }
            string names = "";

            for (int c = 0; c < d.Length; c++)
            {
                int o = d[c];
                IUserSocialCircleBLL userSocialCircleBll = BLLFactory <IUserSocialCircleBLL> .GetBLL("UserSocialCircleBLL");

                R_UserSocialCircle user = userSocialCircleBll.GetEntity(u => u.UserId == o);
                names += user.ApplyUser.UserName + "、";
            }
            names = names.Substring(0, names.Length - 1);
            UserListSocialCircleMassTextingModel model = new UserListSocialCircleMassTextingModel()
            {
                Id              = sc.Id,
                CreaterName     = sc.Creater.UserName,
                CreaterHeadPath = string.IsNullOrEmpty(sc.Creater.HeadPath) ? "/Images/Weixin/header_default.png" : sc.Creater.HeadPath,
                MemberIds       = ids,
                NameList        = names,
                Count           = d.Length
            };

            return(View(model));
        }
示例#18
0
        public ActionResult MyCircle()
        {
            MySocialCircleListModel model = new MySocialCircleListModel();

            var Owner    = GetCurrentUser();
            var PlaceIds = GetVerifiedPlaceIds();
            //用户创建的圈子ID集合
            var sIds = Owner.SocialCircles.Select(s => s.Id).ToList();
            IUserSocialCircleBLL userSocialCircleBll = BLLFactory <IUserSocialCircleBLL> .GetBLL("UserSocialCircleBLL");

            var userSocialCircles = userSocialCircleBll.GetList(us => sIds.Contains(us.SocialCircleId) && PlaceIds.Contains(us.SocialCircle.PlaceId) && us.ApplyStatus == ConstantParam.IsVerified_DEFAULT);

            //获取未处理个数
            model.NoDealCount = userSocialCircles.Count();
            if (model.NoDealCount > 0)
            {
                var usc = userSocialCircles.OrderByDescending(us => us.ApplyTime).First();
                model.ApplyInfo = new ApplyInfoModel()
                {
                    ApplyUserName = usc.ApplyUser.UserName,
                    CircleName    = usc.SocialCircle.Name,
                    ApplyTime     = TimeFormat(usc.ApplyTime)
                };
            }

            //获取我接收到的最新群发消息
            IUserSocialCircleMassTextingBLL usMassTextingBll = BLLFactory <IUserSocialCircleMassTextingBLL> .GetBLL("UserSocialCircleMassTextingBLL");

            var usMassTextings = usMassTextingBll.GetList(m => m.UserId == Owner.Id && PlaceIds.Contains(m.SocialCircleMassTexting.SocialCircle.PlaceId));

            //如果有接收到的群发消息
            if (usMassTextings.Count() > 0)
            {
                var firstMass = usMassTextings.OrderByDescending(m => m.SocialCircleMassTexting.ChatTime).First();
                model.NewsetMass = new MassTextingModel()
                {
                    CircleName   = firstMass.SocialCircleMassTexting.SocialCircle.Name,
                    MassSendTime = TimeFormat(firstMass.SocialCircleMassTexting.ChatTime)
                };
            }
            model.NoReadCount = usMassTextings.Count(um => um.IsNoRead);

            ISocialCircleBLL socialCircleBLL = BLLFactory <ISocialCircleBLL> .GetBLL("SocialCircleBLL");

            //获取我创建的圈子列表
            model.CreateList = socialCircleBLL.GetList(s => s.CreaterId == Owner.Id && PlaceIds.Contains(s.PlaceId)).ToList().Select(s => new SocialCircleItemModel()
            {
                Id             = s.Id,
                Name           = s.Name,
                PlaceName      = s.PropertyPlace.Name,
                HeadPath       = s.HeadImgPath,
                NewestChatTime = s.SocialCircleChats.Count > 0 ? TimeFormat(s.SocialCircleChats.OrderByDescending(c => c.ChatTime).First().ChatTime) : ""
            }).ToList();
            //获取我加入的圈子列表
            model.JoinList = GetCurrentUser().UserSocialCircles.Where(us => us.ApplyStatus == ConstantParam.IsVerified_YES && PlaceIds.Contains(us.SocialCircle.PlaceId)).ToList().Select(us => new SocialCircleItemModel()
            {
                Id             = us.SocialCircleId,
                Name           = us.SocialCircle.Name,
                PlaceName      = us.SocialCircle.PropertyPlace.Name,
                HeadPath       = us.SocialCircle.HeadImgPath,
                NewestChatTime = us.SocialCircle.SocialCircleChats.Count > 0 ? TimeFormat(us.SocialCircle.SocialCircleChats.OrderByDescending(c => c.ChatTime).First().ChatTime) : ""
            }).Distinct(new SocialCircleComparer()).ToList();
            return(View(model));
        }