Browse Source

pc端获取序列号返回mac

locky 4 years ago
parent
commit
82e9febbfc
1 changed files with 15 additions and 4 deletions
  1. 15 4
      Controller/SerialNumberController.py

+ 15 - 4
Controller/SerialNumberController.py

@@ -9,7 +9,7 @@ from django.db import transaction
 from django.db.models import Count
 from django.db.models import Count
 from django.views import View
 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.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
@@ -238,6 +238,17 @@ class SerialNumberView(View):
         save_point = transaction.savepoint()  # 设置事务保存点
         save_point = transaction.savepoint()  # 设置事务保存点
         try:
         try:
             if sn_qs.exists():
             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]
                 sn_qs = sn_qs[0: quantity]
                 serial_number = sn_qs[0].serial_number
                 serial_number = sn_qs[0].serial_number
                 serialNumberModel = SerialNumberModel(
                 serialNumberModel = SerialNumberModel(
@@ -250,9 +261,9 @@ class SerialNumberView(View):
                 updates = []
                 updates = []
                 updates.append(serialNumberModel)
                 updates.append(serialNumberModel)
                 bulk_update(updates)
                 bulk_update(updates)
-
+            redisObject.rpush(key, value)
+            return response.json(0, {'serial_number': serial_number + mark, 'mac': mac})
         except Exception as e:
         except Exception as e:
             if save_point:
             if save_point:
                 transaction.savepoint_rollback(save_point)  # 事务回滚
                 transaction.savepoint_rollback(save_point)  # 事务回滚
-        redisObject.rpush(key, value)
-        return response.json(0, {'serial_number': serial_number + mark, 'mac': mac})
+