Esempio n. 1
0
    def get(self, request, *args, **kwargs):
        today = datetime.date.today()
        total_view = redis_handle.get(REDIS_PREFIX + 'total_view') or 0
        total_like = redis_handle.get(REDIS_PREFIX + 'total_like') or 0
        total_user = redis_handle.get(COUNT_PREFIX + 'users') or 0
        total_comment = redis_handle.get(COUNT_PREFIX + 'comments') or 0

        today_view = redis_handle.hget(COUNT_PREFIX + 'view', str(today)) or 0
        today_like = redis_handle.hget(COUNT_PREFIX + 'like', str(today)) or 0
        today_user = redis_handle.hget(COUNT_PREFIX + 'user', str(today)) or 0
        today_comment = redis_handle.hget(COUNT_PREFIX + 'comment',
                                          str(today)) or 0

        everyday_view = redis_handle.hgetall(COUNT_PREFIX + 'view')
        everyday_like = redis_handle.hgetall(COUNT_PREFIX + 'like')
        everyday_user = redis_handle.hgetall(COUNT_PREFIX + 'user')
        everyday_comment = redis_handle.hgetall(COUNT_PREFIX + 'comment')

        data = {
            "today_view": today_view,
            "total_view": total_view,
            "everyday_view": everyday_view,
            "total_like": total_like,
            "today_like": today_like,
            "everyday_like": everyday_like,
            "total_user": total_user,
            "today_user": today_user,
            "everyday_user": everyday_user,
            "total_comment": total_comment,
            "today_comment": today_comment,
            "everyday_comment": everyday_comment
        }
        return Response(data, status=status.HTTP_200_OK)
Esempio n. 2
0
 def get(self, request, *args, **kwargs):
     """获取所有点赞数或指定文章的点赞数"""
     article_id = request.query_params.get('article_id', '')
     user_id = request.query_params.get('user_id', '')
     article_name = "article_like:" + str(article_id)
     view_name = "view:" + str(article_id)
     try:
         if article_id and user_id:
             article_like = redis_handle.zcard(REDIS_PREFIX + article_name)
             comment = redis_handle.get(REDIS_PREFIX + 'article_comment:' + str(article_id))
             comment = comment if comment else 0
             view = redis_handle.get(REDIS_PREFIX + view_name)
             view = view if view else 0
             flag = redis_handle.zrank(REDIS_PREFIX + article_name, user_id)
             data = {"total": article_like, 'view': view, "flag": flag, 'comment': comment}
         elif article_id:
             article_like = redis_handle.zcard(REDIS_PREFIX + article_name)
             view = redis_handle.get(REDIS_PREFIX + view_name)
             comment = redis_handle.get(REDIS_PREFIX + 'article_comment:' + str(article_id))
             comment = comment if comment else 0
             data = {"total": article_like, 'view': view,  'comment': comment}
         else:
             total_like = redis_handle.get(REDIS_PREFIX + "total_like")
             data = {"total": total_like}
     except Exception as e:
         return Response({'data': '数据查询失败'}, status=status.HTTP_400_BAD_REQUEST)
     return Response(data, status=status.HTTP_200_OK)
Esempio n. 3
0
 def get(self, request, *args, **kwargs):
     try:
         total_like = redis_handle.get(REDIS_PREFIX + "total_like")
         total_article = redis_handle.get(REDIS_PREFIX + "total_article")
         total_view = redis_handle.get(REDIS_PREFIX + "total_view")
         data = {'total_like': total_like, "total_article": total_article, "total_view": total_view}
     except Exception as e:
         return Response({"data": str(e.args)}, status=status.HTTP_400_BAD_REQUEST)
     return Response(data, status=status.HTTP_200_OK)
Esempio n. 4
0
 def list(self, request, *args, **kwargs):
     queryset = self.filter_queryset(self.get_queryset())
     page = self.paginate_queryset(queryset)
     if page is not None:
         serializer = self.get_serializer(page, many=True)
         res = self.get_paginated_response(serializer.data)
         for i in res.data['results']:
             view = redis_handle.get(REDIS_PREFIX + 'view:' + str(i['id']))
             comment = redis_handle.get(REDIS_PREFIX + 'article_comment:' + str(i['id']))
             i['comment'] = comment if comment else 0
             i['view'] = view if view else 0
             i['like'] = redis_handle.zcard(REDIS_PREFIX + 'article_like:' + str(i['id']))
         return res
     serializer = self.get_serializer(queryset, many=True)
     return Response(serializer.data)