ソースを参照

增加公司关联序列号

chenshibin 4 年 前
コミット
fb7d10c546
2 ファイル変更13 行追加10 行削除
  1. 4 3
      Controller/FileController.py
  2. 9 7
      Controller/SerialNumberController.py

+ 4 - 3
Controller/FileController.py

@@ -18,7 +18,7 @@ from django.db import transaction
 
 from AnsjerUIDManage.config import BASE_DIR
 from Model.models import UIDModel, UserUIDModel, UserModel, LogModel, MacModel, OrderTaskModel, OrderUIDModel, \
-    SerialNumberModel, OrderSerialNumberModel, UserSerialNumberModel
+    SerialNumberModel, OrderSerialNumberModel, UserSerialNumberModel, CompanySerialModel
 from Object.RedisObject import RedisObject
 from Object.TokenObject import TokenObject
 from Object.ResponseObject import ResponseObject
@@ -676,9 +676,10 @@ class DownloadSerialNumberFileView(View):
 
 
             us_qs = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p=area,
-                                                          serial_number__use_status=1).values('serial_number')
+                                                          serial_number__use_status=1).values('serial_number__serial_number')
 
-            sn_qs = SerialNumberModel.objects.filter(id__in=us_qs)
+            cs_qs = CompanySerialModel.objects.filter(serial_number__in=us_qs, status=1).values('serial_number')
+            sn_qs = SerialNumberModel.objects.filter(serial_number__in=cs_qs)
             count = result['num']
             if count < quantity:
                 return response.json(444, '序列号不足')

+ 9 - 7
Controller/SerialNumberController.py

@@ -9,7 +9,7 @@ from django.db import transaction
 from django.db.models import Count
 from django.views import View
 
-from Model.models import SerialNumberModel, UserModel, UserSerialNumberModel, UserUIDModel
+from Model.models import SerialNumberModel, UserModel, UserSerialNumberModel, UserUIDModel, CompanySerialModel
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -56,17 +56,16 @@ class SerialNumberView(View):
             return response.json(9)
 
         user = user_qs[0]
-
-        chenyunsuper = SerialNumberModel.objects.filter(p2p=1).count()
-        tutksuper = SerialNumberModel.objects.filter(p2p=2).count()
+        chenyunsuper = CompanySerialModel.objects.filter(serial_number__in=SerialNumberModel.objects.filter(p2p=1), status=1).count()
+        tutksuper = CompanySerialModel.objects.filter(serial_number__in=SerialNumberModel.objects.filter(p2p=2), status=1).count()
 
         result = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p= 1, serial_number__use_status=1).aggregate(num=Count('serial_number__use_status'))
         chenyundev = result['num']
         result2 = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p=2,serial_number__use_status=1).aggregate(num=Count('serial_number__use_status'))
         tutkdev  = result2['num']
 
-        chenyun = SerialNumberModel.objects.filter(use_status=1 , p2p=1).count()
-        tutk = SerialNumberModel.objects.filter(use_status=1, p2p=2).count()
+        chenyun = CompanySerialModel.objects.filter(serial_number__in=SerialNumberModel.objects.filter(use_status=1 , p2p=1), status=1).count()
+        tutk = CompanySerialModel.objects.filter(serial_number__in=SerialNumberModel.objects.filter(use_status=1 , p2p=2), status=1).count()
         res_data = {'code': 0, 'chenyun': chenyun, 'tutk': tutk, 'chenyunsuper': chenyunsuper, 'tutksuper': tutksuper, 'chenyundev': chenyundev, 'tutkdev': tutkdev}
         return response.json(0, {'data': res_data})
 
@@ -121,7 +120,10 @@ class SerialNumberView(View):
             return response.json(444, 'username')
 
         # 取出对应区域可用的UID分配给allot_user
-        sn_qs = SerialNumberModel.objects.filter(p2p=area, use_status=0)
+        sn_qs = SerialNumberModel.objects.filter(p2p=area, use_status=0)[0:quantity]
+        cs_qs = CompanySerialModel.objects.filter(serial_number__in=sn_qs).values('serial_number')
+
+        sn_qs = SerialNumberModel.objects.filter(serial_number__in=cs_qs)
         count = sn_qs.count()
         if count < quantity:
             return response.json(444, '序列号不足')