|
@@ -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)
|