Example #1
0
        public async Task <string> GetLikeHate(Guid articleId, Guid userId)
        {
            using (ILikeHateService likeHateSvc = new LikeHateService())
            {
                var data = likeHateSvc.GetAll().Where(m => m.UserId == userId && m.ArticleId == articleId);
                if (await data.AnyAsync())//有存在记录
                {
                    //查询点赞了还是点踩了
                    var result = await data.FirstAsync();

                    if (result.Hate && result.Like)//两个都true错误,修改回未点赞和未点踩状态
                    {
                        result.Hate = false;
                        result.Like = false;
                        await likeHateSvc.EditAsync(result);

                        return("null");
                    }
                    else if (result.Like)//已经点赞,不可点踩
                    {
                        return("like");
                    }
                    else if (result.Hate)//已经点踩,不可点赞
                    {
                        return("hate");
                    }
                    else//其他情况
                    {
                        return("null");
                    }
                }
                else
                {
                    //没有记录当作没点赞也没点踩
                    return("none");
                }
            }
        }
Example #2
0
        /// <summary>
        /// 点赞
        /// </summary>
        /// <param name="articleId">文章id</param>
        /// <param name="userId">用户id</param>
        /// <returns></returns>
        public async Task GoodCountAdd(Guid articleId, Guid userId)
        {
            int likeCount;
            int hateCount;

            using (ILikeHateService likeHateSvc = new LikeHateService())
            {
                string result = await GetLikeHate(articleId, userId);

                if (result == "none")//没有创建过
                {
                    LikeHate likeHate = new LikeHate()
                    {
                        ArticleId = articleId, UserId = userId, Like = true, Hate = false
                    };
                    await likeHateSvc.CreatAsync(likeHate);
                }
                else if (result == "null")//创建了但都为false
                {
                    LikeHate likeHate = await likeHateSvc.GetAll().Where(m => m.ArticleId == articleId && m.UserId == userId && !m.Like && !m.Hate).FirstAsync();

                    likeHate.Like = true;
                    await likeHateSvc.EditAsync(likeHate);
                }
                likeCount = await likeHateSvc.GetAll().Where(m => m.ArticleId == articleId && m.Like).CountAsync();

                hateCount = await likeHateSvc.GetAll().Where(m => m.ArticleId == articleId && m.Hate).CountAsync();
            }

            using (IArticleService articleSvc = new ArticleService())
            {
                var article = await articleSvc.GetOneByIdAsync(articleId);

                article.BadCount  = hateCount;
                article.GoodCount = likeCount;
                await articleSvc.EditAsync(article);
            }
        }