|
|
@@ -409,105 +409,6 @@ def statistic_distributor(request):
|
409
|
409
|
distributor_logs = SaleclerkSubmitLogInfo.objects.raw(distributor_sql)
|
410
|
410
|
distributor_logs = [{'distributor_name': log.distributor_name, 'num': log.num, 'code1': log.code1, 'code2': log.code2, 'has_code1_scan_num': log.has_code1_scan_num, 'has_code2_scan_num': log.has_code2_scan_num} for log in distributor_logs]
|
411
|
411
|
|
412
|
|
- # daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
413
|
|
- # daily_code1_logs = list(logs.filter(code_version=1).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
414
|
|
- # daily_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
415
|
|
- # daily_code2_logs = list(logs.filter(code_version=2).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
416
|
|
- # daily_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
417
|
|
-
|
418
|
|
- # i1 = 0
|
419
|
|
- # i2 = 0
|
420
|
|
- # i3 = 0
|
421
|
|
- # i4 = 0
|
422
|
|
- # for i in range(0, len(daily_logs)):
|
423
|
|
- # daily_logs[i]['code1'] = 0
|
424
|
|
- # daily_logs[i]['code2'] = 0
|
425
|
|
- # daily_logs[i]['has_code1_scan_num'] = 0
|
426
|
|
- # daily_logs[i]['has_code2_scan_num'] = 0
|
427
|
|
- # if i1 < len(daily_code1_hasScan_logs) and daily_logs[i]['ymd'] == daily_code1_hasScan_logs[i1]['ymd']:
|
428
|
|
- # daily_logs[i]['has_code1_scan_num'] = daily_code1_hasScan_logs[i1]['num']
|
429
|
|
- # i1 += 1
|
430
|
|
-
|
431
|
|
- # if i2 < len(daily_code1_logs) and daily_logs[i]['ymd'] == daily_code1_logs[i2]['ymd']:
|
432
|
|
- # daily_logs[i]['code1'] = daily_code1_logs[i2]['num']
|
433
|
|
- # i2 += 1
|
434
|
|
-
|
435
|
|
- # if i3 < len(daily_code2_logs) and daily_logs[i]['ymd'] == daily_code2_logs[i3]['ymd']:
|
436
|
|
- # daily_logs[i]['code2'] = daily_code2_logs[i3]['num']
|
437
|
|
- # i3 += 1
|
438
|
|
-
|
439
|
|
- # if i4 < len(daily_code2_hasScan_logs) and daily_logs[i]['ymd'] == daily_code2_hasScan_logs[i4]['ymd']:
|
440
|
|
- # daily_logs[i]['has_code2_scan_num'] = daily_code2_hasScan_logs[i4]['num']
|
441
|
|
- # i4 += 1
|
442
|
|
-
|
443
|
|
- # if model_name:
|
444
|
|
- # model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
445
|
|
- # model_code1_logs = list(logs.filter(code_version=1).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
446
|
|
- # model_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
447
|
|
- # model_code2_logs = list(logs.filter(code_version=2).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
448
|
|
- # model_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
449
|
|
-
|
450
|
|
- # i1 = 0
|
451
|
|
- # i2 = 0
|
452
|
|
- # i3 = 0
|
453
|
|
- # i4 = 0
|
454
|
|
- # for i in range(0, len(model_logs)):
|
455
|
|
- # model_logs[i]['code1'] = 0
|
456
|
|
- # model_logs[i]['code2'] = 0
|
457
|
|
- # model_logs[i]['has_code1_scan_num'] = 0
|
458
|
|
- # model_logs[i]['has_code2_scan_num'] = 0
|
459
|
|
- # if i1 < len(model_code1_hasScan_logs) and model_logs[i]['model_uni_name'] == model_code1_hasScan_logs[i1]['model_uni_name']:
|
460
|
|
- # model_logs[i]['has_code1_scan_num'] = model_code1_hasScan_logs[i1]['num']
|
461
|
|
- # i1 += 1
|
462
|
|
-
|
463
|
|
- # if i2 < len(model_code1_logs) and model_logs[i]['model_uni_name'] == model_code1_logs[i2]['model_uni_name']:
|
464
|
|
- # model_logs[i]['code1'] = model_code1_logs[i2]['num']
|
465
|
|
- # i2 += 1
|
466
|
|
-
|
467
|
|
- # if i3 < len(model_code2_logs) and model_logs[i]['model_uni_name'] == model_code2_logs[i3]['model_uni_name']:
|
468
|
|
- # model_logs[i]['code2'] = model_code2_logs[i3]['num']
|
469
|
|
- # i3 += 1
|
470
|
|
-
|
471
|
|
- # if i4 < len(model_code2_hasScan_logs) and model_logs[i]['model_uni_name'] == model_code2_hasScan_logs[i4]['model_uni_name']:
|
472
|
|
- # model_logs[i]['has_code2_scan_num'] = model_code2_hasScan_logs[i4]['num']
|
473
|
|
- # i4 += 1
|
474
|
|
-
|
475
|
|
- # model_logs.sort(key=lambda k: (-k['num']))
|
476
|
|
-
|
477
|
|
- # if distributor_name:
|
478
|
|
- # distributor_logs = list(logs.values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
479
|
|
- # distributor_code1_logs = list(logs.filter(code_version=1).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
480
|
|
- # distributor_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
481
|
|
- # distributor_code2_logs = list(logs.filter(code_version=2).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
482
|
|
- # distributor_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
483
|
|
-
|
484
|
|
- # i1 = 0
|
485
|
|
- # i2 = 0
|
486
|
|
- # i3 = 0
|
487
|
|
- # i4 = 0
|
488
|
|
- # for i in range(0, len(distributor_logs)):
|
489
|
|
- # distributor_logs[i]['code1'] = 0
|
490
|
|
- # distributor_logs[i]['code2'] = 0
|
491
|
|
- # distributor_logs[i]['has_code1_scan_num'] = 0
|
492
|
|
- # distributor_logs[i]['has_code2_scan_num'] = 0
|
493
|
|
- # if i1 < len(distributor_code1_hasScan_logs) and distributor_logs[i]['distributor_name'] == distributor_code1_hasScan_logs[i1]['distributor_name']:
|
494
|
|
- # distributor_logs[i]['has_code1_scan_num'] = distributor_code1_hasScan_logs[i1]['num']
|
495
|
|
- # i1 += 1
|
496
|
|
-
|
497
|
|
- # if i2 < len(distributor_code1_logs) and distributor_logs[i]['distributor_name'] == distributor_code1_logs[i2]['distributor_name']:
|
498
|
|
- # distributor_logs[i]['code1'] = distributor_code1_logs[i2]['num']
|
499
|
|
- # i2 += 1
|
500
|
|
-
|
501
|
|
- # if i3 < len(distributor_code2_logs) and distributor_logs[i]['distributor_name'] == distributor_code2_logs[i3]['distributor_name']:
|
502
|
|
- # distributor_logs[i]['code2'] = distributor_code2_logs[i3]['num']
|
503
|
|
- # i3 += 1
|
504
|
|
-
|
505
|
|
- # if i4 < len(distributor_code2_hasScan_logs) and distributor_logs[i]['distributor_name'] == distributor_code2_hasScan_logs[i4]['distributor_name']:
|
506
|
|
- # distributor_logs[i]['has_code2_scan_num'] = distributor_code2_hasScan_logs[i4]['num']
|
507
|
|
- # i4 += 1
|
508
|
|
-
|
509
|
|
- # distributor_logs.sort(key=lambda k: (-k['num']))
|
510
|
|
-
|
511
|
412
|
return response(200, 'Get Distributor Statistic Success', u'获取经销商统计成功', data={
|
512
|
413
|
'daily_logs': daily_logs,
|
513
|
414
|
'model_logs': model_logs,
|
|
|
@@ -568,6 +469,7 @@ def statistic_consumer(request):
|
568
|
469
|
admin_id = request.POST.get('admin_id', '')
|
569
|
470
|
start_time = request.POST.get('start_time', '')
|
570
|
471
|
end_time = request.POST.get('end_time', '')
|
|
472
|
+ model_name = request.POST.get('model_name', '')
|
571
|
473
|
|
572
|
474
|
if brand_id != settings.KODO_DEFAULT_BRAND_ID:
|
573
|
475
|
return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
|
|
|
@@ -578,62 +480,22 @@ def statistic_consumer(request):
|
578
|
480
|
return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
|
579
|
481
|
|
580
|
482
|
# 消费者统计
|
581
|
|
- logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, status=True)
|
|
483
|
+ daily_sql = 'select id, Count(id) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2 FROM mch_consumeinfosubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND status=True %s GROUP BY ymd;' % (start_time, end_time, ('AND model_uni_name="%s"' % (model_name)) if model_name else '')
|
|
484
|
+
|
|
485
|
+ daily_logs = ConsumeInfoSubmitLogInfo.objects.raw(daily_sql)
|
|
486
|
+ daily_logs = [{'ymd': log.ymd, 'num': log.num, 'code1': log.code1, 'code2': log.code2} for log in daily_logs]
|
|
487
|
+
|
|
488
|
+ model_logs = []
|
|
489
|
+ if model_name == '':
|
|
490
|
+ model_sql = 'select id, model_uni_name, Count(id) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2 FROM mch_consumeinfosubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND status=True GROUP BY model_uni_name ORDER BY num desc;' % (start_time, end_time)
|
|
491
|
+
|
|
492
|
+ model_logs = ConsumeInfoSubmitLogInfo.objects.raw(model_sql)
|
|
493
|
+ model_logs = [{'model_uni_name': log.model_uni_name, 'num': log.num, 'code1': log.code1, 'code2': log.code2} for log in model_logs]
|
|
494
|
+
|
|
495
|
+ province_sql = 'select id, province, Count(id) AS num, Count(code_version=1 or NULL) AS code1, Count(code_version=2 or NULL) AS code2 FROM mch_consumeinfosubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND status=True %s GROUP BY province ORDER BY num desc;' % (start_time, end_time, ('AND model_uni_name="%s"' % (model_name)) if model_name else '')
|
582
|
496
|
|
583
|
|
- daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
584
|
|
- daily_code1_logs = list(logs.filter(code_version=1).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
585
|
|
- daily_code2_logs = list(logs.filter(code_version=2).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
586
|
|
-
|
587
|
|
- j = 0
|
588
|
|
- k = 0
|
589
|
|
- for i in range(0, len(daily_logs)):
|
590
|
|
- daily_logs[i]['code1'] = 0
|
591
|
|
- daily_logs[i]['code2'] = 0
|
592
|
|
- if j < len(daily_code1_logs) and daily_logs[i]['ymd'] == daily_code1_logs[j]['ymd']:
|
593
|
|
- daily_logs[i]['code1'] = daily_code1_logs[j]['num']
|
594
|
|
- j += 1
|
595
|
|
-
|
596
|
|
- if k < len(daily_code2_logs) and daily_logs[i]['ymd'] == daily_code2_logs[k]['ymd']:
|
597
|
|
- daily_logs[i]['code2'] = daily_code2_logs[k]['num']
|
598
|
|
- k += 1
|
599
|
|
-
|
600
|
|
- model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
601
|
|
- model_code1_logs = list(logs.filter(code_version=1).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
602
|
|
- model_code2_logs = list(logs.filter(code_version=2).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
603
|
|
-
|
604
|
|
- j = 0
|
605
|
|
- k = 0
|
606
|
|
- for i in range(0, len(model_logs)):
|
607
|
|
- model_logs[i]['code1'] = 0
|
608
|
|
- model_logs[i]['code2'] = 0
|
609
|
|
- if j < len(model_code1_logs) and model_logs[i]['model_uni_name'] == model_code1_logs[j]['model_uni_name']:
|
610
|
|
- model_logs[i]['code1'] = model_code1_logs[j]['num']
|
611
|
|
- j += 1
|
612
|
|
-
|
613
|
|
- if k < len(model_code2_logs) and model_logs[i]['model_uni_name'] == model_code2_logs[k]['model_uni_name']:
|
614
|
|
- model_logs[i]['code2'] = model_code2_logs[k]['num']
|
615
|
|
- k += 1
|
616
|
|
-
|
617
|
|
- model_logs.sort(key=lambda k: (-k['num']))
|
618
|
|
-
|
619
|
|
- province_logs = list(logs.values('province').annotate(num=Count('pk')).order_by('province'))
|
620
|
|
- province_code1_logs = list(logs.filter(code_version=1).values('province').annotate(num=Count('pk')).order_by('province'))
|
621
|
|
- province_code2_logs = list(logs.filter(code_version=2).values('province').annotate(num=Count('pk')).order_by('province'))
|
622
|
|
-
|
623
|
|
- j = 0
|
624
|
|
- k = 0
|
625
|
|
- for i in range(0, len(province_logs)):
|
626
|
|
- province_logs[i]['code1'] = 0
|
627
|
|
- province_logs[i]['code2'] = 0
|
628
|
|
- if j < len(province_code1_logs) and province_logs[i]['province'] == province_code1_logs[j]['province']:
|
629
|
|
- province_logs[i]['code1'] = province_code1_logs[j]['num']
|
630
|
|
- j += 1
|
631
|
|
-
|
632
|
|
- if k < len(province_code2_logs) and province_logs[i]['province'] == province_code2_logs[k]['province']:
|
633
|
|
- province_logs[i]['code2'] = province_code2_logs[k]['num']
|
634
|
|
- k += 1
|
635
|
|
-
|
636
|
|
- province_logs.sort(key=lambda k: (-k['num']))
|
|
497
|
+ province_logs = ConsumeInfoSubmitLogInfo.objects.raw(province_sql)
|
|
498
|
+ province_logs = [{'province': log.province, 'num': log.num, 'code1': log.code1, 'code2': log.code2} for log in province_logs]
|
637
|
499
|
|
638
|
500
|
return response(200, 'Get Consumer Statistic Success', u'获取消费者统计成功', data={
|
639
|
501
|
'daily_logs': daily_logs,
|