コード例 #1
0
 def get_success_order_amount(cls, date: pendulum.DateTime):
     amount = (cls.objects.filter(
         status=cls.STATUS_FINISHED,
         created_at__range=[
             date.start_of("day"),
             date.end_of("day"),
         ],
     ).aggregate(amount=models.Sum("amount"))["amount"] or "0")
     return amount
コード例 #2
0
 def calc_traffic_by_datetime(cls,
                              dt: pendulum.DateTime,
                              user_id=None,
                              proxy_node=None):
     """获取指定日期指定用户的流量,只有今天的数据会hit db"""
     if dt.date() == utils.get_current_datetime().date():
         return cls._calc_traffic_by_datetime.uncached(
             cls,
             dt,
             user_id,
             proxy_node.id if proxy_node else None,
         )
     return cls._calc_traffic_by_datetime(
         dt.start_of("day"),
         user_id,
         proxy_node.id if proxy_node else None,
     )
コード例 #3
0
 def get_active_user_count_by_datetime(cls, dt: pendulum.DateTime):
     """获取指定日期的活跃用户数量,只有今天的数据会hit db"""
     today = utils.get_current_datetime()
     if dt.date() == today.date():
         return cls._get_active_user_count_by_datetime.uncached(cls, dt)
     return cls._get_active_user_count_by_datetime(dt.start_of("day"))
コード例 #4
0
 def _get_active_user_count_by_datetime(cls, dt: pendulum.DateTime):
     qs = (cls.objects.filter(
         created_at__range=[dt.start_of("day"),
                            dt.end_of("day")]).values("user_id").distinct())
     return qs.count()
コード例 #5
0
 def get_success_order_count(cls, dt: pendulum.DateTime):
     return cls.objects.filter(
         created_at__range=[dt.start_of("day"),
                            dt.end_of("day")],
         status=cls.STATUS_FINISHED,
     ).count()
コード例 #6
0
 def get_new_user_count_by_datetime(cls, date: pendulum.DateTime):
     return cls.objects.filter(date_joined__range=[
         date.start_of("day"),
         date.end_of("day"),
     ]).aggregate(count=models.Count("id"))["count"]