コード例 #1
0
        public async Task <IActionResult> Post(UpdatePostModel model)
        {
            var post = await PostSvc.GetByIdAsync(model.Id);

            if (post == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "帖子不存在"
                })
                {
                    StatusCode = 400
                });
            }
            var statu = await StatuSvc.GetByIdAsync(model.PostStatusId);

            if (statu == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "帖子状态不存在"
                })
                {
                    StatusCode = 400
                });
            }
            UpdatePostDTO dto = new UpdatePostDTO();

            dto.Id           = model.Id;
            dto.PostStatusId = model.PostStatusId;
            dto.IsEssence    = model.IsEssence;
            await PostSvc.UpdateAsync(dto);

            return(Ok());
        }
コード例 #2
0
        public async Task <IActionResult> Put(AddPostModel model)
        {
            var postType = await TypeSvc.GetByIdAsync(model.PostTypeId);

            if (postType == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "帖子类型不存在"
                })
                {
                    StatusCode = 400
                });
            }

            AddPostDTO dto = new AddPostDTO();

            dto.Content = model.Content;

            dto.Title      = model.Title;
            dto.UserId     = model.UserId;
            dto.PostTypeId = model.PostTypeId;
            if (postType.Name == "分享")
            {
                dto.PostStatusId = 1;
            }
            else
            {
                dto.PostStatusId = 2;
            }
            return(new JsonResult(new APIResult <long> {
                Data = await PostSvc.AddNewAsync(dto)
            }));
        }
コード例 #3
0
        public async Task <IActionResult> GetByTypeId(long postTypeId, int pageIndex = 1, int pageDataCount = 10, bool?IsKnot = null, bool?IsEssence = null)
        {
            var postType = await TypeSvc.GetByIdAsync(postTypeId);

            if (postType == null)
            {
                return(new JsonResult(
                           new APIResult <long>()
                {
                    ErrorMsg = "帖子类型不存在"
                }
                           )
                {
                    StatusCode = 400
                });
            }
            return(new JsonResult(
                       new APIResult <ListModel <ListPostDTO> >()
            {
                Data = new ListModel <ListPostDTO>
                {
                    Datas = await PostSvc.GetPageByTypeIdAsync(postTypeId, pageIndex, pageDataCount, IsKnot, IsEssence),
                    TotalCount = await PostSvc.GetByPostTypeIdCountAsync(postTypeId, IsKnot, IsEssence)
                }
            }
                       ));
        }
コード例 #4
0
        public async Task <IActionResult> List(int pageIndex = 1, int pageDataCount = 10)
        {
            var pers = await PostSvc.GetAdminWebPageDataAsync(pageIndex, pageDataCount);

            if (pers == null)
            {
                return(Content(PostSvc.ErrorMsg));
            }
            List <long> userIds = pers.Datas.Select(e => e.UserId).ToList();
            var         users   = await UserSvc.GetByIdsAsync(userIds);

            AdminWebListPostModel model = new AdminWebListPostModel();

            model.Posts      = pers.Datas;
            model.TotalCount = pers.TotalCount;
            model.Users      = users;

            NoRainPage page = new NoRainPage();

            page.DataCount = pers.TotalCount;
            page.PageIndex = pageIndex;
            page.Url       = "/Post/List?pageIndex=@parms";
            model.Page     = page.GetPaging();
            return(View(model));
        }
コード例 #5
0
        public async Task <IActionResult> GetPosts()
        {
            //获取置顶的帖子
            var stickPosts = await PostSvc.GetStickAsync();

            List <long> stickUserIds = stickPosts.Select(e => e.UserId).ToList();
            var         stickUsers   = await UserSvc.GetByIdsAsync(stickUserIds);

            //获取综合的帖子
            var colligatePosts = await PostSvc.GetColligatePostAsync();

            List <long> colligateUserIds = colligatePosts.Datas.Select(e => e.UserId).ToList();
            var         colligateUsers   = await UserSvc.GetByIdsAsync(colligateUserIds);

            var model = new ListPostUserModel()
            {
                StickPosts     = stickPosts,
                StickUsers     = stickUsers,
                ColligatePosts = colligatePosts.Datas,
                ColligateUsers = colligateUsers
            };

            return(Json(new AjaxResult {
                Status = "ok", Data = model
            }));
        }
コード例 #6
0
 public async Task <IActionResult> GetStick()
 {
     return(new JsonResult(
                new APIResult <List <ListPostDTO> >()
     {
         Data = await PostSvc.GetByCommentCountAsync()
     }
                ));
 }
