|
|
@@ -326,7 +326,7 @@ def statistic_distributor(request):
|
326
|
326
|
except AdministratorInfo.DoesNotExist:
|
327
|
327
|
return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
|
328
|
328
|
|
329
|
|
- logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, distributor_name__contains=distributor_name, model_uni_name__contains=model_name, code_version__contains=code_version, test_user=False, dupload=False, test_sn=False)
|
|
329
|
+ logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, distributor_name__contains=distributor_name, model_uni_name__contains=model_name, code_version__contains=code_version, test_user=False, dupload=False, test_sn=False, status=True)
|
330
|
330
|
|
331
|
331
|
daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
332
|
332
|
daily_hasScan_logs = list(logs.filter(has_scan=True).values('ymd').annotate(has_scan_num=Count('pk')).order_by('ymd'))
|
|
|
@@ -362,4 +362,80 @@ def statistic_distributor(request):
|
362
|
362
|
'daily_logs': daily_logs,
|
363
|
363
|
'model_logs': model_logs,
|
364
|
364
|
'distributor_logs': distributor_logs
|
|
365
|
+ })
|
|
366
|
+
|
|
367
|
+def dashboard(request):
|
|
368
|
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
369
|
+ admin_id = request.POST.get('admin_id', '')
|
|
370
|
+ start_time = request.POST.get('start_time', '')
|
|
371
|
+ end_time = request.POST.get('end_time', '')
|
|
372
|
+
|
|
373
|
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID:
|
|
374
|
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
|
|
375
|
+
|
|
376
|
+ try:
|
|
377
|
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
|
|
378
|
+ except AdministratorInfo.DoesNotExist:
|
|
379
|
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
|
|
380
|
+
|
|
381
|
+ #销售员统计
|
|
382
|
+ sale_logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, test_sn=False, status=True)
|
|
383
|
+
|
|
384
|
+ sale_count = sale_logs.count()
|
|
385
|
+
|
|
386
|
+ sale_daily_logs = list(sale_logs.values('ymd').annotate(num=Count('pk')))
|
|
387
|
+
|
|
388
|
+ sale_model_logs = list(sale_logs.values('model_uni_name').annotate(num=Count('pk')))[:10]
|
|
389
|
+
|
|
390
|
+ sale_distributor_logs = list(sale_logs.values('distributor_name').annotate(num=Count('pk')))[:10]
|
|
391
|
+
|
|
392
|
+ #消费者统计
|
|
393
|
+ logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, status=True)
|
|
394
|
+
|
|
395
|
+ consumer_count = logs.count()
|
|
396
|
+
|
|
397
|
+ consumer_daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
|
398
|
+
|
|
399
|
+ consumer_model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')))[:10]
|
|
400
|
+
|
|
401
|
+ consumer_distributor_logs = list(logs.values('province').annotate(num=Count('pk')))[:10]
|
|
402
|
+
|
|
403
|
+ return response(200, 'Get Distributor Statistic Success', u'获取经销商统计成功', data={
|
|
404
|
+ 'sale_daily_logs': sale_daily_logs,
|
|
405
|
+ 'sale_model_logs': sale_model_logs,
|
|
406
|
+ 'sale_distributor_logs': sale_distributor_logs,
|
|
407
|
+ 'consumer_daily_logs': consumer_daily_logs,
|
|
408
|
+ 'consumer_model_logs': consumer_model_logs,
|
|
409
|
+ 'consumer_distributor_logs': consumer_distributor_logs,
|
|
410
|
+ 'sale_count': sale_count,
|
|
411
|
+ 'consumer_count': consumer_count,
|
|
412
|
+ })
|
|
413
|
+
|
|
414
|
+def statistic_consumer(request):
|
|
415
|
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
416
|
+ admin_id = request.POST.get('admin_id', '')
|
|
417
|
+ start_time = request.POST.get('start_time', '')
|
|
418
|
+ end_time = request.POST.get('end_time', '')
|
|
419
|
+
|
|
420
|
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID:
|
|
421
|
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
|
|
422
|
+
|
|
423
|
+ try:
|
|
424
|
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
|
|
425
|
+ except AdministratorInfo.DoesNotExist:
|
|
426
|
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
|
|
427
|
+
|
|
428
|
+ #消费者统计
|
|
429
|
+ logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, status=True)
|
|
430
|
+
|
|
431
|
+ daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
|
432
|
+
|
|
433
|
+ model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')))
|
|
434
|
+
|
|
435
|
+ distributor_logs = list(logs.values('province').annotate(num=Count('pk')))
|
|
436
|
+
|
|
437
|
+ return response(200, 'Get Consumer Statistic Success', u'获取消费者统计成功', data={
|
|
438
|
+ 'daily_logs': daily_logs,
|
|
439
|
+ 'model_logs': model_logs,
|
|
440
|
+ 'distributor_logs': distributor_logs,
|
365
|
441
|
})
|