|
@@ -11,7 +11,7 @@ from django.views import View
|
|
|
from Controller.DetectController import DetectControllerView
|
|
|
from Controller.DeviceConfirmRegion import Device_Region
|
|
|
from Model.models import SerialNumberModel, CompanySerialModel, UIDCompanySerialModel, CompanyModel, RegionModel, \
|
|
|
- CountryModel, UIDModel, Device_Info, iotdeviceInfoModel, UidPushModel, LogModel
|
|
|
+ CountryModel, UIDModel, Device_Info, iotdeviceInfoModel, UidPushModel, LogModel, MacModel
|
|
|
from Object.RedisObject import RedisObject
|
|
|
from Object.uidManageResponseObject import uidManageResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
@@ -19,6 +19,7 @@ from Service.AlgorithmService import AlgorithmBaseOn35
|
|
|
from Service.CommonService import CommonService
|
|
|
from Ansjer.config import CRCKey
|
|
|
from Service.ModelService import ModelService
|
|
|
+from Object.AWS.S3Email import S3Email
|
|
|
|
|
|
|
|
|
class SerialNumberView(View):
|
|
@@ -188,6 +189,7 @@ class SerialNumberView(View):
|
|
|
company_id = request_dict.get('company_id', None)
|
|
|
token = request_dict.get('token', None)
|
|
|
time_stamp = request_dict.get('time_stamp', None)
|
|
|
+ DeviceSubType = request_dict.get('DeviceSubType', None)
|
|
|
|
|
|
if not all([serial_number, company_id, token, time_stamp]) or len(serial_number) != 9:
|
|
|
return response.json(444)
|
|
@@ -233,6 +235,35 @@ class SerialNumberView(View):
|
|
|
return response.json(173)
|
|
|
|
|
|
uid = uid_qs[0]
|
|
|
+
|
|
|
+ if DeviceSubType:
|
|
|
+ # 获取最新的mac,判断分配到哪里,且进行绑定
|
|
|
+ mac = MacModel.objects.filter().values('id', 'value', 'is_active')[0]
|
|
|
+ current_mac = mac['value']
|
|
|
+ username = 'cspublic@ansjer.com'
|
|
|
+ if current_mac[-8:] == '1F:42:40': # 一组一共1048576个,此mac是第100w个时
|
|
|
+ sys_msg_text = "当前国外uid管理系统mac地址已分配到" + current_mac + ",此mac地址是当前组的第100w个,还剩下48576个可分配,mac地址即将用完。"
|
|
|
+ S3Email().faEmail(sys_msg_text, username)
|
|
|
+ elif current_mac[-8:] == '1F:90:60': # 此mac是第102w个时
|
|
|
+ sys_msg_text = "当前国外uid管理系统mac地址已分配到" + current_mac + ",此mac地址是当前组的第102w个,还剩下28576个可分配,mac地址即将用完。"
|
|
|
+ S3Email().faEmail(sys_msg_text, username)
|
|
|
+ elif not mac['is_active']:
|
|
|
+ return response.json(175)
|
|
|
+ elif current_mac[-8:] == '1F:FF:FF':
|
|
|
+ MacModel.objects.filter().update(is_active=False) # 更改mac可使用的状态,当再此调用接口时使用上面条件进行阻止
|
|
|
+ sys_msg_text = "当前国外uid管理系统mac地址已分配到" + current_mac + ",mac地址已分配使用完,请更换分组。"
|
|
|
+ S3Email().faEmail(sys_msg_text, username)
|
|
|
+ return response.json(175)
|
|
|
+ UIDModel.objects.filter(id=uid.id).update(mac=current_mac) # 更新绑定uid的mac值
|
|
|
+ # 绑定mac地址成功后更新mac表
|
|
|
+ temp_mac = CommonService.updateMac(current_mac) # mac地址值+1;后3个字节为FF时返回None
|
|
|
+ if temp_mac:
|
|
|
+ current_mac = temp_mac # 更新赋值写入uid表
|
|
|
+ else:
|
|
|
+ temp_mac = current_mac # 赋值为FF写入mac表
|
|
|
+ MacModel.objects.filter().update(value=temp_mac, add_time=now_time,
|
|
|
+ update_time=now_time) # 更新mac表的mac地址值
|
|
|
+
|
|
|
result = UIDModel.objects.filter(id=uid.id, status=0).\
|
|
|
update(status=2, update_time=now_time)
|
|
|
|
|
@@ -388,7 +419,7 @@ class SerialNumberView(View):
|
|
|
else:
|
|
|
up_qs.delete()
|
|
|
|
|
|
- UIDModel.objects.filter(uid=uid).update(status=0) # 重置uid的使用状态为未分配
|
|
|
+ UIDModel.objects.filter(uid=uid).update(status=0, mac='') # 重置uid的使用状态为未分配
|
|
|
uid_serial.delete()
|
|
|
|
|
|
# 记录操作日志
|