Browse Source

Merge branch 'test' of http://192.168.136.99:3000/servers/ASJServer into peng

peng 2 years ago
parent
commit
09b8a49ed5
2 changed files with 50 additions and 9 deletions
  1. 14 5
      Controller/EquipmentManagerV3.py
  2. 36 4
      Controller/UnicomCombo/UnicomComboController.py

+ 14 - 5
Controller/EquipmentManagerV3.py

@@ -15,6 +15,7 @@ from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
 from Controller.CheckUserData import RandomStr
 from Controller.DeviceConfirmRegion import Device_Region
 from Controller.SensorGateway.EquipmentFamilyController import EquipmentFamilyView
+from Controller.UnicomCombo.UnicomComboController import UnicomComboView
 from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidChannelSetModel, \
     Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UnicomDeviceInfo, CountryModel, \
     DeviceCloudPhotoInfo
@@ -297,12 +298,20 @@ class EquipmentManagerV3(View):
         @param serial_number: 序列号
         @return: True | False
         """
-        unicom_device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number)
-        if not unicom_device_info_qs.exists():
+        try:
+            unicom_device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number)
+            if not unicom_device_info_qs.exists():
+                return False
+            if not unicom_device_info_qs[0].user_id:
+                n_time = int(time.time())
+                # 生成4G免费订单
+                UnicomComboView.experience_order_4G(unicom_device_info_qs[0].iccid,
+                                                    serial_number, user_id, False)
+                unicom_device_info_qs.update(user_id=user_id, updated_time=n_time)
+            return True
+        except Exception as e:
+            logging.info('创建体验4G订单异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             return False
-        if not unicom_device_info_qs[0].user_id:
-            unicom_device_info_qs.update(user_id=user_id)
-        return True
 
     def do_batch_add(self, userID, request_dict, response, request):
         # 批量添加设备

+ 36 - 4
Controller/UnicomCombo/UnicomComboController.py

@@ -19,7 +19,8 @@ from django.http import HttpResponse, JsonResponse
 from django.views.generic.base import View
 
 from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, Order_Model, Store_Meal, AiStoreMeal, \
-    UnicomComboOrderInfo, UnicomComboExperienceHistory, UnicomDeviceStatusChangePush, SysMsgModel, UnicomFlowPush
+    UnicomComboOrderInfo, UnicomComboExperienceHistory, UnicomDeviceStatusChangePush, SysMsgModel, UnicomFlowPush, \
+    LogModel
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -59,8 +60,8 @@ 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卡用户,清除套餐数据
-            return self.update_device_status(request_dict, response)
+        elif operation == 'device-status':  # PC调用解绑SIM卡用户,清除流量套餐数据
+            return self.update_device_status(request, request_dict, response)
         elif operation == 'update-card':  # 更新SIM类型
             return self.update_device_card_type(request_dict, response)
         elif operation == 'xxx-sign':  # 获取签名用于测试
@@ -245,7 +246,7 @@ class UnicomComboView(View):
                 expire_qs.update(sort=100)
 
     @classmethod
-    def update_device_status(cls, request_dict, response):
+    def update_device_status(cls, request, request_dict, response):
         """
         重置SIM卡绑定状态修改为测试完成,以及重置流量,删除订单信息、删除系统消息
         """
@@ -291,6 +292,9 @@ class UnicomComboView(View):
                     Order_Model.objects.filter(orderID__in=order_list).delete()
                     redis.set_data(key, iccid, 60 * 30)  # 缓存当前SIM卡,记录为半个小时内无法赠送免费流量套餐。
                     UnicomObjeect().change_device_to_activate(iccid)
+                    describe = '重置4G流量序列号{},iccid:{}'.format(serial_no, iccid)
+                    ip = CommonService.get_ip_address(request)
+                    cls.create_operation_log('unicom/api/device-status', ip, request_dict, describe)
                 return response.json(0)
         except Exception as e:
             print(e.args)
@@ -914,3 +918,31 @@ class UnicomComboView(View):
                 continue
             cls.experience_order_4G(item['iccid'], u_device_qs[0]['serial_no'], u_device_qs[0]['user_id'], False)
         return response.json(0)
+
+    @classmethod
+    def create_operation_log(cls, url, ip, request_dict, describe):
+        """
+        创建操作日志
+        @param url: 请求路径
+        @param describe: 描述
+        @param ip: 当前IP
+        @param request_dict: 请求参数
+        @return: True | False
+        """
+        try:
+            # 记录操作日志
+            content = json.loads(json.dumps(request_dict))
+            log = {
+                'ip': ip,
+                'user_id': 1,
+                'status': 200,
+                'time': int(time.time()),
+                'content': json.dumps(content),
+                'url': url,
+                'operation': describe,
+            }
+            LogModel.objects.create(**log)
+            return True
+        except Exception as e:
+            print('日志异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+            return False