Exemplo n.º 1
0
        public IActionResult GetTimeNewsComments(long NewsId, long UserId)
        {
            IDatabase          redisDatabase        = RedisHelper.Value.Database;
            List <NewsComment> newsComments         = db.NewsComments.Where(s => s.NewsId == NewsId).ToList();
            Dictionary <NewsComment, string> result = new Dictionary <NewsComment, string>();

            foreach (var item in newsComments)
            {
                string Comment_PraiseNumber = redisDatabase.StringGet("NewsCommentId=" + item.Id.ToString() + "&PraiseNumber");
                result.Add(item, Comment_PraiseNumber);
            }
            return(Json(new
            {
                code = 200,
                data = result.OrderByDescending(s => s.Key.CommentTime).Select(s => new
                {
                    s.Key.Id,
                    s.Key.UserId,
                    Commenter = db.Users.FirstOrDefault(u => u.Id == s.Key.UserId).Username,
                    ImageUrl = db.Users.FirstOrDefault(u => u.Id == s.Key.UserId).ImageUrl,
                    StockAge = "股龄" + db.Users.FirstOrDefault(t => t.Id == s.Key.UserId).StockAge,
                    CommentTime = ParamHelper.TalkTimeConvert(s.Key.CommentTime),
                    s.Key.Point,
                    Comment_If_Praise = redisDatabase.KeyExists("NewsCommentId=" + s.Key.Id.ToString() + "&UserId=" + UserId.ToString()).ToString(),
                    Comment_PraiseNumber = redisDatabase.StringGet("NewsCommentId=" + s.Key.Id.ToString() + "&PraiseNumber")
                })
            }));
        }
Exemplo n.º 2
0
        public IActionResult GetNewsDetail(long NewsId, long UserId)
        {
            IDatabase redisDatabase    = RedisHelper.Value.Database;
            News      news             = db.News.FirstOrDefault(s => s.Id == NewsId);
            string    TalkPraise_Key   = "NewsId=" + news.Id + "&Praise";
            string    TalkTransmit_Key = "NewsId=" + news.Id + "&Transmit";
            string    TalkComment_Key  = "NewsId=" + news.Id + "&CommentNumber";
            string    NewsRead_Key     = "NewsId=" + news.Id + "&ReadNumber";
            string    News_User_Key    = "NewsId=" + NewsId.ToString() + "&UserId=" + UserId.ToString();

            redisDatabase.StringIncrementAsync(NewsRead_Key, 1);
            string             praiseNumber   = redisDatabase.StringGet(TalkPraise_Key);
            string             transmitNumber = redisDatabase.StringGet(TalkTransmit_Key);
            string             commentNumber  = redisDatabase.StringGet(TalkComment_Key);
            string             readNumber     = redisDatabase.StringGet(NewsRead_Key);
            string             if_Praise      = redisDatabase.KeyExists(News_User_Key).ToString();
            List <string>      keywords       = BaiduPlatform.GetKeyWords(Title: news.Title, Content: news.Content);
            List <NewsComment> newsComments   = db.NewsComments.Where(s => s.NewsId == NewsId).OrderByDescending(s => s.CommentTime).ToList();

            return(Json(new
            {
                news.Id,
                news.Title,
                news.Content,
                news.Source,
                IssueTime = ParamHelper.TalkTimeConvert(news.IssueTime),
                news.PicUrl1,
                news.PicUrl2,
                news.PicUrl3,
                PraiseNumber = praiseNumber,
                TransmitNumber = transmitNumber,
                CommentNumber = commentNumber,
                ReadNumber = readNumber,
                If_Praise = if_Praise,
                NewsCommentsData = newsComments.Select(s => new
                {
                    s.Id,
                    UserId = s.UserId,
                    Commenter = db.Users.FirstOrDefault(u => u.Id == s.UserId).Username,
                    ImageUrl = db.Users.FirstOrDefault(u => u.Id == s.UserId).ImageUrl,
                    StockAge = "股龄" + db.Users.FirstOrDefault(t => t.Id == s.UserId).StockAge,
                    CommentTime = ParamHelper.TalkTimeConvert(s.CommentTime),
                    s.Point,
                    Comment_If_Praise = redisDatabase.KeyExists("NewsCommentId=" + s.Id.ToString() + "&UserId=" + UserId.ToString()).ToString(),
                    Comment_PraiseNumber = redisDatabase.StringGet("NewsCommentId=" + s.Id.ToString() + "&PraiseNumber")
                }),
                KeywordsData = keywords
            }));
        }
