update statistic_consumer

FFIB 5 年 前
コミット
feeeee4d16
共有1 個のファイルを変更した53 個の追加8 個の削除を含む
  1. 53 8
      api/admin_views.py

+ 53 - 8
api/admin_views.py

@@ -385,9 +385,9 @@ def dashboard(request):
385 385
 
386 386
     sale_daily_logs = list(sale_logs.values('ymd').annotate(num=Count('pk')))
387 387
 
388
-    sale_model_logs = list(sale_logs.values('model_uni_name').annotate(num=Count('pk')))[:10]
388
+    sale_model_logs = list(sale_logs.values('model_uni_name').annotate(num=Count('pk')).order_by('-num'))[:10]
389 389
 
390
-    sale_distributor_logs = list(sale_logs.values('distributor_name').annotate(num=Count('pk')))[:10]
390
+    sale_distributor_logs = list(sale_logs.values('distributor_name').annotate(num=Count('pk')).order_by('-num'))[:10]
391 391
 
392 392
     #消费者统计
393 393
     logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, status=True)
@@ -396,9 +396,9 @@ def dashboard(request):
396 396
 
397 397
     consumer_daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
398 398
 
399
-    consumer_model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')))[:10]
399
+    consumer_model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')).order_by('-num'))[:10]
400 400
 
401
-    consumer_distributor_logs = list(logs.values('province').annotate(num=Count('pk')))[:10]
401
+    consumer_province_logs = list(logs.values('province').annotate(num=Count('pk')).order_by('-num'))[:10]
402 402
 
403 403
     return response(200, 'Get Distributor Statistic Success', u'获取经销商统计成功', data={
404 404
         'sale_daily_logs': sale_daily_logs,
@@ -406,7 +406,7 @@ def dashboard(request):
406 406
         'sale_distributor_logs': sale_distributor_logs,
407 407
         'consumer_daily_logs': consumer_daily_logs,
408 408
         'consumer_model_logs': consumer_model_logs,
409
-        'consumer_distributor_logs': consumer_distributor_logs,
409
+        'consumer_province_logs': consumer_province_logs,
410 410
         'sale_count': sale_count,
411 411
         'consumer_count': consumer_count,
412 412
     })
@@ -429,13 +429,58 @@ def statistic_consumer(request):
429 429
     logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, status=True)
430 430
 
431 431
     daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
432
+    daily_code1_logs = list(logs.filter(code_version=1).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
433
+    daily_code2_logs = list(logs.filter(code_version=2).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
432 434
 
433
-    model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')))
435
+    j = 0
436
+    k = 0
437
+    for i in range(0, len(daily_logs)):
438
+        daily_logs[i]['code1'] = 0
439
+        daily_logs[i]['code2'] = 0
440
+        if j < len(daily_code1_logs) and daily_logs[i]['ymd'] == daily_code1_logs[j]['ymd']:
441
+            daily_logs[i]['code1'] = daily_code1_logs[j]['num']
442
+            j += 1
443
+        
444
+        if k < len(daily_code2_logs) and daily_logs[i]['ymd'] == daily_code2_logs[k]['ymd']:
445
+            daily_logs[i]['code2'] = daily_code2_logs[k]['num']
446
+            k += 1
434 447
 
435
-    distributor_logs = list(logs.values('province').annotate(num=Count('pk')))
448
+    model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')).order_by('-num'))
449
+    model_code1_logs = list(logs.filter(code_version=1).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
450
+    model_code2_logs = list(logs.filter(code_version=2).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
451
+
452
+    j = 0
453
+    k = 0
454
+    for i in range(0, len(model_logs)):
455
+        model_logs[i]['code1'] = 0
456
+        model_logs[i]['code2'] = 0
457
+        if j < len(model_code1_logs) and model_logs[i]['model_uni_name'] == model_code1_logs[j]['model_uni_name']:
458
+            model_logs[i]['code1'] = model_code1_logs[j]['num']
459
+            j += 1
460
+        
461
+        if k < len(model_code2_logs) and model_logs[i]['model_uni_name'] == model_code2_logs[k]['model_uni_name']:
462
+            model_logs[i]['code2'] = model_code2_logs[k]['num']
463
+            k += 1
464
+
465
+    province_logs = list(logs.values('province').annotate(num=Count('pk')).order_by('province'))
466
+    province_code1_logs = list(logs.filter(code_version=1).values('province').annotate(num=Count('pk')).order_by('province'))
467
+    province_code2_logs = list(logs.filter(code_version=2).values('province').annotate(num=Count('pk')).order_by('province'))
468
+
469
+    j = 0
470
+    k = 0
471
+    for i in range(0, len(province_logs)):
472
+        province_logs[i]['code1'] = 0
473
+        province_logs[i]['code2'] = 0
474
+        if j < len(province_code1_logs) and province_logs[i]['province'] == province_code1_logs[j]['province']:
475
+            province_logs[i]['code1'] = province_code1_logs[j]['num']
476
+            j += 1
477
+        
478
+        if k < len(province_code2_logs) and province_logs[i]['province'] == province_code2_logs[k]['province']:
479
+            province_logs[i]['code2'] = province_code2_logs[k]['num']
480
+            k += 1
436 481
 
437 482
     return response(200, 'Get Consumer Statistic Success', u'获取消费者统计成功', data={
438 483
         'daily_logs': daily_logs,
439 484
         'model_logs': model_logs,
440
-        'distributor_logs': distributor_logs,
485
+        'province_logs': province_logs,
441 486
     })