Exemplo n.º 1
0
        public override GetNearLikesResponseBody ExecuteCore()
        {
            GetNearLikesResponseBody res = new GetNearLikesResponseBody();

            using (HWLEntities db = new HWLEntities())
            {
                var likes = db.t_near_circle_like.Where(c => c.near_circle_id == this.request.NearCircleId && c.is_delete == false)
                            .Select(c => new
                {
                    LikeId       = c.id,
                    NearCircleId = c.near_circle_id,
                    LikeUserId   = c.like_user_id,
                    LikeTime     = c.like_time
                }).OrderBy(c => c.LikeId).ToList();
                if (likes == null || likes.Count <= 0)
                {
                    return(res);
                }
                res.NearCircleLikeInfos = new List <NearCircleLikeInfo>();

                var userIds    = likes.Select(c => c.LikeUserId).ToList();
                var userList   = db.t_user.Where(i => userIds.Contains(i.id)).Select(i => new { i.id, i.name, i.head_image }).ToList();
                var friendList = db.t_user_friend.Where(f => f.user_id == this.request.UserId && userIds.Contains(f.friend_user_id)).Select(f => new { f.friend_user_id, f.friend_user_remark }).ToList();

                likes.ForEach(f =>
                {
                    NearCircleLikeInfo model = new NearCircleLikeInfo()
                    {
                        LikeId       = f.LikeId,
                        LikeUserId   = f.LikeUserId,
                        NearCircleId = f.NearCircleId,
                        LikeTime     = GenericUtility.FormatDate(f.LikeTime),
                    };

                    if (userList != null && userList.Count > 0)
                    {
                        var likeUser = userList.Where(u => u.id == f.LikeUserId).FirstOrDefault();
                        if (likeUser != null)
                        {
                            string friendRemark = friendList != null ? friendList.Where(r => r.friend_user_id == f.LikeUserId).Select(r => r.friend_user_remark).FirstOrDefault() : null;
                            model.LikeUserName  = UserUtility.GetShowName(friendRemark, likeUser.name);
                            model.LikeUserImage = likeUser.head_image;
                        }
                    }
                    res.NearCircleLikeInfos.Add(model);
                });
            }

            return(res);
        }