Exemplo n.º 3
0
        public IActionResult GetTradeHistory(long UserId)
        {
            StockAccount stockAccount = db.StockAccounts.FirstOrDefault(s => s.UserId == UserId);

            if (stockAccount == null)
            {
                return(Json(new
                {
                    code = 400,
                    message = "没有数据"
                }));
            }
            else
            {
                List <TradeHistory> tradeHistories = db.TradeHistories.Where(s => s.StockAccountId == stockAccount.Id).ToList();
                if (tradeHistories.Count == 0)
                {
                    return(Json(new
                    {
                        code = 400,
                        message = "没有数据"
                    }));
                }
                else
                {
                    return(Json(new
                    {
                        code = 200,
                        data = tradeHistories.OrderByDescending(s => s.TradeTime).Select(s => new
                        {
                            s.Id,
                            s.StockCode,
                            s.StockName,
                            TransactionType = s.TransactionType.ToString(),
                            s.TransactionValue,
                            s.TransactionPrice,
                            s.TransactionAmount,
                            TradeTime = ParamHelper.TalkTimeConvert(s.TradeTime)
                        })
                    }));
                }
            }
        }
Exemplo n.º 4
0
        public HttpResponseMessage SendNewsComment(long NewsId, long UserId, string Point)
        {
            IDatabase   redisDatabase   = RedisHelper.Value.Database;
            string      NewsComment_Key = "NewsId=" + NewsId.ToString() + "&CommentNumber";
            NewsComment newsComment     = new NewsComment();
            User        commenter       = db.Users.FirstOrDefault(s => s.Id == UserId);

            try
            {
                newsComment.News        = db.News.FirstOrDefault(s => s.Id == NewsId);
                newsComment.NewsId      = NewsId;
                newsComment.UserId      = UserId;
                newsComment.Point       = Point;
                newsComment.Commenter   = commenter.Username;
                newsComment.CommentTime = DateTime.Now;
                db.NewsComments.Add(newsComment);
                db.SaveChanges();
                redisDatabase.StringIncrement(NewsComment_Key, 1);
                string NewsComment_Praise_Key = "NewsCommentId=" + newsComment.Id.ToString() + "&PraiseNumber";
                redisDatabase.StringSet(NewsComment_Praise_Key, 0);
            }
#pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
            catch (Exception ex)
#pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
            {
                return(ApiResponse.BadRequest("评论失败!"));
            }
            return(ApiResponse.Ok(new
            {
                newsComment.Id,
                newsComment.NewsId,
                newsComment.UserId,
                NewsCommentTime = ParamHelper.TalkTimeConvert(newsComment.CommentTime),
                newsComment.Point,
                newsComment.Commenter,
                StockAge = "股龄" + commenter.StockAge,
                commenter.ImageUrl
            }));
        }
Exemplo n.º 5
0
        public IActionResult SearchNews(string SearchText)
        {
            if (SearchText.Trim().Length == 0 || SearchText == null || SearchText == "" || SearchText.Equals(""))
            {
                return(Json(new
                {
                    code = 200,
                    data = new string[] { }
                }));
            }
            List <News> news = new List <News>();

            if (SearchText.Trim().Length < 5)
            {
                news = db.News.Where(s => s.NewsType == Enums.NewsType.首页 && (s.Title.ToLower() == SearchText.ToLower() || s.Title.ToLower().Contains(SearchText) || s.Content.ToLower().Contains(SearchText) || GetSimilarity(s.Title, SearchText) > 0.6)).OrderByDescending(s => s.IssueTime).ToList();
            }
            else
            {
                JObject  result = null;
                string   cut_sentence;
                string[] words_array;
                try
                {
                    string         url     = "http://116.62.208.165/api/cut_sentence?Sentence=" + SearchText;
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.Method = "GET";
                    HttpWebResponse response         = (HttpWebResponse)request.GetResponse();
                    Stream          myResponseStream = response.GetResponseStream();
                    StreamReader    myStreamReader   = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                    string          retString        = myStreamReader.ReadToEnd();
                    result       = JsonConvert.DeserializeObject <JObject>(retString);
                    cut_sentence = result["data"].ToString().Trim();
                    words_array  = cut_sentence.Split(" ").ToArray();
                    foreach (var item in db.News.Where(s => s.NewsType == Enums.NewsType.首页).ToList())
                    {
                        for (int i = 0; i < words_array.Length; i++)
                        {
                            if (item.Title.ToLower().Contains(words_array[i].Trim()) || item.Content.ToLower().Contains(words_array[i].Trim()))
                            {
                                news.Add(item);
                                break;
                            }
                        }
                    }
                }
#pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
                catch (Exception ex)
#pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
                {
                    return(Json(new
                    {
                        code = 400,
                        data = "糟糕,网络好像出问题了"
                    }
                                ));
                }
            }

            return(Json(new
            {
                code = 200,
                data = news.Select(s => new
                {
                    s.Id,
                    Title = s.Title.Length > 18 ? s.Title.Substring(0, 18) + "…" : s.Title,
                    Content = s.Content.Length > 40 ? s.Content.Substring(0, 40) + "…":s.Content,
                    s.Source,
                    IssueTime = ParamHelper.TalkTimeConvert(s.IssueTime)
                })
            }));
        }
