|
@@ -15,7 +15,7 @@ from Controller.UnicomCombo.UnicomComboController import UnicomComboView
|
|
|
from Model.models import SerialNumberModel, CompanySerialModel, UIDCompanySerialModel, UIDModel, Device_Info, \
|
|
|
iotdeviceInfoModel, LogModel, UidSetModel, UID_Bucket, \
|
|
|
Unused_Uid_Meal, Order_Model, StsCrdModel, VodHlsModel, ExperienceContextModel, UidUserModel, ExperienceAiModel, \
|
|
|
- AiService, DeviceDomainRegionModel, RegionModel, UidPushModel, AppScannedSerial
|
|
|
+ AiService, DeviceDomainRegionModel, RegionModel, UidPushModel, AppScannedSerial, Device_User
|
|
|
from Object.AWS.S3Email import S3Email
|
|
|
from Object.RedisObject import RedisObject
|
|
|
from Object.TokenObject import TokenObject
|
|
@@ -48,7 +48,10 @@ class SerialNumberView(View):
|
|
|
elif operation == 'detachUID': # 解绑uid
|
|
|
return self.do_detach_uid(request, request_dict, response)
|
|
|
elif operation == 'get-uid': # app获取uid
|
|
|
- return self.get_uid(request_dict, response, request)
|
|
|
+ token_code, user_id, response = CommonService.verify_token_get_user_id(request_dict, request)
|
|
|
+ if token_code != 0:
|
|
|
+ return response.json(token_code)
|
|
|
+ return self.get_uid(request_dict, response, request, user_id)
|
|
|
elif operation == 'create': # 创建序列号
|
|
|
return self.do_create(request_dict, response)
|
|
|
elif operation == 'getUID': # 根据序列号获取uid
|
|
@@ -105,6 +108,7 @@ class SerialNumberView(View):
|
|
|
serial_number = request_dict.get('serial_number', None)
|
|
|
token = request_dict.get('token', None)
|
|
|
time_stamp = request_dict.get('time_stamp', None)
|
|
|
+ is_verify = request_dict.get('is_verify', None)
|
|
|
|
|
|
if not all([serial_number, token, time_stamp]):
|
|
|
return response.json(444)
|
|
@@ -144,12 +148,16 @@ class SerialNumberView(View):
|
|
|
if company_serial.status == 0: # 该序列号未绑定企业
|
|
|
return response.json(173)
|
|
|
elif company_serial.status == 1: # 绑定uid
|
|
|
-
|
|
|
- # 查询app是否已扫码,未扫码不能进行绑定
|
|
|
- app_scanned_serial_qs = AppScannedSerial.objects.filter(serial=serial)
|
|
|
- if not app_scanned_serial_qs.exists():
|
|
|
- LOGGER.info(f'{serial}当前序列号未进行APP扫码')
|
|
|
- return response.json(5)
|
|
|
+ # is_verify: '1',跳过查询扫码记录
|
|
|
+ if is_verify == '1':
|
|
|
+ region_country = 0
|
|
|
+ else:
|
|
|
+ # 查询app是否已扫码,未扫码不能进行绑定
|
|
|
+ app_scanned_serial_qs = AppScannedSerial.objects.filter(serial=serial).values('region_country')
|
|
|
+ if not app_scanned_serial_qs.exists():
|
|
|
+ LOGGER.info(f'{serial}当前序列号未进行APP扫码')
|
|
|
+ return response.json(5)
|
|
|
+ region_country = app_scanned_serial_qs[0]['region_country']
|
|
|
|
|
|
# redis加锁,防止同一个序列号重复绑定
|
|
|
key = serial + 'do_attach_uid'
|
|
@@ -159,7 +167,7 @@ class SerialNumberView(View):
|
|
|
redisObj.CONN.expire(key, 60)
|
|
|
|
|
|
# 获取并判断region_id
|
|
|
- region_id = CommonService.confirm_region_id()
|
|
|
+ region_id = CommonService.confirm_region_id(region_country)
|
|
|
if region_id not in REGION_ID_LIST:
|
|
|
return response.json(444, {'invalid region_id': region_id})
|
|
|
|
|
@@ -628,12 +636,13 @@ class SerialNumberView(View):
|
|
|
LogModel.objects.create(**log)
|
|
|
return response.json(176, str(e))
|
|
|
|
|
|
- def get_uid(self, request_dict, response, request):
|
|
|
+ def get_uid(self, request_dict, response, request, user_id):
|
|
|
"""
|
|
|
app获取序列号
|
|
|
@param request_dict:
|
|
|
@param response:
|
|
|
@param request:
|
|
|
+ @param user_id:
|
|
|
@return:
|
|
|
"""
|
|
|
token = request_dict.get('token', None)
|
|
@@ -660,9 +669,15 @@ class SerialNumberView(View):
|
|
|
try:
|
|
|
# 添加或更新扫码记录
|
|
|
ip = CommonService.get_ip_address(request)
|
|
|
+ # 查询用户国家id
|
|
|
+ region_country = 0
|
|
|
+ device_user_qs = Device_User.objects.filter(userID=user_id).values('region_country')
|
|
|
+ if device_user_qs.exists():
|
|
|
+ region_country = device_user_qs[0]['region_country']
|
|
|
data = {
|
|
|
'ip': ip,
|
|
|
- 'update_time': now_time
|
|
|
+ 'update_time': now_time,
|
|
|
+ 'region_country': region_country
|
|
|
}
|
|
|
app_scanned_serial_qs = AppScannedSerial.objects.filter(serial=serial)
|
|
|
if app_scanned_serial_qs.exists():
|