public override AddNearCommentResponseBody ExecuteCore() { AddNearCommentResponseBody res = new AddNearCommentResponseBody(); using (HWLEntities db = new HWLEntities()) { var circleModel = db.t_near_circle.Where(c => c.id == this.request.NearCircleId).FirstOrDefault(); if (circleModel == null) { throw new Exception("你评论的信息已经被用户删除"); } bool isChanged = string.IsNullOrEmpty(this.request.NearCircleUpdateTime) || this.request.NearCircleUpdateTime != GenericUtility.FormatDate2(circleModel.update_time); t_near_circle_comment model = new t_near_circle_comment() { comment_user_id = this.request.CommentUserId, content_info = this.request.Content, near_circle_id = this.request.NearCircleId, reply_user_id = this.request.ReplyUserId, id = 0, comment_time = DateTime.Now, }; db.t_near_circle_comment.Add(model); circleModel.comment_count = circleModel.comment_count + 1; circleModel.update_time = DateTime.Now; db.SaveChanges(); var userList = db.t_user.Where(i => i.id == model.comment_user_id || i.id == model.reply_user_id).Select(i => new { i.id, i.name, i.symbol, i.head_image }).ToList(); NearCircleCommentInfo info = new NearCircleCommentInfo() { CommentId = model.id, Content = model.content_info, CommentTime = GenericUtility.FormatDate(model.comment_time), CommentUserId = model.comment_user_id, //CommentUserImage = model.com, //CommentUserName = model.content_info, NearCircleId = model.near_circle_id, ReplyUserId = model.reply_user_id, //ReplyUserImage = model.content_info, //ReplyUserName = model.content_info, }; if (userList != null && userList.Count > 0) { if (info.CommentUserId > 0) { var comUser = userList.Where(u => u.id == info.CommentUserId).FirstOrDefault(); info.CommentUserName = UserUtility.GetShowName(comUser.name, comUser.symbol); info.CommentUserImage = comUser.head_image; } if (info.ReplyUserId > 0) { var repUser = userList.Where(u => u.id == info.ReplyUserId).FirstOrDefault(); info.ReplyUserName = UserUtility.GetShowName(repUser.name, repUser.symbol); info.ReplyUserImage = repUser.head_image; } } res.NearCirclePublishUserId = circleModel.user_id; res.NearCircleCommentInfo = info; if (!isChanged) { res.NearCircleLastUpdateTime = GenericUtility.FormatDate2(circleModel.update_time); } } return(res); }
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); } }
public override GetNearCommentsResponseBody ExecuteCore() { GetNearCommentsResponseBody res = new GetNearCommentsResponseBody(); using (HWLEntities db = new HWLEntities()) { var comments = db.t_near_circle_comment.Where(c => c.near_circle_id == this.request.NearCircleId && c.id > this.request.LastCommentId) .Take(this.request.Count) .Select(c => new { Id = c.id, NearCircleId = c.near_circle_id, CommentUserId = c.comment_user_id, ReplyUserId = c.reply_user_id, Content = c.content_info, CommentTime = c.comment_time }).OrderBy(c => c.Id).ToList(); if (comments == null || comments.Count <= 0) { return(res); } res.NearCircleCommentInfos = new List <NearCircleCommentInfo>(); var userIds = comments.Select(c => c.CommentUserId).Union(comments.Select(c => c.ReplyUserId)).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(); 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(); comments.ForEach(f => { NearCircleCommentInfo model = new NearCircleCommentInfo() { CommentId = f.Id, Content = f.Content, NearCircleId = f.NearCircleId, CommentTime = f.CommentTime.ToString("yyyy-MM-dd HH:mm:ss"), CommentUserId = f.CommentUserId, CommentUserImage = null, CommentUserName = null, ReplyUserId = f.ReplyUserId, ReplyUserName = null, ReplyUserImage = null, }; if (userList != null && userList.Count > 0) { if (f.CommentUserId > 0) { var comUser = userList.Where(u => u.id == f.CommentUserId).FirstOrDefault(); string friendRemark = friendList != null ? friendList.Where(r => r.friend_user_id == f.CommentUserId).Select(r => r.friend_user_remark).FirstOrDefault() : null; model.CommentUserName = UserUtility.GetShowName(friendRemark, comUser.name); model.CommentUserImage = comUser.head_image; } if (f.ReplyUserId > 0) { var repUser = userList.Where(u => u.id == f.ReplyUserId).FirstOrDefault(); string friendRemark = friendList != null ? friendList.Where(r => r.friend_user_id == f.ReplyUserId).Select(r => r.friend_user_remark).FirstOrDefault() : null; model.ReplyUserName = UserUtility.GetShowName(friendRemark, repUser.name); model.ReplyUserImage = repUser.head_image; } } res.NearCircleCommentInfos.Add(model); }); } return(res); }