예제 #1
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));
        }
예제 #2
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));
        }