|
@@ -13,6 +13,7 @@ from Model.models import SerialNumberModel, CompanySerialModel, UIDCompanySerial
|
|
|
Unused_Uid_Meal, Order_Model, StsCrdModel, VodHlsModel, ExperienceContextModel, UidUserModel, ExperienceAiModel, \
|
|
|
AiService, DeviceDomainRegionModel, RegionModel
|
|
|
from Object.RedisObject import RedisObject
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
from Object.uidManageResponseObject import uidManageResponseObject
|
|
|
from Service.AlgorithmService import AlgorithmBaseOn35
|
|
|
from Service.CommonService import CommonService
|
|
@@ -46,7 +47,7 @@ class SerialNumberView(View):
|
|
|
return self.do_get_uid(request_dict, response)
|
|
|
elif operation == 'getRegionInfo': # 根据序列号状态确认uid地区(PC工具使用)
|
|
|
return self.get_region_info(request_dict, response)
|
|
|
- elif operation == 'saveRegion': # 保存序列号地区信息(app使用)
|
|
|
+ elif operation == 'saveRegion': # 保存设备地区信息(app使用)
|
|
|
return self.save_region(request, request_dict, response)
|
|
|
elif operation == 'getDomain': # 获取域名(设备使用)
|
|
|
return self.get_domain(request_dict, response)
|
|
@@ -361,25 +362,25 @@ class SerialNumberView(View):
|
|
|
@staticmethod
|
|
|
def save_region(request, request_dict, response):
|
|
|
"""
|
|
|
- 保存序列号地区信息
|
|
|
+ 保存设备地区信息
|
|
|
@param request: 请求体
|
|
|
@param request_dict: 请求参数
|
|
|
@param response: 响应对象
|
|
|
- @request_dict serial_number: 序列号
|
|
|
- @request_dict time_stamp_token: 时间戳token
|
|
|
+ @request_dict token: 令牌
|
|
|
@request_dict time_stamp: 时间戳
|
|
|
@return: response
|
|
|
"""
|
|
|
+ token = request_dict.get('token', None)
|
|
|
serial_number = request_dict.get('serial_number', None)
|
|
|
- time_stamp_token = request_dict.get('time_stamp_token', None)
|
|
|
- time_stamp = request_dict.get('time_stamp', None)
|
|
|
- if not all([serial_number, time_stamp_token, time_stamp]):
|
|
|
+ if not all([serial_number, token]):
|
|
|
return response(444)
|
|
|
- # 时间戳token校验
|
|
|
- if not CommonService.check_time_stamp_token(time_stamp_token, time_stamp):
|
|
|
- return response.json(13)
|
|
|
|
|
|
try:
|
|
|
+ token_obj = TokenObject(token)
|
|
|
+ if token_obj.code != 0:
|
|
|
+ return response.json(token_obj.code)
|
|
|
+ response.lang = token_obj.lang
|
|
|
+
|
|
|
serial_number = serial_number[:9]
|
|
|
|
|
|
# 不是美洲服,请求美洲域名保存数据
|
|
@@ -397,18 +398,28 @@ class SerialNumberView(View):
|
|
|
return response.json(5)
|
|
|
else:
|
|
|
data = {}
|
|
|
+
|
|
|
# 处理其他服务器发起请求的情况
|
|
|
region_id = request_dict.get('region_id', None)
|
|
|
if region_id is not None:
|
|
|
+ region_id = int(region_id)
|
|
|
+ data['region_id'] = region_id
|
|
|
data['ip'] = request_dict.get('ip', '')
|
|
|
- data['region_id'] = int(region_id)
|
|
|
- # 更新或写入数据
|
|
|
- device_domain_region_qs = DeviceDomainRegionModel.objects.filter(serial_number=serial_number)
|
|
|
- if device_domain_region_qs.exists():
|
|
|
- device_domain_region_qs.update(**data)
|
|
|
else:
|
|
|
+ region_id = CommonService.confirm_region_id()
|
|
|
+ data['region_id'] = region_id
|
|
|
+ data['ip'] = CommonService.get_ip_address(request)
|
|
|
+
|
|
|
+ # 写入数据
|
|
|
+ device_domain_region_qs = DeviceDomainRegionModel.objects.filter(serial_number=serial_number).\
|
|
|
+ values('region_id')
|
|
|
+ if not device_domain_region_qs.exists():
|
|
|
data['serial_number'] = serial_number
|
|
|
DeviceDomainRegionModel.objects.create(**data)
|
|
|
+ else:
|
|
|
+ # 设备解绑过uid,更新region_id
|
|
|
+ if device_domain_region_qs[0]['region_id'] == 0:
|
|
|
+ device_domain_region_qs.update(**data)
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
return response.json(500, repr(e))
|