浏览代码

优化绑定时验证设备是否有激活未激活则自动激活

zhangdongming 3 年之前
父节点
当前提交
5db714556d
共有 3 个文件被更改,包括 24 次插入7 次删除
  1. 22 5
      Controller/UnicomCombo/UnicomComboController.py
  2. 1 1
      Model/models.py
  3. 1 1
      Object/UnicomObject.py

+ 22 - 5
Controller/UnicomCombo/UnicomComboController.py

@@ -115,9 +115,8 @@ class UnicomComboView(View):
                 # 待完善代码 根据uid与用户id验证系统设备
                 unicom_device_qs = UnicomDeviceInfo.objects.filter(iccid=iccid)
                 if unicom_device_qs.exists():
-                    return response.json(174)
-                unicom_device_serial_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_no)
-                if unicom_device_serial_qs.exists():
+                    if unicom_device_qs.first().status == 1 and unicom_device_qs.first().serial_no == serial_no:
+                        cls.user_activate_flow(iccid)
                     return response.json(174)
                 unicom_obj = UnicomObjeect()
                 result = unicom_obj.verify_device(iccid=iccid)
@@ -128,9 +127,8 @@ class UnicomComboView(View):
                             return response.json(173)
                         params = {'iccid': iccid, 'serial_no': serial_no, 'updated_time': n_time,
                                   'created_time': n_time}
+                        cls.is_activate(iccid)
                         UnicomDeviceInfo.objects.create(**params)
-                        # 自动激活1G套餐
-                        cls.user_activate_flow(iccid)
                     return response.json(0)
                 else:
                     return response.json(173)
@@ -542,6 +540,25 @@ class UnicomComboView(View):
         start_time, month_end_time = LocalDateTimeUtil.get_start_and_end_time(month_end, '%Y-%m-%d')
         return zero_today, month_end_time
 
+    @staticmethod
+    def is_activate(iccid):
+        """
+        根据iccid判断是否激活,未激活则修改为激活状态
+        @param iccid:
+        @return:
+        """
+        if iccid:
+            unicom_api = UnicomObjeect()
+            re_data = {'iccid': iccid}
+            result = unicom_api.query_device_status(**re_data)
+            res_dict = unicom_api.get_text_dict(result)
+            # 状态不等于1(激活)时进行激活 1:激活;2:停用
+            if res_dict['data']['status'] != 1:
+                re_data = {"iccid": iccid, "status": 1}
+                unicom_api.update_device_state(**re_data)
+                return True
+        return None
+
     @classmethod
     def get_test_sign(cls, request_dict, response):
         """

+ 1 - 1
Model/models.py

@@ -2706,7 +2706,7 @@ class UnicomComboOrderInfo(models.Model):
 
 class UnicomDeviceInfo(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记Id')
-    iccid = models.CharField(default='', max_length=32, verbose_name=u'完整的20位纯数字ICCID')
+    iccid = models.CharField(db_index=True, unique=True, max_length=32, verbose_name=u'完整的20位纯数字ICCID')
     status = models.SmallIntegerField(default=0, verbose_name=u'状态{0:可测试,1:测试完成,2:已使用}')
     serial_no = models.CharField(default='', max_length=32, verbose_name=u'设备序列号')
     user_id = models.CharField(blank=True, max_length=32, verbose_name=u'用户id')

+ 1 - 1
Object/UnicomObject.py

@@ -267,7 +267,7 @@ class UnicomObjeect:
             if device_usage_history_list:
                 for item in device_usage_history_list:
                     if item['year'] == usage_year and item['month'] == usage_month:
-                        flow_total_usage = item['flowTotalUsage']
+                        flow_total_usage += item['flowTotalUsage']
                         break
         return flow_total_usage