zhangdongming 2 жил өмнө
parent
commit
206021f7fa

+ 24 - 2
Controller/UnicomCombo/UnicomComboController.py

@@ -14,6 +14,7 @@ import traceback
 from decimal import Decimal
 
 from django.db import transaction
+from django.db.models import Q
 from django.http import HttpResponse, JsonResponse
 from django.views.generic.base import View
 
@@ -43,6 +44,8 @@ class UnicomComboView(View):
         response = ResponseObject('cn')
         if operation == 'query-usage-history':
             return self.query_device_usage_history(request_dict, response)
+        elif operation == 'sim-order':  # 用户套餐信息查询
+            return self.create_experience_order(response)
         elif operation == 'test-notify':
             order_id = request_dict.get('orderId', None)
             activate_type = request_dict.get('activateType', 0)
@@ -147,9 +150,10 @@ class UnicomComboView(View):
             return response.json(177, e)
 
     @classmethod
-    def experience_order_4G(cls, icc_id, serial_no, user_id):
+    def experience_order_4G(cls, icc_id, serial_no, user_id, is_user=True):
         """
         保存订单信息
+        @param is_user: 是否真实用户
         @param icc_id: SIM卡20位iccid
         @param serial_no: 序列号
         @param user_id: userID
@@ -185,7 +189,8 @@ class UnicomComboView(View):
                 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)
+                if is_user:
+                    UnicomDeviceInfo.objects.filter(iccid=icc_id).update(user_id=user_id, updated_time=n_time)
                 return True
         except Exception as e:
             print('生成4G体验订单异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
@@ -891,3 +896,20 @@ class UnicomComboView(View):
         now_time = int(time.time())
         sign = CommonService.encode_data(str(now_time))
         return response.json(0, {'sign': sign, 'timeStamp': now_time})
+
+    @classmethod
+    def create_experience_order(cls, response):
+        """
+        创建体验订单
+        """
+        u_order_qs = UnicomComboOrderInfo.objects.filter(Q(order_id__isnull=True) | Q(order_id=''))
+        u_order_qs = u_order_qs.filter(combo__combo_type=1).values('id', 'iccid')
+        if not u_order_qs.exists():
+            return response.json(0)
+        for item in u_order_qs:
+            u_device_qs = UnicomDeviceInfo.objects.filter(iccid=item['iccid'], status=2) \
+                .values('serial_no', 'user_id')
+            if not u_device_qs.exists() or not u_device_qs[0]['user_id']:
+                continue
+            cls.experience_order_4G(item['iccid'], u_device_qs[0]['serial_no'], u_device_qs[0]['user_id'], False)
+        return response.json(0)