浏览代码

优化PC重置SIM卡接口

zhangdongming 2 年之前
父节点
当前提交
c803986ad7
共有 1 个文件被更改,包括 18 次插入13 次删除
  1. 18 13
      Controller/UnicomCombo/UnicomComboController.py

+ 18 - 13
Controller/UnicomCombo/UnicomComboController.py

@@ -56,7 +56,7 @@ class UnicomComboView(View):
             return self.device_status_change_push(request_dict, request)
         elif operation == 'device-bind':  # 服务器保存设备的ICCID
             return self.device_add(request_dict, response)
-        elif operation == 'device-status':  # PC调用解绑SIM卡用户
+        elif operation == 'device-status':  # PC调用解绑SIM卡用户,清除套餐数据
             return self.update_device_status(request_dict, response)
         elif operation == 'update-card':  # 更新SIM类型
             return self.update_device_card_type(request_dict, response)
@@ -180,8 +180,11 @@ class UnicomComboView(View):
                               'unify_combo_id': str(combo_info_vo['id']), 'order_type': 2,
                               'store_meal_name': combo_info_vo['combo_name']
                               }
-                Order_Model.objects.create(**order_dict)
-                combo_order_qs.update(order_id=order_id)
+                order_qs = Order_Model.objects.filter(UID=uid, userID=user_id, order_type=2,
+                                                      unify_combo_id=str(combo_info_vo['id']))
+                if not order_qs.exists():
+                    Order_Model.objects.create(**order_dict)
+                    combo_order_qs.update(order_id=order_id)
                 UnicomDeviceInfo.objects.filter(iccid=icc_id).update(user_id=user_id, updated_time=n_time)
                 return True
         except Exception as e:
@@ -239,19 +242,15 @@ class UnicomComboView(View):
     @classmethod
     def update_device_status(cls, request_dict, response):
         """
-        修改绑定设备状态,如产生免费套餐用量则删除
-        @param request_dict:
-        @param response:
-        @return:
+        重置SIM卡绑定状态修改为测试完成,以及重置流量,删除订单信息、删除系统消息
         """
         logger = logging.getLogger('info')
-
         serial_no = request_dict.get('serialNo', None)
         time_stamp = request_dict.get('timeStamp', None)
         sign = request_dict.get('sign', None)
         if not all([serial_no, sign, time_stamp]):
             return response.json(444)
-        logger.info('PC工具进入重置ICCID{}'.format(serial_no))
+        logger.info('PC工具进入重置SIM卡{}'.format(serial_no))
         try:
             if not CommonService.check_time_stamp_token(sign, time_stamp):
                 return response.json(13)
@@ -259,7 +258,7 @@ class UnicomComboView(View):
             redis = RedisObject()
             with transaction.atomic():
                 device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_no)
-                if device_info_qs.exists():
+                if device_info_qs.exists():  # 首先查询SIM卡绑定信息是否存在
                     iccid = device_info_qs.first().iccid
                     if device_info_qs.first().card_type == 1:
                         cls.reset_telecom_user(serial_no)
@@ -267,19 +266,25 @@ class UnicomComboView(View):
                         return response.json(0)
                     key = 'ASJ:UNICOM:RESET:{}'.format(serial_no)
                     flow_push_qs = UnicomFlowPush.objects.filter(serial_no=serial_no)
-                    if flow_push_qs.exists():
+                    if flow_push_qs.exists():  # 删除流量预警推送
                         flow_push_qs.delete()
                     sys_msg_qs = SysMsgModel.objects.filter(uid=serial_no)
-                    if sys_msg_qs.exists():
+                    if sys_msg_qs.exists():  # 删除有关系统消息数据
                         sys_msg_qs.delete()
                     device_info_qs.update(status=1, updated_time=now_time, user_id='')
                     combo_order_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid)
+                    order_list = []
                     if combo_order_qs.exists():
+                        for item in combo_order_qs:
+                            if item.order_id:
+                                order_list.append(item)
                         combo_order_qs.delete()
                     combo_experience_history_qs = UnicomComboExperienceHistory.objects.filter(iccid=iccid)
                     if combo_experience_history_qs.exists():
                         combo_experience_history_qs.delete()
-                    redis.set_data(key, iccid, 60 * 30)
+                    # 删除4G套餐订单
+                    Order_Model.objects.filter(orderID__in=order_list).delete()
+                    redis.set_data(key, iccid, 60 * 30)  # 缓存当前SIM卡,记录为半个小时内无法赠送免费流量套餐。
                     UnicomObjeect().change_device_to_activate(iccid)
                 return response.json(0)
         except Exception as e: