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") }) })); }
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 })); }
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) }) })); } } }
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 })); }
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) }) })); }
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] }) })); }
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() }) }) })); }