add admin/dashboard and admin/statistic/consumer

FFIB 5 gadi atpakaļ
vecāks
revīzija
2719ab4af9
2 mainītis faili ar 80 papildinājumiem un 1 dzēšanām
  1. 77 1
      api/admin_views.py
  2. 3 0
      api/urls.py

+ 77 - 1
api/admin_views.py

@@ -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
     })

+ 3 - 0
api/urls.py

@@ -302,6 +302,9 @@ urlpatterns += [
302 302
     url(r'^admin/statistic/consumer/model$', admin_views.statistic_model, name='statistic_model'),
303 303
 
304 304
     url(r'^admin/statistic/distributor$', admin_views.statistic_distributor, name='statistic_distributor'),
305
+
306
+    url(r'^admin/dashboard$', admin_views.dashboard, name='dashboard'),
307
+    url(r'^admin/statistic/consumer$', admin_views.statistic_consumer, name='statistic_consumer'),
305 308
 ]
306 309
 
307 310
 urlpatterns += [