浏览代码

序列号去除p2p类型

chenshibin 4 年之前
父节点
当前提交
9c5c8a1933
共有 4 个文件被更改,包括 155 次插入44 次删除
  1. 138 10
      Controller/CompanyController.py
  2. 8 14
      Controller/FileController.py
  3. 9 18
      Controller/SerialNumberController.py
  4. 0 2
      Model/models.py

+ 138 - 10
Controller/CompanyController.py

@@ -7,7 +7,7 @@ from django.db import transaction
 from django.views import View
 
 from Model.models import CompanyModel, UserModel, SerialNumberModel, CompanySerialModel
-from Object.ResponseObject import ResponseObject
+from Object.uidManageResponseObject import uidManageResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
@@ -28,17 +28,108 @@ class CompanyView(View):
         return self.validate(request_dict, operation)
 
     def validate(self, request_dict, operation):
-        response = ResponseObject()
+
+        response = uidManageResponseObject()
+
         if operation == 'createSerial':
             return self.do_create_serial(request_dict, response)
 
+        token = TokenObject(request_dict.get('token', None))
+        if token.code != 0:
+            return response.json(token.code)
+
+        if operation == 'create':
+            return self.do_create(token.userID, request_dict, response)
+        elif operation == 'update':
+            return self.do_update(token.userID, request_dict, response)
+        elif operation == 'delete':
+            return self.do_delete(token.userID, request_dict, response)
+        elif operation == 'list':
+            return self.do_list(token.userID, request_dict, response)
+        else:
+            return response.json(404)
+
+    def do_create(self, userID, request_dict, response):
+
+        # perm = ModelService.check_perm_uid_manage(userID, 0)
+        # if not perm:
+        #     return response.json(309)
+
+        name = request_dict.get('name', None)
+        mark = request_dict.get('mark', None)
+
+        if name and mark:
+            now_time = int(time.time())
+            company_qs = CompanyModel.objects.filter(mark=mark)
+            if company_qs.exists():
+                return response.json(174)
+
+            secret = self.create_secret(mark)
+            print(secret)
+
+            company = CompanyModel(
+                name=name,
+                mark=mark,
+                secret=secret,
+                quantity=0,
+                add_time=now_time,
+                update_time=now_time
+            )
+            company.save()
+            return response.json(0)
+        else:
+            return response.json(444)
+
+    def do_update(self, userID, request_dict, response):
+
+        # perm = ModelService.check_perm_uid_manage(userID, 0)
+        # if not perm:
+        #     return response.json(309)
+
+        id = request_dict.get('id', None)
+
+        if id:
+            name = request_dict.get('name', None)
+            quantity = request_dict.get('quantity', None)
+
+            update = {}
+
+            if name:
+                update['name'] = name
+
+            if quantity:
+                update['quantity'] = quantity
+
+            company_qs = CompanyModel.objects.filter(id=id)
+            if company_qs.exists():
+                company_qs.update(**update)
+                return response.json(0)
+            else:
+                return response.json(173)
+
+        else:
+            return response.json(444)
+
+    def do_delete(self, userID, request_dict, response):
+
+        # perm = ModelService.check_perm_uid_manage(userID, 0)
+        # if not perm:
+        #     return response.json(309)
+
+        id = request_dict.get('id', None)
+
+        if id:
+            CompanyModel.objects.filter(id=id).delete()
+            return response.json(0)
+        else:
+            return response.json(444)
+
     def do_create_serial(self, request_dict, response):
         # perm = ModelService.check_perm_uid_manage(userID, 0)
         # if not perm:
         #     return response.json(309)
 
         id = request_dict.get('id', None)
-        p2p = request_dict.get('p2p', None)
         quantity = request_dict.get('quantity', None)
 
         if not all([id, quantity]):
@@ -48,23 +139,22 @@ class CompanyView(View):
         if not company_qs.exists():
             return response.json(444)
 
-        p2p_sum_Serial = SerialNumberModel.objects.filter(p2p=p2p).count()
-        p2p_sum_Serial_company = CompanySerialModel.objects.filter(p2p=p2p).count()
-        p2p_sum_bind = p2p_sum_Serial - p2p_sum_Serial_company  # 剩余可绑定的序列号
-        if int(quantity) > int(p2p_sum_bind):
+        sum_Serial = SerialNumberModel.objects.filter().count()
+        sum_Serial_company = CompanySerialModel.objects.filter().count()
+        sum_bind = sum_Serial - sum_Serial_company  # 剩余可绑定的序列号
+        if int(quantity) > int(sum_bind):
             return response.json(10041)
 
         try:
             company = company_qs[0]
-            start_1 = p2p_sum_Serial_company
+            start_1 = sum_Serial_company
             end_1 = int(start_1) + int(quantity)
