|
@@ -24,7 +24,8 @@ from Ansjer.config import CONFIG_INFO
|
|
|
from Ansjer.config import LOGGER
|
|
|
from Controller.UnicomCombo.UnicomComboController import UnicomComboView
|
|
|
from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, UnicomComboOrderInfo, Device_User, Order_Model, \
|
|
|
- ExchangeCode, UnicomFlowPush, SysMsgModel, UnicomComboExperienceHistory, LogModel, SerialNumberPackage
|
|
|
+ ExchangeCode, UnicomFlowPush, SysMsgModel, UnicomComboExperienceHistory, LogModel, SerialNumberPackage, \
|
|
|
+ AccessNumberTaskQueue
|
|
|
from Object.Enums.WXOperatorEnum import WXOperatorEnum
|
|
|
from Object.RedisObject import RedisObject
|
|
|
from Object.ResponseObject import ResponseObject
|
|
@@ -33,6 +34,7 @@ from Object.UnicomObject import UnicomObjeect
|
|
|
from Object.WXTechObject import WXTechObject
|
|
|
from Service.CommonService import CommonService
|
|
|
from Object.EIoTClubObject import EIoTClubObject
|
|
|
+from Service.TelecomService import TelecomService
|
|
|
|
|
|
|
|
|
class UnicomManageControllerView(View):
|
|
@@ -310,7 +312,8 @@ class UnicomManageControllerView(View):
|
|
|
'userID': unicom_device.user_id, 'cardType': unicom_device.card_type,
|
|
|
'status': unicom_device.status, 'mainCard': unicom_device.main_card,
|
|
|
'createdTime': unicom_device.created_time, 'updatedTime': unicom_device.updated_time,
|
|
|
- 'cardStatus': self.get_device_status_by_iccid(unicom_device.iccid, unicom_device.card_type)}
|
|
|
+ 'cardStatus': self.get_device_status_by_iccid(unicom_device.iccid, unicom_device.card_type,
|
|
|
+ unicom_device.access_number)}
|
|
|
device_user_qs = Device_User.objects.filter(userID=unicom_device.user_id).values('username', 'NickName',
|
|
|
'phone')
|
|
|
data['userName'] = device_user_qs[0]['username'] if device_user_qs.exists() else ''
|
|
@@ -823,7 +826,7 @@ class UnicomManageControllerView(View):
|
|
|
return response.json(0, {'packageList': package_list})
|
|
|
iccid = ud_qs[0]['iccid']
|
|
|
card_type = ud_qs[0]['card_type']
|
|
|
- if card_type == 0:
|
|
|
+ if card_type == 0 or card_type == 3:
|
|
|
o_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid) \
|
|
|
.values('status', 'flow_total_usage', 'flow_exceed', 'activation_time', 'expire_time',
|
|
|
'combo__combo_name', 'combo__flow_total', 'updated_time') \
|
|
@@ -835,8 +838,8 @@ class UnicomManageControllerView(View):
|
|
|
data = {'iccid': iccid, 'operator': 3}
|
|
|
return response.json(0, {'package_list': cls.get_wx_package_list(**data)})
|
|
|
if card_type == 5:
|
|
|
- data = {'iccid': iccid, 'timestamp': int(time.time()), 'nonce': random.randint(10000, 99999) }
|
|
|
- original_data = EIoTClubObject.query_order_record_list("v3",**data)
|
|
|
+ data = {'iccid': iccid, 'timestamp': int(time.time()), 'nonce': random.randint(10000, 99999)}
|
|
|
+ original_data = EIoTClubObject.query_order_record_list("v3", **data)
|
|
|
return response.json(0, {'package_list': cls.get_dx_package_list(original_data)})
|
|
|
return response.json(0, {'package_list': package_list})
|
|
|
|
|
@@ -904,20 +907,40 @@ class UnicomManageControllerView(View):
|
|
|
return []
|
|
|
|
|
|
@staticmethod
|
|
|
- def get_device_status_by_iccid(iccid, card_type):
|
|
|
+ def get_device_status_by_iccid(iccid, card_type, access_number=''):
|
|
|
try:
|
|
|
re_data = {'iccid': iccid}
|
|
|
if card_type == 0:
|
|
|
+
|
|
|
status_dict = {1: '已激活', 2: '可激活', 3: '已停用', 4: '已失效', 5: '可测试', 6: '库存', 7: '已更换', 8: '已清除'}
|
|
|
result = UnicomObjeect().query_device_status(**re_data)
|
|
|
res_dict = UnicomObjeect().get_text_dict(result)
|
|
|
return status_dict.get(int(res_dict['data']['status']), 'N/A')
|
|
|
+
|
|
|
elif card_type == 1:
|
|
|
+
|
|
|
status_dict = {1: '库存', 2: '可激活', 3: '已激活', 4: '已停用', 5: '已失效', 6: '强制停机'}
|
|
|
data = {'iccid': iccid, 'operator': 3}
|
|
|
wx_tech = WXTechObject()
|
|
|
result = wx_tech.get_cards_info(**data)
|
|
|
return status_dict.get(int(result['data']['cardStatusCode']), 'N/A')
|
|
|
+
|
|
|
+ elif card_type == 3:
|
|
|
+
|
|
|
+ status_dict = {'connect': '已激活', 'disconnect': '已停用'}
|
|
|
+ i = 0
|
|
|
+ while i < 3:
|
|
|
+ status_code = TelecomService().get_access_number_network_status(access_number)
|
|
|
+ if status_code:
|
|
|
+ return status_dict.get(status_code, 'N/A')
|
|
|
+ i += 1
|
|
|
+
|
|
|
+ access_info = AccessNumberTaskQueue.objects.filter(iccid=iccid, status=1) \
|
|
|
+ .order_by('-completion_time').values('action')
|
|
|
+ if not access_info.exists():
|
|
|
+ return 'N/A'
|
|
|
+ return '已激活' if access_info[0]['action'] == 2 else '已停用'
|
|
|
+
|
|
|
else:
|
|
|
return 'N/A'
|
|
|
except Exception as e:
|
|
@@ -934,16 +957,20 @@ class UnicomManageControllerView(View):
|
|
|
if not serial_number:
|
|
|
return response.json(444)
|
|
|
status = int(request_dict.get('status', 0))
|
|
|
- unicom_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number, card_type=0)
|
|
|
+ unicom_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number, card_type__in=[0, 3])
|
|
|
if not unicom_qs.exists():
|
|
|
return response.json(173)
|
|
|
unicom_service = UnicomObjeect()
|
|
|
iccid = unicom_qs.first().iccid
|
|
|
+ access_number = unicom_qs.first().access_number
|
|
|
+ card_type = unicom_qs.first().card_type
|
|
|
if status == 1: # 激活
|
|
|
- unicom_service.change_device_to_activate(iccid)
|
|
|
+ unicom_service.change_device_to_activate(iccid=iccid, card_type=card_type, access_number=access_number,
|
|
|
+ reason='后台操作恢复网络')
|
|
|
return response.json(0)
|
|
|
elif status == 3: # 停用
|
|
|
- unicom_service.change_device_to_disable(iccid)
|
|
|
+ unicom_service.change_device_to_disable(iccid=iccid, card_type=card_type, access_number=access_number,
|
|
|
+ reason='后台操作断网')
|
|
|
return response.json(0)
|
|
|
return response.json(902)
|
|
|
|
|
@@ -1314,7 +1341,7 @@ class UnicomManageControllerView(View):
|
|
|
"used": package.get("flowTotal", 0) - package.get("flowRemain", 0),
|
|
|
"activationTime": package.get("startDate", ""),
|
|
|
"expireTime": package.get("endDate", ""),
|
|
|
- "updatedTime": "" #没有这个数据接口
|
|
|
+ "updatedTime": "" # 没有这个数据接口
|
|
|
}
|
|
|
package_list.append(new_package)
|
|
|
- return package_list
|
|
|
+ return package_list
|