コード例 #7
0
        public async Task <IActionResult> GetQuestionPostByUserId(long userId)
        {
            var Posts = await PostSvc.GetQuestionPostByUserIdAsync(userId);

            return(new JsonResult(
                       new APIResult <List <ListPostDTO> >()
            {
                Data = Posts
            }));
        }
コード例 #8
0
 public async Task <IActionResult> Add(AddPostModel model)
 {
     if (await PostSvc.AddNewAsync(model) < 1)
     {
         return(Json(new AjaxResult {
             Status = "error", ErrorMsg = PostSvc.ErrorMsg
         }));
     }
     return(Json(new AjaxResult {
         Status = "ok"
     }));
 }
コード例 #9
0
 public async Task <IActionResult> Delete(long id)
 {
     if (!await PostSvc.DeleteAsync(id))
     {
         return(Json(new AjaxResult {
             Status = "error", ErrorMsg = PostSvc.ErrorMsg
         }));
     }
     return(Json(new AjaxResult {
         Status = "ok"
     }));
 }
コード例 #10
0
 public async Task <IActionResult> Edit(UpdatePostModel model)
 {
     if (!await PostSvc.UpdateAsync(model))
     {
         return(Json(new AjaxResult {
             Status = "error", ErrorMsg = PostSvc.ErrorMsg
         }));
     }
     return(Json(new AjaxResult {
         Status = "ok"
     }));
 }
コード例 #11
0
 public async Task <IActionResult> GetCollectionPostByUserId(long userId, int pageIndex = 1, int pageDataCount = 10)
 {
     return(new JsonResult(
                new APIResult <ListModel <ListPostDTO> >()
     {
         Data = new ListModel <ListPostDTO>
         {
             Datas = await PostSvc.GetPageCollectionPostByUserIdAsync(userId, pageIndex, pageDataCount),
             TotalCount = await PostSvc.GetCollectionPostByUserIdTotalCountAsync(userId)
         }
     }
                ));
 }
コード例 #12
0
        public async Task <IActionResult> GetDayPost()
        {
            List <ListPostDTO> dayPost = await PostSvc.GetDayPostAsync();

            if (dayPost == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", Data = PostSvc.ErrorMsg
                }));
            }
            return(Json(new AjaxResult {
                Status = "ok", Data = dayPost
            }));
        }
コード例 #13
0
        public async Task <IActionResult> GetAdminWebPageData(int pageIndex = 1, int pageDataCount = 10)
        {
            var Posts = await PostSvc.GetAdminWebPageDataAsync(pageIndex, pageDataCount);

            var TotalCount = await PostSvc.GetAdminWebTotalCountAsync();

            return(new JsonResult(
                       new APIResult <ListModel <ListPostDTO> >()
            {
                Data = new ListModel <ListPostDTO> {
                    Datas = Posts, TotalCount = TotalCount
                }
            }));
        }
コード例 #14
0
        public async Task <IActionResult> GetPageData(int pageIndex = 1, int pageDataCount = 10, bool?isKnot = null, bool?isEssence = null)
        {
            var Posts = await PostSvc.GetPageDataAsync(pageIndex, pageDataCount, isKnot, isEssence);

            var TotalCount = await PostSvc.TotalCountAsync();

            return(new JsonResult(
                       new APIResult <ListModel <ListPostDTO> >()
            {
                Data = new ListModel <ListPostDTO> {
                    Datas = Posts, TotalCount = TotalCount
                }
            }));
        }
コード例 #15
0
        public async Task <IActionResult> Adopt(AdoptPostModel model)
        {
            long userId = Convert.ToInt64(HttpContext.Session.GetString(ConstList.USERID));

            model.UserId = userId;
            if (!await PostSvc.AdoptPostAsync(model))
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = PostSvc.ErrorMsg
                }));
            }
            return(Json(new AjaxResult {
                Status = "ok"
            }));
        }