Exemplo n.º 2
0
        private void BindInfo(List <NearCircleInfo> infos)
        {
            if (infos == null || infos.Count <= 0)
            {
                return;
            }

            //List<int> imageCircleIds = infos.Where(n => CustomerEnumDesc.ImageContentTypes().Contains(n.ContentType)).Select(n => n.NearCircleId).ToList();
            //List<t_near_circle_image> imageList = null;
            //if (imageCircleIds != null && imageCircleIds.Count > 0)
            //{
            //    imageList = db.t_near_circle_image.Where(i => imageCircleIds.Contains(i.near_circle_id)).ToList();
            //}
            List <int> circleIds   = infos.Select(n => n.NearCircleId).ToList();
            var        likeList    = db.t_near_circle_like.Where(l => circleIds.Contains(l.near_circle_id) && l.is_delete == false).ToList();
            var        commentList = db.t_near_circle_comment.Where(c => circleIds.Contains(c.near_circle_id)).ToList();

            List <int> userIds = infos.Select(u => u.PublishUserId).ToList();

            if (likeList != null && likeList.Count > 0)
            {
                userIds.AddRange(likeList.Select(u => u.like_user_id).ToList());
            }
            if (commentList != null && commentList.Count > 0)
            {
                userIds.AddRange(commentList.Select(u => u.comment_user_id).ToList());
                userIds.AddRange(commentList.Select(c => c.reply_user_id).ToList());
            }
            var userList   = db.t_user.Where(i => userIds.Contains(i.id)).Select(i => new { i.id, i.name, i.head_image }).ToList();
            var friendList = db.t_user_friend.Where(f => f.user_id == this.request.UserId && userIds.Contains(f.friend_user_id)).Select(f => new { f.friend_user_id, f.friend_user_remark }).ToList();

            foreach (var item in infos)
            {
                //if (imageList != null && imageList.Count > 0)
                //{
                //    item.Images = imageList.Where(i => i.near_circle_id == item.NearCircleId).Select(i => new ImageInfo()
                //    {
                //        Url = i.image_url,
                //        Height = i.height,
                //        Width = i.width
                //    }).ToList();
                //}

                if (userList != null && userList.Count > 0)
                {
                    var user = userList.Where(u => u.id == item.PublishUserId).FirstOrDefault();
                    if (user != null)
                    {
                        string friendRemark = friendList != null?friendList.Where(f => f.friend_user_id == item.PublishUserId).Select(f => f.friend_user_remark).FirstOrDefault() : null;

                        item.PublishUserName  = UserUtility.GetShowName(friendRemark, user.name);
                        item.PublishUserImage = user.head_image;
                    }
                }

                if (likeList != null && likeList.Count > 0)
                {
                    item.IsLiked   = likeList.Where(l => l.near_circle_id == item.NearCircleId && l.like_user_id == this.request.UserId).Select(l => l.id).FirstOrDefault() > 0 ? true : false;
                    item.LikeInfos = likeList.Where(l => l.near_circle_id == item.NearCircleId)
                                     .Select(l =>
                    {
                        NearCircleLikeInfo model = new NearCircleLikeInfo()
                        {
                            LikeId       = l.id,
                            LikeUserId   = l.like_user_id,
                            NearCircleId = l.near_circle_id,
                            LikeTime     = l.like_time.ToString("yyyy-MM-dd HH:mm:ss"),
                        };
                        if (userList != null && userList.Count > 0)
                        {
                            var likeUser = userList.Where(u => u.id == l.like_user_id).FirstOrDefault();
                            if (likeUser != null)
                            {
                                string friendRemark = friendList != null ? friendList.Where(f => f.friend_user_id == l.like_user_id).Select(f => f.friend_user_remark).FirstOrDefault() : null;
                                model.LikeUserName  = UserUtility.GetShowName(friendRemark, likeUser.name);
                                model.LikeUserImage = likeUser.head_image;
                            }
                        }
                        return(model);
                    }).ToList();
                }

                if (commentList != null && commentList.Count > 0)
                {
                    item.CommentInfos = commentList.Where(c => c.near_circle_id == item.NearCircleId)
                                        .Select(c =>
                    {
                        NearCircleCommentInfo model = new NearCircleCommentInfo()
                        {
                            CommentId        = c.id,
                            Content          = c.content_info,
                            NearCircleId     = c.near_circle_id,
                            CommentTime      = c.comment_time.ToString("yyyy-MM-dd HH:mm:ss"),
                            CommentUserId    = c.comment_user_id,
                            CommentUserImage = null,
                            CommentUserName  = null,
                            ReplyUserId      = c.reply_user_id,
                            ReplyUserName    = null,
                            ReplyUserImage   = null,
                        };
                        if (userList != null && userList.Count > 0)
                        {
                            if (c.comment_user_id > 0)
                            {
                                var comUser = userList.Where(u => u.id == c.comment_user_id).FirstOrDefault();
                                if (comUser != null)
                                {
                                    string friendRemark    = friendList != null ? friendList.Where(f => f.friend_user_id == c.comment_user_id).Select(f => f.friend_user_remark).FirstOrDefault() : null;
                                    model.CommentUserName  = UserUtility.GetShowName(friendRemark, comUser.name);
                                    model.CommentUserImage = comUser.head_image;
                                }
                            }

                            if (c.reply_user_id > 0)
                            {
                                var repUser = userList.Where(u => u.id == c.reply_user_id).FirstOrDefault();
                                if (repUser != null)
                                {
                                    string friendRemark  = friendList != null ? friendList.Where(f => f.friend_user_id == c.reply_user_id).Select(f => f.friend_user_remark).FirstOrDefault() : null;
                                    model.ReplyUserName  = UserUtility.GetShowName(friendRemark, repUser.name);
                                    model.ReplyUserImage = repUser.head_image;
                                }
                            }
                        }
                        return(model);
                    }).ToList();
                }

                //item.LikeInfos = NearUtility.GetNearLikes(item.NearCircleId);
                //item.CommentInfos = NearUtility.GetNearComments(item.NearCircleId, 20);
            }
        }