瀏覽代碼

pc端获取序列号返回mac

locky 3 年之前
父節點
當前提交
82e9febbfc
共有 1 個文件被更改,包括 15 次插入4 次删除
  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})
+