/// <summary> /// http://www.xiaoyaoji.cn/doc/2jNMQxXvqQ /// </summary> /// <param name="user"></param> /// <param name="message"></param> /// <returns></returns> public static async Task UpdateRating(string user, RequestMessage message) { while (true) { foreach (var item in UserWithMID) { var remsg = new ReMessage_updateRating() { ratings = new ReMessage_updateRating.Rating[10], userRatingDetails = new ReMessage_updateRating.UserRatingDetail[20], userTags = new ReMessage_updateRating.UserTag[1] { new ReMessage_updateRating.UserTag() { name = "1", content = "tag1" } } }; //装载用户评分 var _tempDetails = Modles.SparkData.Spark.Sql($"select global_temp.users.userId,rating,from_unixtime(timestamp, 'yyyy-MM-dd HH:mm') from global_temp.ratings,global_temp.users where movieId = {message.movieId} order by timestamp desc").Take(10).ToList(); var _flag = 0; foreach (var item2 in _tempDetails) { remsg.userRatingDetails[_flag++] = new ReMessage_updateRating.UserRatingDetail() { name = item2[0].ToString(), rating = double.Parse(item2[1].ToString()), date = item2[2].ToString() }; } //装载时间区域 var _tempTimeRatings = Modles.SparkData.Spark.Sql($"select from_unixtime(timestamp, 'yyyy-MM-dd') as stamp ,Avg(rating) from global_temp.ratings where movieId = {message.movieId} group by from_unixtime(timestamp, 'yyyy-MM-dd') order by stamp desc").Take(20).ToList(); _flag = 0; foreach (var item2 in _tempTimeRatings) { remsg.ratings[_flag++] = new ReMessage_updateRating.Rating() { rating = double.Parse(item2[1].ToString()), date = item2[0].ToString() }; } await item.Key.SendAsync("UpdateRating", "200", "成功", JsonConvert.SerializeObject(remsg)); } await Task.Delay(TimeSpan.FromMinutes(10)); } }
/// <summary> /// http://www.xiaoyaoji.cn/doc/2jNbBgWRcD /// </summary> /// <param name="user"></param> /// <param name="message"></param> /// <returns></returns> public async Task AddUserComment(string user, string invokeMessage) { var message = JsonConvert.DeserializeObject <RequestMessage>(invokeMessage); Console.WriteLine("Log:In AddUserComment:" + message); //Modles.SparkData.Ratings.A(1, message.rating.ToString(), message.tag); var remsg = new ReMessage_updateRating() { ratings = new ReMessage_updateRating.Rating[1] { new ReMessage_updateRating.Rating() { rating = message.rating, date = "2019-07-07"//DateTime.Now.ToString() } }, userRatingDetails = new ReMessage_updateRating.UserRatingDetail[1] { new ReMessage_updateRating.UserRatingDetail() { date = "2019-07-07", name = message.name, rating = message.rating } }, userTags = new ReMessage_updateRating.UserTag[1] { new ReMessage_updateRating.UserTag() { content = message.tag, name = message.name } } }; //Modles.SparkData.Ratings.Na().Fill(0); await Clients.Caller.SendAsync("AddUserComment", "200", "成功"); await Clients.Caller.SendAsync("updateRating", "200", "成功", JsonConvert.SerializeObject(remsg)); }