-            serial_qs = SerialNumberModel.objects.filter(p2p=p2p)[start_1:end_1]
+            serial_qs = SerialNumberModel.objects.filter()[start_1:end_1]
             if serial_qs.exists():
                 company_serial_bulk = []
                 now_time = int(time.time())
                 for item in serial_qs:
                     company_serial_bulk.append(CompanySerialModel(
-                        p2p=p2p,
                         status=1,
                         add_time=now_time,
                         update_time=now_time,
@@ -82,3 +172,41 @@ class CompanyView(View):
             djangoLogger = logging.getLogger('django')
             djangoLogger.exception(repr(e))
             return response.json(176, str(e))
+
+    def do_list(self, userID, request_dict, response):
+        # perm = ModelService.check_perm_uid_manage(userID, 0)
+        # if not perm:
+        #     return response.json(309)
+
+        page = request_dict.get('page', None)
+        line = request_dict.get('limit', None)
+        if page and line:
+            page = int(page)
+            line = int(line)
+
+            start = (page - 1) * line
+            end = start + line
+
+            company_qs = CompanyModel.objects.filter()
+            count = company_qs.count()
+
+            company_qs = company_qs[start: end].values()
+            print(company_qs)
+
+            res = {
+                'count': count,
+                'data': list(company_qs)
+            }
+            return response.json(0, res)
+        else:
+            return response.json(444)
+
+    def create_secret(self, mark):
+        len1 = len(mark)
+        secret = ''
+        for i in range(len1):
+            secret += CommonService.RandomStr(randomlength=1)
+            secret += mark[i]
+
+        print(mark)
+        return CommonService.encode_data_without_salt(secret)

+ 8 - 14
Controller/FileController.py

@@ -289,8 +289,6 @@ class UploadSerialNumberFileView(View):
 
     def reset_serial_number(self, request_dict, request):
         token = request_dict.get('token', None)
-        p2p = request_dict.get('area', None)
-        isReset = request_dict.get('isReset', 0)
         content = request_dict.get('fileName', None)
         print('content: ', content)
 
@@ -299,8 +297,6 @@ class UploadSerialNumberFileView(View):
         if tko.code != 0:
             return response.json(tko.code)
 
-        if not p2p or not content:
-            return response.json(444, 'p2p, content')
         try:
             content = base64.b64decode(content).decode().strip()
             content = content[3:(len(content)-3)]
@@ -308,13 +304,13 @@ class UploadSerialNumberFileView(View):
             print('serial_number_list', serial_number_list)
 
             # 重置使用状态为已下载的序列号为已分配
-            serial_number_qs = SerialNumberModel.objects.filter(serial_number__in=serial_number_list, p2p=p2p, use_status=2)
+            serial_number_qs = SerialNumberModel.objects.filter(serial_number__in=serial_number_list, use_status=2)
             count = serial_number_qs.count()    # 需要重置的序列号个数
             if count:
                 with transaction.atomic():
                     serial_number_qs.update(use_status=1)
                     OrderSerialNumberModel.objects.filter(serial_number__in=serial_number_qs).delete()
-                    operation = self.formatOperation('重置', int(count), p2p)
+                    operation = self.formatOperation('重置', int(count))
                     self.add_log(request, operation, tko)
             return response.json(0)
         except Exception as e:
@@ -340,10 +336,9 @@ class UploadSerialNumberFileView(View):
         }
         LogModel.objects.create(**log)
 
-    def formatOperation(self, operation, quantity, p2p):
+    def formatOperation(self, operation, quantity):
         operate = '{operation}{quantity}个{p2p}序列号'
-        p2p = '宸云' if p2p == '1' else 'TUTK'
-        return operate.format(operation=operation, quantity=quantity, p2p=p2p)
+        return operate.format(operation=operation, quantity=quantity)
 
 class DownloadUIDFileView(View):
 
@@ -687,12 +682,12 @@ class DownloadSerialNumberFileView(View):
                 return response.json(9)
 
             user = user_qs[0]
-            result = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p=area,
+            result = UserSerialNumberModel.objects.filter(user__id=user.id,
                                                           serial_number__use_status=1).aggregate(
                 num=Count('serial_number__use_status'))
 
 
-            us_qs = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p=area,
+            us_qs = UserSerialNumberModel.objects.filter(user__id=user.id,
                                                           serial_number__use_status=1).values('serial_number__serial_number')
 
             sns = []
@@ -753,9 +748,9 @@ class DownloadSerialNumberFileView(View):
             # print(item)
             item = sn_qs[i]
             serial_number = item.serial_number
-            sheet1.write(num, 0, serial_number + mark + str(item.p2p))
+            sheet1.write(num, 0, serial_number + mark)
             num += 1
-            content += serial_number.strip() + mark + str(item.p2p)
+            content += serial_number.strip() + mark
             content += '\n'
 
             serialNumberModel = SerialNumberModel(
@@ -763,7 +758,6 @@ class DownloadSerialNumberFileView(View):
                 serial_number = serial_number,
                 status=item.status,
                 use_status=2,
-                p2p=item.p2p,
                 add_time=item.add_time
             )
             updates.append(serialNumberModel)

+ 9 - 18
Controller/SerialNumberController.py

@@ -58,22 +58,17 @@ 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 = SerialNumberModel.objects.filter().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'))
+        result = UserSerialNumberModel.objects.filter(user__id=user.id, 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()
-        res_data = {'code': 0, 'chenyun': chenyun, 'tutk': tutk, 'chenyunsuper': chenyunsuper, 'tutksuper': tutksuper, 'chenyundev': chenyundev, 'tutkdev': tutkdev}
+        chenyun = SerialNumberModel.objects.filter(use_status=1).count()
+        res_data = {'code': 0, 'chenyun': chenyun, 'chenyunsuper': chenyunsuper, 'chenyundev': chenyundev}
         return response.json(0, {'data': res_data})
 
     def do_create(self, request_dict, response):
         quantity = int(request_dict.get('quantity', 0))
-        p2p = int(request_dict.get('p2p', 0))
 
         if not quantity:
             return response.json(444)
@@ -91,7 +86,7 @@ class SerialNumberView(View):
                 sum += 1    # sum每次递增1
                 # 前面补0至六位
                 serial_number = (6-len(serial_number))*'0' + serial_number
-                serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time, p2p=p2p))
+                serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time))
             # 开启事务写入
             with transaction.atomic():
                 SerialNumberModel.objects.bulk_create(serial_number_bulk)