Exemplo n.º 6
0
        public IActionResult GetMainPageNewsList(int Page)
        {
            IDatabase    redisDatabase = RedisHelper.Value.Database;
            IList <News> news          = db.News.Where(s => s.NewsType == Enums.NewsType.首页).OrderByDescending(s => s.IssueTime).ToList();

            Console.WriteLine(news.Count);
            int page = (news.Count / 7) + (news.Count * 1.0 % 7 == 0 ? 0 : 1);

            if (Page > page)
            {
                return(Json(new
                {
                    code = 400,
                    message = "没有更多数据了"
                }));
            }
            Dictionary <News, string[]> newsList = new Dictionary <News, string[]>();

            if ((news.Count - (Page - 1) * 7) >= 7)
            {
                for (int i = (Page - 1) * 7; i < Page * 7; i++)
                {
                    string NewsPraise_Key   = "NewsId=" + news[i].Id + "&Praise";
                    string NewsTransmit_Key = "NewsId=" + news[i].Id + "&Transmit";
                    string NewsComment_Key  = "NewsId=" + news[i].Id + "&CommentNumber";
                    string NewsRead_Key     = "NewsId=" + news[i].Id + "&ReadNumber";
                    if (redisDatabase.KeyExists(NewsPraise_Key) == false)
                    {
                        redisDatabase.StringSetAsync(NewsPraise_Key, 0);
                    }
                    if (redisDatabase.KeyExists(NewsTransmit_Key) == false)
                    {
                        redisDatabase.StringSetAsync(NewsTransmit_Key, 0);
                    }
                    if (redisDatabase.KeyExists(NewsComment_Key) == false)
                    {
                        redisDatabase.StringSetAsync(NewsComment_Key, 0);
                    }
                    if (redisDatabase.KeyExists(NewsRead_Key) == false)
                    {
                        redisDatabase.StringSetAsync(NewsRead_Key, 0);
                    }
                    string praiseNumber   = redisDatabase.StringGet(NewsPraise_Key);
                    string transmitNumber = redisDatabase.StringGet(NewsTransmit_Key);
                    string commentNumber  = redisDatabase.StringGet(NewsComment_Key);
                    newsList.Add(news[i], new string[3] {
                        praiseNumber, transmitNumber, commentNumber
                    });
                }
            }
            else
            {
                for (int i = (Page - 1) * 7; i < news.Count; i++)
                {
                    string NewsPraise_Key   = "NewsId=" + news[i].Id + "&Praise";
                    string NewsTransmit_Key = "NewsId=" + news[i].Id + "&Transmit";
                    string NewsComment_Key  = "NewsId=" + news[i].Id + "&CommentNumber";
                    string NewsRead_Key     = "NewsId=" + news[i].Id + "&ReadNumber";
                    if (redisDatabase.KeyExists(NewsPraise_Key) == false)
                    {
                        redisDatabase.StringSetAsync(NewsPraise_Key, 0);
                    }
                    if (redisDatabase.KeyExists(NewsTransmit_Key) == false)
                    {
                        redisDatabase.StringSetAsync(NewsTransmit_Key, 0);
                    }
                    if (redisDatabase.KeyExists(NewsComment_Key) == false)
                    {
                        redisDatabase.StringSetAsync(NewsComment_Key, 0);
                    }
                    if (redisDatabase.KeyExists(NewsRead_Key) == false)
                    {
                        redisDatabase.StringSetAsync(NewsRead_Key, 0);
                    }
                    string praiseNumber   = redisDatabase.StringGet(NewsPraise_Key);
                    string transmitNumber = redisDatabase.StringGet(NewsTransmit_Key);
                    string commentNumber  = redisDatabase.StringGet(NewsComment_Key);
                    newsList.Add(news[i], new string[3] {
                        praiseNumber, transmitNumber, commentNumber
                    });
                }
            }

            return(Json(new
            {
                page,
                data = newsList.Select(s => new
                {
                    s.Key.Id,
                    s.Key.Title,
                    IssueTime = ParamHelper.TalkTimeConvert(s.Key.IssueTime),
                    s.Key.PicUrl1,
                    s.Key.Source,
                    PraiseNumber = s.Value[0],
                    TransmitNumber = s.Value[1],
                    CommentNumber = s.Value[2]
                })
            }));
        }
