Browse Source

修改4G设备以iccid为依据绑定

zhangdongming 2 years ago
parent
commit
29cc6618c5
1 changed files with 14 additions and 9 deletions
  1. 14 9
      Controller/UnicomCombo/UnicomComboController.py

+ 14 - 9
Controller/UnicomCombo/UnicomComboController.py

@@ -59,7 +59,7 @@ class UnicomComboView(View):
         elif operation == 'device-status-change':  # SIM卡修改状态,异步通知接口
             return self.device_status_change_push(request_dict, request)
         elif operation == 'device-bind':  # 服务器保存设备的ICCID
-            return self.device_add(request_dict, response)
+            return self.iccid_bind_serial_no(request, request_dict, response)
         elif operation == 'device-status':  # PC调用解绑SIM卡用户,清除流量套餐数据
             return self.update_device_status(request, request_dict, response)
         elif operation == 'update-card':  # 更新SIM类型
@@ -359,12 +359,9 @@ class UnicomComboView(View):
         return response.json(0, dict(unicom_device_info_qs.first()))
 
     @classmethod
-    def device_add(cls, request_dict, response):
+    def iccid_bind_serial_no(cls, request, request_dict, response):
         """
-        设备绑定iccid
-        @param request_dict:
-        @param response:
-        @return:
+        iccid绑定设备序列号
         """
         iccid = request_dict.get('iccid', None)
         serial_no = request_dict.get('serialNo', None)
@@ -384,8 +381,9 @@ class UnicomComboView(View):
             logger.info('--->参数验证通过,sign验证通过')
             redis = RedisObject()
             with transaction.atomic():
-                # 待完善代码 根据uid与用户id验证系统设备
-                unicom_device_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_no)
+                ip = CommonService.get_ip_address(request)
+                # 待完善代码 根据uid与用户id验证系统设备mdcmd
+                unicom_device_qs = UnicomDeviceInfo.objects.filter(iccid=iccid)
                 if unicom_device_qs.exists():
                     if unicom_device_qs.first().status == 1:
                         key = 'ASJ:UNICOM:RESET:{}'.format(serial_no)
@@ -394,7 +392,12 @@ class UnicomComboView(View):
                             logger.info('--->三十分后再次访问接口生效赠送流量套餐')
                             return response.json(0, 'Thirty minutes later to visit again take effect')
                         cls.user_activate_flow(iccid)
-                    unicom_device_qs.update(main_card=sim, updated_time=n_time)
+                    if unicom_device_qs.first().serial_no != serial_no:
+                        unicom_device_qs.update(main_card=sim, updated_time=n_time, serial_no=serial_no)
+                        cls.create_operation_log('unicom/api/device-bind',
+                                                 ip, request_dict, '4G序列号{}新绑定{}'.format(serial_no, iccid))
+                    elif unicom_device_qs.first().main_card != sim:
+                        unicom_device_qs.update(main_card=sim, updated_time=n_time)
                     return response.json(0)
                 if sim == 0:
                     return response.json(0, '外置卡不保存相关信息{}'.format(serial_no))
@@ -415,6 +418,8 @@ class UnicomComboView(View):
                             return response.json(173)
                         unicom_obj.change_device_to_activate(iccid)
                         UnicomDeviceInfo.objects.create(**params)
+                        cls.create_operation_log('unicom/api/device-bind',
+                                                 ip, request_dict, '4G序列号{}绑定{}'.format(serial_no, iccid))
                     return response.json(0)
                 else:
                     logger.info('--->设备请求绑定{}验证失败'.format(iccid))