@@ -105,7 +100,6 @@ class SerialNumberView(View):
     def do_allot(self, request_dict, response):
         username = request_dict.get('username', None)
         quantity = int(request_dict.get('quantity', None))
-        area = request_dict.get('area', None)
         token = request_dict.get('token', None)
 
         token = TokenObject(token)
@@ -122,7 +116,7 @@ class SerialNumberView(View):
             return response.json(444, 'username')
 
         # 取出对应区域可用的UID分配给allot_user
-        sn_qs = SerialNumberModel.objects.filter(p2p=area, use_status=0)[0:quantity]
+        sn_qs = SerialNumberModel.objects.filter(use_status=0)[0:quantity]
         sns = []
         for sn in sn_qs:
             sns.append(sn.serial_number)
@@ -151,7 +145,6 @@ class SerialNumberView(View):
                     serial_number=item.serial_number,
                     status=item.status,
                     use_status=1,
-                    p2p=item.p2p,
                     add_time=item.add_time
                 )
                 user_serial_number = UserSerialNumberModel()
@@ -183,7 +176,6 @@ class SerialNumberView(View):
         company_id = request_dict.get('company_id', None)
         token = request_dict.get('token', None)
         time_stamp = request_dict.get('time_stamp', None)
-        p2p_type = request_dict.get('p2p_type', None)
         mac = request_dict.get('mac', None)
         if token and time_stamp and quantity and company_id:
 
@@ -213,11 +205,11 @@ class SerialNumberView(View):
                 return response.json(9)
 
             user = user_qs[0]
-            result = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p=p2p_type,
+            result = UserSerialNumberModel.objects.filter(user__id=user.id,
                                                           serial_number__use_status=1).aggregate(
                 num=Count('serial_number__use_status'))
 
-            us_qs = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p=p2p_type,
+            us_qs = UserSerialNumberModel.objects.filter(user__id=user.id,
                                                          serial_number__use_status=1).values(
                 'serial_number__serial_number')
 
@@ -249,7 +241,6 @@ class SerialNumberView(View):
                         serial_number=serial_number,
                         status=sn_qs[0].status,
                         use_status=2,
-                        p2p=sn_qs[0].p2p,
                         add_time=sn_qs[0].add_time
                     )
                     updates = []
@@ -260,6 +251,6 @@ class SerialNumberView(View):
                 if save_point:
                     transaction.savepoint_rollback(save_point)  # 事务回滚
             redisObject.rpush(key, value)
-            return response.json(0, {'serial_number': serial_number + mark + str(sn_qs[0].p2p), 'mac': mac})
+            return response.json(0, {'serial_number': serial_number + mark, 'mac': mac})
         else:
             return response.json(444)

+ 0 - 2
Model/models.py

@@ -138,7 +138,6 @@ class SerialNumberModel(models.Model):
     serial_number = models.CharField(max_length=9, db_index=True, unique=True, verbose_name='序列号')
     status = models.SmallIntegerField(default=1, verbose_name='可用状态。0:不可用,1:可用')
     use_status = models.SmallIntegerField(default=0, db_index=True, verbose_name='使用状态, 0: 未使用, 1: 已分配  2: 已下载')
-    p2p = models.SmallIntegerField(default=0, verbose_name='p2p类型。0:无,1:宸云,2:tutk')
     add_time = models.IntegerField(default=0, verbose_name='添加时间')
 
     class Meta:
@@ -167,7 +166,6 @@ class CompanySerialModel(models.Model):
     company = models.ForeignKey(CompanyModel, to_field='id', on_delete=models.CASCADE, verbose_name='关联企业表的id')
     serial_number = models.CharField(max_length=11, db_index=True, blank=True, default='', verbose_name=u'6位数序列号')
     status = models.SmallIntegerField(default=0, verbose_name='序列号的状态。0:未使用,1:已使用,2:已和UID关联')
-    p2p = models.SmallIntegerField(default=0, verbose_name='p2p类型。0:无,1:宸云,2:tutk')
     add_time = models.IntegerField(default=0, verbose_name='添加时间')
     update_time = models.IntegerField(default=0, verbose_name='更新时间')