|
@@ -9,7 +9,7 @@ from django.db import transaction
|
|
|
from django.db.models import Count
|
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import SerialNumberModel, UserModel, UserSerialNumberModel, UserUIDModel, CompanySerialModel
|
|
|
+from Model.models import SerialNumberModel, UserModel, UserSerialNumberModel, UserUIDModel, CompanySerialModel, MacModel
|
|
|
from Object.RedisObject import RedisObject
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
@@ -238,6 +238,17 @@ class SerialNumberView(View):
|
|
|
save_point = transaction.savepoint() # 设置事务保存点
|
|
|
try:
|
|
|
if sn_qs.exists():
|
|
|
+ if not mac: # 不传入则分配mac
|
|
|
+ mac_qs = MacModel.objects.filter().values('id', 'value', 'is_active')[0]
|
|
|
+ if not mac_qs['is_active']:
|
|
|
+ return response.json(175)
|
|
|
+ mac = mac_qs['value']
|
|
|
+ # 绑定mac地址成功后更新mac表
|
|
|
+ next_mac = CommonService.updateMac(mac) # mac地址值+1;后3个字节为FF时返回None
|
|
|
+ if next_mac:
|
|
|
+ MacModel.objects.filter().update(value=next_mac, update_time=now_time) # 更新mac表的mac地址值
|
|
|
+ else:
|
|
|
+ MacModel.objects.filter().update(is_active=False, update_time=now_time)
|
|
|
sn_qs = sn_qs[0: quantity]
|
|
|
serial_number = sn_qs[0].serial_number
|
|
|
serialNumberModel = SerialNumberModel(
|
|
@@ -250,9 +261,9 @@ class SerialNumberView(View):
|
|
|
updates = []
|
|
|
updates.append(serialNumberModel)
|
|
|
bulk_update(updates)
|
|
|
-
|
|
|
+ redisObject.rpush(key, value)
|
|
|
+ return response.json(0, {'serial_number': serial_number + mark, 'mac': mac})
|
|
|
except Exception as e:
|
|
|
if save_point:
|
|
|
transaction.savepoint_rollback(save_point) # 事务回滚
|
|
|
- redisObject.rpush(key, value)
|
|
|
- return response.json(0, {'serial_number': serial_number + mark, 'mac': mac})
|
|
|
+
|