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