Ejemplo n.º 1
0
        /// <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));
            }
        }
Ejemplo n.º 2
0
        /// <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));
        }