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

            using (HWLEntities db = new HWLEntities())
            {
                var likes = db.t_circle_like.Where(c => c.circle_id == this.request.CircleId && c.is_delete == false)
                            .Select(c => new
                {
                    LikeId     = c.id,
                    CircleId   = c.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.CircleLikeInfos = new List <CircleLikeInfo>();

                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.symbol, i.head_image }).ToList();

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

                    if (userList != null && userList.Count > 0)
                    {
                        var likeUser = userList.Where(u => u.id == f.LikeUserId).FirstOrDefault();
                        if (likeUser != null)
                        {
                            model.LikeUserName  = UserUtility.GetShowName(likeUser.name, likeUser.symbol);
                            model.LikeUserImage = likeUser.head_image;
                        }
                    }
                    res.CircleLikeInfos.Add(model);
                });
            }

            return(res);
        }
Exemplo n.º 2
0
        public static void BindCircleInfos(HWLEntities db, int userId, List <CircleInfo> infos)
        {
            if (infos == null || infos.Count <= 0)
            {
                return;
            }

            List <int>            imageCircleIds = infos.Where(n => CustomerEnumDesc.ImageContentTypes().Contains(n.ContentType)).Select(n => n.CircleId).ToList();
            List <t_circle_image> imageList      = null;

            if (imageCircleIds != null && imageCircleIds.Count > 0)
            {
                imageList = db.t_circle_image.Where(i => imageCircleIds.Contains(i.circle_id)).ToList();
            }
            List <int> circleIds   = infos.Select(n => n.CircleId).ToList();
            var        likeList    = db.t_circle_like.Where(l => circleIds.Contains(l.circle_id) && l.is_delete == false).ToList();
            var        commentList = db.t_circle_comment.Where(c => circleIds.Contains(c.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.com_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 == 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.circle_id == item.CircleId).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.circle_id == item.CircleId && l.like_user_id == userId).Select(l => l.id).FirstOrDefault() > 0 ? true : false;
                    item.LikeInfos = likeList.Where(l => l.circle_id == item.CircleId)
                                     .Select(l =>
                    {
                        CircleLikeInfo model = new CircleLikeInfo()
                        {
                            LikeId     = l.id,
                            LikeUserId = l.like_user_id,
                            CircleId   = l.circle_id,
                            LikeTime   = GenericUtility.FormatDate(l.like_time),
                        };
                        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.circle_id == item.CircleId)
                                        .Select(c =>
                    {
                        CircleCommentInfo model = new CircleCommentInfo()
                        {
                            CommentId        = c.id,
                            Content          = c.com_content,
                            CircleId         = c.circle_id,
                            CommentTime      = GenericUtility.FormatDate(c.comment_time),
                            CommentUserId    = c.com_user_id,
                            CommentUserImage = null,
                            CommentUserName  = null,
                            ReplyUserId      = c.reply_user_id,
                            ReplyUserName    = null,
                            ReplyUserImage   = null,
                        };
                        if (userList != null && userList.Count > 0)
                        {
                            if (c.com_user_id > 0)
                            {
                                var comUser = userList.Where(u => u.id == c.com_user_id).FirstOrDefault();
                                if (comUser != null)
                                {
                                    string friendRemark    = friendList != null ? friendList.Where(f => f.friend_user_id == c.com_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();
                }
            }
        }