コード例 #16
0
        public async Task <IActionResult> Detail(long postId)
        {
            ListContentPostDTO post;
            ListUserDTO        user;
            string             postCache = await RedisHelper.GetAsync($"postDetail_{postId}");

            string userCache = await RedisHelper.GetAsync($"user_{postId}");

            if (!string.IsNullOrEmpty(postCache) && !string.IsNullOrEmpty(userCache))
            {
                post = JsonConvert.DeserializeObject <ListContentPostDTO>(postCache);
                user = JsonConvert.DeserializeObject <ListUserDTO>(userCache);
            }
            else
            {
                post = await PostSvc.GetByIdAsync(postId);

                user = await UserSvc.GetByIdAsync(post.UserId);

                if (post == null)
                {
                    return(Json(new AjaxResult {
                        Status = "redirect", Data = "/Error/Error404"
                    }));
                }
                if (user == null)
                {
                    return(Json(new AjaxResult {
                        Status = "error", Data = UserSvc.ErrorMsg
                    }));
                }
                await RedisHelper.SetAsync($"postDetail_{postId}", post);

                await RedisHelper.SetAsync($"user_{postId}", user);
            }
            long count = await RedisHelper.IncrByAsync("post_" + postId);

            PostDetailModel model = new PostDetailModel();

            model.Post      = post;
            model.User      = user;
            model.LookCount = count;

            return(Json(new AjaxResult {
                Status = "ok", Data = model
            }));
        }
コード例 #17
0
        public async Task <IActionResult> UserCollectionPost(UserCollectionModel model)
        {
            var post = await PostSvc.GetByIdAsync(model.PostId);

            if (post == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "帖子不存在"
                })
                {
                    StatusCode = 400
                });
            }
            return(new JsonResult(new APIResult <long> {
                Data = await PostSvc.UserCollectionPostAsync(model.UserId, model.PostId)
            }));
        }
コード例 #18
0
        public async Task <IActionResult> Comment(AddCommentModel model)
        {
            long userId = Convert.ToInt64(HttpContext.Session.GetString(ConstList.USERID));

            model.CommentUserId = userId;
            var replyUserId = await UserSvc.GetByIdAsync(model.ReplyUserId);

            if (replyUserId == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "您所回复的用户不存在"
                }));
            }
            if (await CommentSvc.AddNewAsync(model) < 1)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = CommentSvc.ErrorMsg
                }));
            }
            ListUserDTO commentUser = await UserSvc.GetByIdAsync(userId);

            ListContentPostDTO post;

            if (RedisHelper.Exists($"postDetail_{model.PostId}"))
            {
                post = JsonConvert.DeserializeObject <ListContentPostDTO>(await RedisHelper.GetAsync($"postDetail_{model.PostId}"));
            }
            else
            {
                post = await PostSvc.GetByIdAsync(model.PostId);

                await RedisHelper.SetAsync($"postDetail_{model.PostId}", post);
            }
            MessageModel msg = new MessageModel();

            msg.CommentUserName = commentUser.NickName;
            msg.PostId          = model.PostId;
            msg.ReplyUserId     = model.ReplyUserId;
            msg.PostTitle       = post.Title;
            await RedisHelper.SAddAsync($"msg_{model.ReplyUserId}", msg);

            return(Json(new AjaxResult {
                Status = "ok"
            }));
        }
コード例 #19
0
        public async Task <IActionResult> GetById(long id)
        {
            var post = await PostSvc.GetByIdAsync(id);

            if (post == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "帖子不存在"
                })
                {
                    StatusCode = 400
                });
            }
            return(new JsonResult(new APIResult <ListPostDTO>()
            {
                Data = post
            }));
        }
コード例 #20
0
        public async Task <IActionResult> Add(FrontAddPostModel model)
        {
            if (TempData[ConstList.VALIDCODE] == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "验证码过期"
                }));
            }
            string code = (string)TempData[ConstList.VALIDCODE];

            TempData[ConstList.VALIDCODE] = null;
            if (!code.Equals(model.ValidCode, StringComparison.InvariantCultureIgnoreCase))
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "验证码错误"
                }));
            }
            long userId = Convert.ToInt64(HttpContext.Session.GetString(ConstList.USERID));
            var  user   = await UserSvc.GetByIdAsync(userId);

            if (!user.IsActive)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "邮箱未激活"
                }));
            }
            AddPostModel addPost = new AddPostModel();

            addPost.Content    = model.Content;
            addPost.PostTypeId = model.PostTypeId;
            addPost.Title      = model.Title;
            addPost.UserId     = userId;
            if (await PostSvc.AddNewAsync(addPost) < 1)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = PostSvc.ErrorMsg
                }));
            }
            return(Json(new AjaxResult {
                Status = "ok"
            }));
        }
コード例 #21
0
        public async Task <IActionResult> GetByPostId(long postId, int pageIndex = 1, int pageDataCount = 10)
        {
            var post = await PostSvc.GetByIdAsync(postId);

            if (post == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "帖子不存在"
                })
                {
                    StatusCode = 400
                });
            }
            return(new JsonResult(new APIResult <ListModel <ListPostCommentDTO> >
            {
                Data = new ListModel <ListPostCommentDTO>
                {
                    Datas = await CommentSvc.GetPageByPostIdAsync(postId, pageIndex, pageDataCount),
                    TotalCount = await CommentSvc.GetTotalCountByPostIdAsync(postId)
                }
            }));
        }