Exemplo n.º 7
0
        public IActionResult GetAllFollowUsers(long UserId)
        {
            IDatabase            redisDatabase = RedisHelper.Value.Database;
            IList <FollowRecord> followRecords = db.FollowRecords.Where(s => s.FollowingId == UserId).ToList();
            IList <Comment>      comments      = db.Comments.ToList();

            if (followRecords == null || followRecords.Count == 0)
            {
                return(Json(new
                {
                    data = new { }
                }));
            }
            Dictionary <Talk, KeyValuePair <User, string[]> > followTalks = new Dictionary <Talk, KeyValuePair <User, string[]> >();

            for (int i = 0; i < followRecords.Count; i++)
            {
                User        tempUser  = db.Users.FirstOrDefault(s => s.Id == followRecords[i].FollowedId);
                List <Talk> tempTalks = db.Talks.Where(s => s.UserId == tempUser.Id).ToList();
                if (tempTalks.Count == 0)
                {
                    continue;
                }
                else
                {
                    for (int j = 0; j < tempTalks.Count; j++)
                    {
                        string TalkPraise_Key         = "TalkId=" + tempTalks[j].Id.ToString() + "&PraiseNumber";//格式例如: TalkId=1&Praise
                        string TalkTransmit_Key       = "TalkId=" + tempTalks[j].Id.ToString() + "&TransmitNumber";
                        string TalkComment_Key        = "TalkId=" + tempTalks[j].Id.ToString() + "&CommentNumber";
                        string TalkRead_Key           = "TalkId=" + tempTalks[j].Id.ToString() + "&ReadNumber";
                        string Talk_User_Praise_Key   = "TalkId=" + tempTalks[j].Id.ToString() + "&UserId=" + UserId.ToString();
                        string TalkPraise_Value       = redisDatabase.StringGet(TalkPraise_Key);
                        string TalkTransmit_Value     = redisDatabase.StringGet(TalkTransmit_Key);
                        string TalkComment_Value      = redisDatabase.StringGet(TalkComment_Key);
                        string TalkRead_Value         = (int.Parse(TalkPraise_Value) + int.Parse(TalkComment_Value)).ToString();
                        string Talk_User_Praise_Value = redisDatabase.KeyExists(Talk_User_Praise_Key).ToString();
                        followTalks.Add(tempTalks[j], new KeyValuePair <User, string[]>(tempUser, new string[] { TalkPraise_Value, TalkTransmit_Value, TalkComment_Value, TalkRead_Value, Talk_User_Praise_Value }));
                    }
                }
            }
            return(Json(new
            {
                data = followTalks.OrderByDescending(s => s.Key.TalkTime).Select(s => new
                {
                    TalkId = s.Key.Id,
                    Content = s.Key.Content,
                    TalkTime = ParamHelper.TalkTimeConvert(s.Key.TalkTime),
                    PraiseNumber = s.Value.Value[0],
                    TransmitNumber = s.Value.Value[1],
                    CommentNumber = s.Value.Value[2],
                    ReadNumber = s.Value.Value[3],
                    If_Priase = s.Value.Value[4],
                    UserId = s.Value.Key.Id,
                    Username = s.Value.Key.Username,
                    ImageUrl = s.Value.Key.ImageUrl,
                    Pictures = db.Pictures.Where(p => p.TalkId == s.Key.Id).Select(p => p.FileUrl).ToList(),
                    CommentData = s.Key.Comments.Where(c => c.TalkId == s.Key.Id).Select(c => new
                    {
                        c.Id,
                        c.Point,
                        c.UserId,
                        Username = db.Users.FirstOrDefault(u => u.Id == c.UserId).Username,
                        ImageUrl = db.Users.FirstOrDefault(t => t.Id == c.UserId).ImageUrl,
                        CommentTime = ParamHelper.TalkTimeConvert(c.CommentTime),
                        PraiseNumber = redisDatabase.StringGet("CommentId=" + c.Id.ToString() + "&Praise"),
                        Comment_If_Praise = redisDatabase.KeyExists("CommentId=" + c.Id.ToString() + "&UserId=" + UserId.ToString()).ToString()
                    })
                })
            }));
        }