123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- 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)
- phone_model = request_dict.get("phoneModel", None)
- if not all([storage_code, serial_number, phone_model]):
- return response.json(444)
- serial_number = serial_number[0:9]
- redis = RedisObject()
- lock = redis.get_data(f"income_device_scheme_{storage_code}_{serial_number}")
- if lock:
- return response.json(10, '重复扫码')
- redis.set_data(f"income_device_scheme_{storage_code}_{serial_number}", 1, 60)
- 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}")
- redis.del_data(f"income_device_scheme_{storage_code}_{serial_number}")
- return response.json(173, f"数据已存在, storage_code为: {storage_code}")
- now_time = int(time.time())
- DeviceScheme.objects.create(storage_code=storage_code, serial_number=serial_number,
- 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:
- redis.del_data(f"income_device_scheme_{storage_code}_{serial_number}")
- print(e)
- return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|