| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | 
							- import time
 
- from django.core.paginator import Paginator
 
- from django.views import View
 
- from Model.models import CustomCustomerOrderInfo, CustomCustomerDevice
 
- from Object.ResponseObject import ResponseObject
 
- from Object.TokenObject import TokenObject
 
- class CustomCustomerView(View):
 
-     def get(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         operation = kwargs.get('operation')
 
-         request_dict = request.GET
 
-         return self.validation(request, request_dict, operation)
 
-     def post(self, request, *args, **kwargs):
 
-         request.encoding = 'utf-8'
 
-         operation = kwargs.get('operation')
 
-         request_dict = request.POST
 
-         return self.validation(request, request_dict, operation)
 
-     def validation(self, request, request_dict, operation):
 
-         language = request_dict.get('language', 'cn')
 
-         response = ResponseObject(language)
 
-         if operation == 'getCustomCustomer':  # APP查詢定制客户信息
 
-             return self.get_custom_customer(request_dict, response)
 
-         elif operation == 'addCustomerDevice':  # 定制客户设备扫码添加接口
 
-             return self.add_customer_device(request_dict, response)
 
-         elif operation == 'getCustomerDeviceCount':  # 查询定制客户已扫码添加设备数量接口
 
-             return self.get_customer_device_count(request_dict, response)
 
-         else:
 
-             return response.json(414)
 
-     @staticmethod
 
-     def get_custom_customer(request_dict, response):
 
-         """
 
-         APP查询定制客户信息
 
-         :param request_dict:
 
-         :param response:
 
-         :return:
 
-         """
 
-         order_number = request_dict.get('orderNumber', None)
 
-         if not order_number:
 
-             return response.json(444)
 
-         try:
 
-             custom_customer = CustomCustomerOrderInfo.objects.filter(order_number=order_number).first()
 
-             if not custom_customer:
 
-                 return response.json(173)
 
-             device_count = CustomCustomerDevice.objects.filter(c_id=custom_customer.id).count()
 
-             custom_customer_data = {
 
-                 'cid': custom_customer.id,
 
-                 'quantity': custom_customer.quantity,
 
-                 'existsDeviceCount': device_count,
 
-                 'unexistsDeviceCount': custom_customer.quantity - device_count
 
-             }
 
-             return response.json(0, custom_customer_data)
 
-         except Exception as e:
 
-             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
-     def add_customer_device(self, request_dict, response):
 
-         """
 
-         定制客户设备扫码添加接口
 
-         :param request_dict:
 
-         :param response:
 
-         :return:
 
-         """
 
-         # 获取并验证请求中的必要参数
 
-         c_id = request_dict.get('cid')
 
-         full_code = request_dict.get('QRcode', '').strip()
 
-         if not c_id or not full_code:
 
-             return response.json(444, "cId、QRcode")
 
-         # 验证客户信息是否存在
 
-         custom_customer = CustomCustomerOrderInfo.objects.filter(id=c_id).first()
 
-         if not custom_customer:
 
-             return response.json(173)
 
-         custom_customer_device_qs = CustomCustomerDevice.objects.filter(full_code=full_code)
 
-         if custom_customer_device_qs.exists():
 
-             return response.json(174)
 
-         # 创建新设备记录
 
-         try:
 
-             # 检查full_code的格式并提取相关字段
 
-             uid, serial_number, device_type = self.process_full_code(full_code)
 
-             CustomCustomerDevice.objects.create(
 
-                 c_id=c_id,
 
-                 serial_number=serial_number,
 
-                 uid=uid,
 
-                 full_code=full_code,
 
-                 type=device_type,
 
-                 created_time=int(time.time()),
 
-                 updated_time=int(time.time())
 
-             )
 
-             device_count = CustomCustomerDevice.objects.filter(c_id=c_id).count()
 
-             return response.json(0, {
 
-                 'existsDeviceCount': device_count,
 
-                 'unexistsDeviceCount': custom_customer.quantity - device_count
 
-             })
 
-         except Exception as e:
 
-             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
-     @staticmethod
 
-     def process_full_code(full_code):
 
-         """ 处理full_code, 返回uid和serial_number """
 
-         serial_number = ""
 
-         uid = ""
 
-         device_type = 0
 
-         if len(full_code) == 14:
 
-             serial_number = full_code[:9]
 
-             device_type = int(full_code[-4:], 16)
 
-         elif len(full_code) == 20:
 
-             uid = full_code
 
-         return uid, serial_number, device_type
 
-     @staticmethod
 
-     def get_customer_device_count(request_dict, response):
 
-         """
 
-         查询定制客户已扫码添加设备数量
 
-         :param request_dict:
 
-         :param response:
 
-         :return:
 
-         """
 
-         order_number = request_dict.get('orderNumber', None)
 
-         name = request_dict.get('name', None)
 
-         try:
 
-             if not order_number and not name:
 
-                 # 如果没有提供 order_number 和 name,返回所有设备的总数
 
-                 device_count = CustomCustomerDevice.objects.count()
 
-             else:
 
-                 # 初始查询集
 
-                 customer_orders_qs = CustomCustomerOrderInfo.objects.all()
 
-                 # 根据 order_number 或 name 过滤
 
-                 if order_number:
 
-                     customer_orders_qs = customer_orders_qs.filter(order_number=order_number)
 
-                 if name:
 
-                     customer_orders_qs = customer_orders_qs.filter(name=name)
 
-                 # 获取 c_id 列表
 
-                 c_ids = customer_orders_qs.values_list('id', flat=True)
 
-                 # 如果没有匹配的订单,返回设备数量为 0
 
-                 if not c_ids:
 
-                     device_count = 0
 
-                 else:
 
-                     # 根据 c_id 列表查询设备数量
 
-                     device_count = CustomCustomerDevice.objects.filter(c_id__in=c_ids).count()
 
-             return response.json(0, {'deviceCount': device_count})
 
-         except Exception as e:
 
-             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
 
  |