import time from django.views import View from Model.models import DeviceScheme from Object.RedisObject import RedisObject from Service.CommonService import CommonService from Ansjer.config import LOGGER class IncomeProductsView(View): 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_code, user_id, response = CommonService.verify_token_get_user_id(request_dict, request) if operation == 'income': # 设备关联产品方案 return self.income_device_scheme(request_dict, response) else: return response.json(414) @staticmethod def income_device_scheme(request_dict, response): """ 设备关联产品方案 @param request_dict: @param response: @return: """ storage_code = request_dict.get("storageCode", None) serial_number = request_dict.get("serialNumber", None) device_type = request_dict.get("deviceType", None) phone_model = request_dict.get("phoneModel", None) if not all([storage_code, serial_number, phone_model, device_type]): return response.json(444) full_serial_number = serial_number # device_type = 0 时表示传的是uid if device_type != "0": serial_number = serial_number[0:9] try: LOGGER.info(f"设备关联产品方案, storageCode: {storage_code}, serialNumber: {serial_number}") device_scheme_qs = DeviceScheme.objects.filter(serial_number=serial_number) if device_scheme_qs.exists(): storage_code = device_scheme_qs.first().storage_code LOGGER.info(f"设备关联产品方案, serialNumber已存在, storageCode: {storage_code}, serialNumber: {serial_number}") return response.json(174, f"数据已存在, storage_code为: {storage_code}") now_time = int(time.time()) DeviceScheme.objects.create(storage_code=storage_code, serial_number=serial_number, full_serial_number=full_serial_number, device_type=device_type, phone_model=phone_model, created_time=now_time, updated_time=now_time) LOGGER.info(f"设备关联产品方案, serialNumber录入成功, storageCode: {storage_code}, serialNumber: {serial_number}") return response.json(0) except Exception as e: print(e) return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))