zoukankan      html  css  js  c++  java
  • 统计当天下单量

    class PlatformData(View):
        def get(self, request):
            r = dict()
            r["errno"] = 1
            r["order_total_num"] = OrderModel.objects.all().count()
            r["product_total_num"] = ProductModel.objects.all().count()
            r["success_order"] = OrderModel.objects.filter(state=2).count()
            r["cancel_order"] = OrderModel.objects.filter(state=4).count()
            r["nopay_order"] = OrderModel.objects.filter(state=1).count()
            r["trade_amount"] = serializer(RechargeModel.objects.all().aggregate(Sum("amount")))
            return HttpResponse(json.dumps(r))
    
    
    class DailyAmount(View):
        def get(self, request):
            daily_list = []
            for i in range(0, 31):
                dtime = datetime.datetime.today() - datetime.timedelta(days=i)
                daily_dict = {}
                dailyAmount = serializer(
                    RechargeModel.objects.filter(trade_no__month=dtime.month, trade_no__day=dtime.day).aggregate(
                        damount=Sum('amount')))
                amount = dailyAmount.pop('damount')
                timestamp = time.mktime(dtime.timetuple())
                daily_dict[timestamp] = amount
                daily_list.append(daily_dict)
            return HttpResponse(json.dumps(daily_list))
    
    
    class TayAmount(View):
        def get(self, request):
            today = datetime.datetime.today().day
            tomonth = datetime.datetime.today().month
            tAmount = serializer(RechargeModel.objects.filter(trade_no__month=tomonth, trade_no__day=today).
                                 aggregate(todayAmount=Sum('amount')))
            yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
            tomonth = yesterday.month
            today = yesterday.day
            yAmount = serializer(
                RechargeModel.objects.filter(trade_no__month=tomonth, trade_no__day=today).values(
                    'amount').aggregate(yesterdayAmount=Sum('amount')))
            tAmount.update(yAmount)
            return HttpResponse(json.dumps(tAmount))
    
    
    class DailyNum(View):
        def get(self, request):
            daily_list = []
            r = dict()
            for i in range(0, 31):
                dtime = datetime.datetime.today() - datetime.timedelta(days=i)
                daily_dict = {}
                dailyNum = serializer(
                    OrderModel.objects.filter(date_created__month=dtime.month, date_created__day=dtime.day).count())
                timestamp = time.mktime(dtime.timetuple())
                daily_dict[int(timestamp)] = dailyNum
                daily_list.append(daily_dict)
            r["errno"] = 1
            r["daily_list"] = daily_list
            return HttpResponse(json.dumps(r))
    
    
    class TayNum(View):
        def get(self, request):
            today = datetime.datetime.today().day
            tomonth = datetime.datetime.today().month
            tCount = serializer(OrderModel.objects.filter(date_created__month=tomonth, date_created__day=today).count())
            yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
            tomonth = yesterday.month
            today = yesterday.day
            yCount = serializer(
                OrderModel.objects.filter(date_created__month=tomonth, date_created__day=today).count())
            r = dict()
            r['errno'] = 1
            r['todayNum'] = tCount
            r['yesterdayNum'] = yCount
            return HttpResponse(json.dumps(r))
    

      

    models 

    date_created = models.DateTimeField(default=timezone.now, verbose_name='订单创建时间')
    

    views

    orderAmount = serializer(
            OrderModel.objects.values(time=TruncDay('date_created')).annotate(num=Count('id')))  (查出来是字典的格式,time是key对应时间戳,num是key对应的是数量)
    

      

  • 相关阅读:
    最新屏蔽微信举报方法
    C# WIN 生成机器码
    Quartz.net的快速简单上手使用以及防止IIS回收停止Job的处理
    MVC、Web API 请求接口报错“自定义错误模块不能识别此错误。”解决
    获取微信短链接的官方接口
    Window 通过cmd查看端口占用、相应进程、杀死进程
    微信域名检测、防封,微信跳转技术揭秘(二) -- 微信跳转揭秘
    微信域名检测、防封,微信跳转技术揭秘(一) -- 域名检测原理及防封方案
    各种比较方便给力的小工具
    《Git学习指南》学习笔记(三)
  • 原文地址:https://www.cnblogs.com/sunkai1993/p/7543544.html
Copyright © 2011-2022 走看看