فهرست منبع

解绑UID及证书及设备表修改

chenshibin 4 سال پیش
والد
کامیت
d724be0189
1فایلهای تغییر یافته به همراه18 افزوده شده و 5 حذف شده
  1. 18 5
      Controller/SerialNumberController.py

+ 18 - 5
Controller/SerialNumberController.py

@@ -7,9 +7,10 @@ import time
 from django.db import transaction
 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
+    CountryModel, UIDModel, Device_Info, iotdeviceInfoModel, UidPushModel
 from Object.RedisObject import RedisObject
 from Object.uidManageResponseObject import uidManageResponseObject
 from Object.TokenObject import TokenObject
@@ -361,10 +362,22 @@ class SerialNumberView(View):
                     company_serial.status = 1
                     company_serial.save()
                     mark = company_serial.company.mark
-                    dev = Device_Info.objects.filter(serial_number=serial_number + mark)
-                    if dev.exists():
-                        dev.update(serial_number='')
-                    return response.json(0)
+                    dv_qs = Device_Info.objects.filter(serial_number=serial_number + mark)
+                    if dv_qs.exists():
+                        # a.主用户删除设备
+                        uid = dv_qs[0].UID
+                        dv_qs.delete()
+                        # 删除设备影子信息uid_set   外键关联删除设备推送配置信息 uid_push
+                        up_qs = UidPushModel.objects.filter(uid_set__uid=uid)
+                        DetectControllerView().do_delete_redis(uid)
+                        if up_qs.count() > 1:
+                            UidPushModel.objects.filter(uid_set__uid=uid).delete()
+                            redisObj = RedisObject(db=6, SERVER_HOST='push.dvema.com')
+                            ykey = '{uid}_redis_qs'.format(uid=uid)
+                            if ykey:
+                                redisObj.del_data(key=ykey)
+                        else:
+                            up_qs.delete()
 
                 uid_qs = UIDModel.objects.filter(uid=uid_serial.uid.uid)
                 if uid_qs.exists():