コード例 #22
0
        public async Task <IActionResult> Collection(UserCollectionModel model)
        {
            long userId = Convert.ToInt64(HttpContext.Session.GetString(ConstList.USERID));

            if (await RedisHelper.SIsMemberAsync($"collection_{userId}", model.PostId))
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = "不能重复收藏帖子"
                }));
            }
            model.UserId = userId;
            if (!await PostSvc.UserCollectionPostAsync(model))
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = PostSvc.ErrorMsg
                }));
            }
            await RedisHelper.SAddAsync($"collection_{userId}", model.PostId);

            return(Json(new AjaxResult {
                Status = "ok"
            }));
        }
コード例 #23
0
        public async Task <IActionResult> Edit(long id)
        {
            var post = await PostSvc.GetByIdAsync(id);

            if (post == null)
            {
                return(NotFound());
            }
            var user = await UserSvc.GetByIdAsync(post.UserId);

            if (user == null)
            {
                return(NotFound());
            }
            var status = await PsSVC.GetAllAsync();

            LookPostModel model = new LookPostModel();

            model.Post         = post;
            model.User         = user;
            model.PostStatuses = status;
            return(View(model));
        }
コード例 #24
0
        public async Task <IActionResult> GetPageData(int pageIndex = 1, int pageDataCount = 10, bool?isKnot = null, bool?isEssence = null)
        {
            var posts = await PostSvc.GetColligatePostAsync(pageIndex, pageDataCount, isKnot, isEssence);

            if (posts == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = PostSvc.ErrorMsg
                }));
            }
            List <long> userIds = posts.Datas.Select(e => e.UserId).ToList();
            var         users   = await UserSvc.GetByIdsAsync(userIds);

            if (users == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = UserSvc.ErrorMsg
                }));
            }
            return(Json(new AjaxResult {
                Status = "ok", Data = new { Posts = posts, Users = users }
            }));
        }
コード例 #25
0
        public async Task <IActionResult> Put(AddCommentModel model)
        {
            var post = await PostSvc.GetByIdAsync(model.PostId);

            if (post == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "帖子不存在"
                })
                {
                    StatusCode = 400
                });
            }
            AddPostCommentDTO dto = new AddPostCommentDTO();

            dto.CommentUserId = model.CommentUserId;
            dto.Content       = model.Content;
            dto.PostId        = model.PostId;
            dto.ReplyUserId   = model.ReplyUserId;
            return(new JsonResult(new APIResult <long> {
                Data = await CommentSvc.AddNewAsync(dto)
            }));
        }
コード例 #26
0
        public async Task <IActionResult> AdoptPost(AdoptPostModel model)
        {
            var post = await PostSvc.GetByIdAsync(model.PostId);

            if (post == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "帖子不存在"
                })
                {
                    StatusCode = 400
                });
            }
            if (post.UserId != model.UserId)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "只有帖子拥有者才能采纳"
                })
                {
                    StatusCode = 400
                });
            }
            var comment = await CommentSvc.GetByIdAsync(model.CommentId);

            if (comment == null)
            {
                return(new JsonResult(new APIResult <long> {
                    ErrorMsg = "评论Id不存在"
                })
                {
                    StatusCode = 400
                });
            }
            await PostSvc.AdoptPostAsync(model.UserId, model.PostId, model.CommentId);

            return(Ok());
        }
コード例 #27
0
        public async Task <IActionResult> GetByTypeId(PostGetByTypeIdModel model)
        {
            var posts = await PostSvc.GetByPostTypeIdAsync(model.PostTypeId, model.PageIndex, model.PageDataCount, model.IsKnot,
                                                           model.IsEssence);

            if (posts == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = PostSvc.ErrorMsg
                }));
            }
            List <long> userIds = posts.Datas.Select(e => e.UserId).ToList();
            var         users   = await UserSvc.GetByIdsAsync(userIds);

            if (users == null)
            {
                return(Json(new AjaxResult {
                    Status = "error", ErrorMsg = UserSvc.ErrorMsg
                }));
            }
            return(Json(new AjaxResult {
                Status = "ok", Data = new { Posts = posts, Users = users }
            }));
        }
コード例 #28
0
 public async Task <IActionResult> GetDayPost()
 {
     return(new JsonResult(new APIResult <List <ListPostDTO> > {
         Data = await PostSvc.GetByDayCommentAsync()
     }));
 }