add admin interface model_list and distributor_list

FFIB 4 lat temu
rodzic
commit
b1e4112b8d
2 zmienionych plików z 45 dodań i 5 usunięć
  1. 42 5
      api/admin_views.py
  2. 3 0
      api/urls.py

+ 42 - 5
api/admin_views.py

@@ -16,7 +16,7 @@ from TimeConvert import TimeConvert as tc
16 16
 from account.models import UserInfo
17 17
 from coupon.models import UserCouponInfo
18 18
 from integral.models import SaleclerkSubmitLogInfo
19
-from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo
19
+from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, DistributorInfo
20 20
 from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo
21 21
 from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,
22 22
                                      ProductMachineStatusCode, UserStatusCode)
@@ -390,22 +390,21 @@ def statistic_distributor(request):
390 390
     except AdministratorInfo.DoesNotExist:
391 391
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
392 392
 
393
-    daily_sql = 'select id, ymd, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True %s %s GROUP BY ymd;' % (start_time, end_time, ('AND model_uni_name = %s' ,(model_name)) if model_name else '', ('AND distributor_name = %s' ,(distributor_name)) if distributor_name else '')
393
+    daily_sql = 'select id, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True %s %s GROUP BY ymd;' % (start_time, end_time, ('AND model_uni_name="%s"' % (model_name)) if model_name else '', ('AND distributor_name="%s"' % (distributor_name)) if distributor_name else '')
394 394
     daily_logs = SaleclerkSubmitLogInfo.objects.raw(daily_sql)
395
-    print(daily_logs)
396 395
 
397 396
     daily_logs = [{'ymd': log.ymd, '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 daily_logs]
398 397
 
399 398
     model_logs = []
400 399
     if model_name == '':
401
-        model_sql = 'select id, model_uni_name, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True %s GROUP BY model_uni_name;' % (start_time, end_time, ('AND distributor_name = %s' ,(distributor_name)) if distributor_name else '')
400
+        model_sql = 'select id, model_uni_name, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True %s GROUP BY model_uni_name;' % (start_time, end_time, ('AND distributor_name="%s"' % (distributor_name)) if distributor_name else '')
402 401
 
403 402
         model_logs = SaleclerkSubmitLogInfo.objects.raw(model_sql)
404 403
         model_logs = [{'model_uni_name': log.model_uni_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 model_logs]
405 404
     
406 405
     distributor_logs = []
407 406
     if distributor_name == '':
408
-        distributor_sql = 'select id, distributor_name, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True %s GROUP BY distributor_name;' % (start_time, end_time, ('AND model_uni_name = %s' ,(model_name)) if model_name else '')
407
+        distributor_sql = 'select id, distributor_name, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True %s GROUP BY distributor_name;' % (start_time, end_time, ('AND model_uni_name="%s"' % (model_name)) if model_name else '')
409 408
 
410 409
         distributor_logs = SaleclerkSubmitLogInfo.objects.raw(distributor_sql)
411 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]
@@ -774,3 +773,41 @@ def record_sale(request):
774 773
         'count': count,
775 774
         'left': left
776 775
     })
776
+
777
+def model_list(request):
778
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
779
+    admin_id = request.POST.get('admin_id', '')
780
+
781
+    if brand_id != settings.KODO_DEFAULT_BRAND_ID:
782
+        return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
783
+
784
+    try:
785
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
786
+    except AdministratorInfo.DoesNotExist:
787
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
788
+
789
+    infos = list(ModelInfo.objects.filter(status=True).values_list('model_uni_name', flat=True).distinct().order_by('model_uni_name'))
790
+
791
+    return response(200, 'Get Model List Success', u'获取型号列表成功', data={
792
+        'models': infos
793
+    })
794
+    
795
+def distributor_list(request):
796
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
797
+    admin_id = request.POST.get('admin_id', '')
798
+
799
+    if brand_id != settings.KODO_DEFAULT_BRAND_ID:
800
+        return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
801
+
802
+    try:
803
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
804
+    except AdministratorInfo.DoesNotExist:
805
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
806
+
807
+    infos = list(DistributorInfo.objects.filter(status=True).values_list('distributor_name', flat=True).distinct().order_by('distributor_name'))
808
+
809
+    return response(200, 'Get Model List Success', u'获取型号列表成功', data={
810
+        'distributors': infos
811
+    })
812
+    
813
+    

+ 3 - 0
api/urls.py

@@ -319,6 +319,9 @@ urlpatterns += [
319 319
 
320 320
     url(r'^admin/record/consumer$', admin_views.record_consumer, name='record_consumer'),
321 321
     url(r'^admin/record/sale$', admin_views.record_sale, name='record_sale'),
322
+
323
+    url(r'^admin/list/model$', admin_views.model_list, name='model_list'),
324
+    url(r'^admin/list/distributor$', admin_views.distributor_list, name='distributor_list'),
322 325
 ]
323 326
 
324 327
 urlpatterns += [