Pārlūkot izejas kodu

添加企业生成序列号接口

locky 4 gadi atpakaļ
vecāks
revīzija
f64aaed326
2 mainītis faili ar 86 papildinājumiem un 1 dzēšanām
  1. 2 1
      AnsjerUIDManage/urls.py
  2. 84 0
      Controller/CompanyController.py

+ 2 - 1
AnsjerUIDManage/urls.py

@@ -17,7 +17,7 @@ from django.contrib import admin
 from django.urls import path, re_path
 
 from Controller import UserController, FileController, UIDController, LogController, SalesController, \
-    OrderTaskController, HistoryUIDController, SerialNumberController, AlexaController
+    OrderTaskController, HistoryUIDController, SerialNumberController, AlexaController, CompanyController
 
 urlpatterns = [
     path('admin/', admin.site.urls),
@@ -35,6 +35,7 @@ urlpatterns = [
     path('sales', SalesController.SalesView.as_view()),
     path('device/online', SalesController.DeviceOnlineView.as_view()),
     re_path('serialNumber/(?P<operation>.*)', SerialNumberController.SerialNumberView.as_view()),
+    re_path('company/(?P<operation>.*)', CompanyController.CompanyView.as_view()),
 
     path('alexa/command', AlexaController.PushCommandView.as_view()),
 ]

+ 84 - 0
Controller/CompanyController.py

@@ -0,0 +1,84 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+import logging
+import time
+
+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.TokenObject import TokenObject
+from Service.CommonService import CommonService
+from Service.ModelService import ModelService
+
+
+class CompanyView(View):
+
+    def get(self, request, *arg, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.GET
+        operation = kwargs.get('operation', None)
+        return self.validate(request_dict, operation)
+
+    def post(self, request, *arg, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.POST
+        operation = kwargs.get('operation', None)
+        return self.validate(request_dict, operation)
+
+    def validate(self, request_dict, operation):
+        response = ResponseObject()
+        if operation == 'createSerial':
+            return self.do_create_serial(request_dict, response)
+
+    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]):
+            return response.json(444)
+
+        company_qs = CompanyModel.objects.filter(id=id)
+        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):
+            return response.json(10041)
+
+        try:
+            company = company_qs[0]
+            start_1 = p2p_sum_Serial_company
+            end_1 = int(start_1) + int(quantity)
+            serial_qs = SerialNumberModel.objects.filter(p2p=p2p)[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,
+                        company_id=company.id,
+                        serial_number=item.serial_number,
+                    ))
+                with transaction.atomic():
+                    CompanySerialModel.objects.bulk_create(company_serial_bulk)
+                    company.quantity = CompanySerialModel.objects.filter(company_id=id).count()
+                    company.save()
+                return response.json(0)
+            else:
+                return response.json(173)
+        except Exception as e:
+            djangoLogger = logging.getLogger('django')
+            djangoLogger.exception(repr(e))
+            return response.json(176, str(e))