浏览代码

后台新增序列号、企业管理功能

zhangdongming 3 年之前
父节点
当前提交
b61368f42a
共有 2 个文件被更改,包括 100 次插入1 次删除
  1. 97 0
      AdminController/SerialManageController.py
  2. 3 1
      Ansjer/urls.py

+ 97 - 0
AdminController/SerialManageController.py

@@ -0,0 +1,97 @@
+#!/usr/bin/python3.6
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2022 #
+# @Time    : 2022/3/9 9:20
+# @Author  : ming
+# @Email   : zhangdongming@asj6.wecom.work
+# @File    : SurveysManageController.py
+# @Software: PyCharm
+
+from django.utils.decorators import method_decorator
+from django.views.decorators.csrf import csrf_exempt
+from django.views.generic.base import View
+
+from Model.models import CompanyModel, SerialNumberModel
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+
+
+class SerialView(View):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(SerialView, self).dispatch(*args, **kwargs)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, request, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, request, operation)
+
+    def validation(self, request_dict, request, operation):
+        token = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
+        response = ResponseObject()
+        if token.code != 0:
+            return response.json(token.code)
+        response = ResponseObject(returntype='pc')
+        if operation == 'company-page':
+            return self.company_page(request_dict, response)
+        if operation == 'number/page':
+            return self.serial_page(request_dict, response)
+        return response.json(0)
+
+    @classmethod
+    def company_page(cls, request_dict, response):
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+
+        page = int(pageNo)
+        line = int(pageSize)
+        try:
+            request_qs = CompanyModel.objects.all()
+            if not request_qs.exists():
+                return response.json(0, {'list': '', 'total': 0})
+            total = request_qs.count()
+            company_page = request_qs.order_by('-add_time')[(page - 1) * line:page * line].values()
+            return response.json(0, {'list': list(company_page), 'total': total})
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+
+    @classmethod
+    def serial_page(cls, request_dict, response):
+        pageNo = request_dict.get('pageNo', None)
+        pageSize = request_dict.get('pageSize', None)
+        serial_number = request_dict.get('serialNumber', None)
+        status = request_dict.get('status', None)
+        use = request_dict.get('useStatus', None)
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+        page = int(pageNo)
+        line = int(pageSize)
+        try:
+            query = SerialNumberModel.objects.filter()
+            if serial_number:
+                query = query.filter(serial_number__contains=serial_number)
+            if status:
+                status = int(status)
+                query = query.filter(status=status)
+            if use:
+                use_status = int(use)
+                query = query.filter(use_status=use_status)
+            if not query.exists():
+                return response.json(0, {'list': '', 'total': 0})
+            total = query.count()
+            serial_number_page = query.order_by('-add_time')[(page - 1) * line:page * line].values()
+            if serial_number_page.exists():
+                return response.json(0, {'list': list(serial_number_page), 'total': total})
+            return response.json(173)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))

+ 3 - 1
Ansjer/urls.py

@@ -24,7 +24,7 @@ from Controller.Surveys import CloudStorageController
 from Controller.Cron import CronTaskController
 from AdminController import UserManageController, RoleController, MenuController, TestServeController, \
     ServeManagementController, LogManagementController, DeviceManagementController, VersionManagementController, \
-    AiServeController, SurveysManageController
+    AiServeController, SurveysManageController, SerialManageController
 
 urlpatterns = [
     url(r'^testApi/(?P<operation>.*)$', TestApi.testView.as_view()),
@@ -384,6 +384,8 @@ urlpatterns = [
     re_path('aiServe/(?P<operation>.*)', AiServeController.AiServeView.as_view()),
     # 问卷调查管理
     url(r'surveys/(?P<operation>.*)', SurveysManageController.SurveysView.as_view()),
+    # 序列号管理
+    url(r'serial/(?P<operation>.*)', SerialManageController.SerialView.as_view()),
     # 后台界面接口 -----------------------------------------------------
 
     # 定时删除任务接口