|
@@ -20,11 +20,10 @@ from django.views.generic.base import View
|
|
|
|
|
|
from Ansjer.config import LOGGER
|
|
from Ansjer.config import LOGGER
|
|
from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, Order_Model, Store_Meal, AiStoreMeal, \
|
|
from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, Order_Model, Store_Meal, AiStoreMeal, \
|
|
- UnicomComboOrderInfo, UnicomComboExperienceHistory, UnicomDeviceStatusChangePush, SysMsgModel, UnicomFlowPush, \
|
|
|
|
- LogModel, DeviceLiveRestrict, SerialNumberPackage
|
|
|
|
|
|
+ UnicomComboOrderInfo, UnicomComboExperienceHistory, UnicomDeviceStatusChangePush, SysMsgModel, LogModel, \
|
|
|
|
+ DeviceLiveRestrict
|
|
from Object.EIoTClubObject import EIoTClubObject
|
|
from Object.EIoTClubObject import EIoTClubObject
|
|
from Object.Enums.WXOperatorEnum import WXOperatorEnum
|
|
from Object.Enums.WXOperatorEnum import WXOperatorEnum
|
|
-from Object.RedisObject import RedisObject
|
|
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.TokenObject import TokenObject
|
|
from Object.TokenObject import TokenObject
|
|
from Object.UnicomObject import UnicomObjeect
|
|
from Object.UnicomObject import UnicomObjeect
|
|
@@ -285,56 +284,12 @@ class UnicomComboView(View):
|
|
return response.json(444)
|
|
return response.json(444)
|
|
logger.info('PC工具进入重置SIM卡{}'.format(serial_no))
|
|
logger.info('PC工具进入重置SIM卡{}'.format(serial_no))
|
|
try:
|
|
try:
|
|
- if not CommonService.check_time_stamp_token(sign, time_stamp):
|
|
|
|
- return response.json(13)
|
|
|
|
- now_time = int(time.time())
|
|
|
|
- redis = RedisObject()
|
|
|
|
- with transaction.atomic():
|
|
|
|
- device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_no)
|
|
|
|
- if not device_info_qs.exists(): # 首先查询SIM卡绑定信息是否存在
|
|
|
|
- return response.json(173)
|
|
|
|
- iccid = device_info_qs.first().iccid
|
|
|
|
- if device_info_qs.first().card_type == 1:
|
|
|
|
- cls.reset_telecom_user(serial_no)
|
|
|
|
- device_info_qs.update(updated_time=now_time, user_id='')
|
|
|
|
- return response.json(0)
|
|
|
|
- # 根据序列号重置出厂流量套餐
|
|
|
|
- serial_package_qs = SerialNumberPackage.objects.filter(~Q(status=1), serial_number=serial_no)
|
|
|
|
- if serial_package_qs.exists():
|
|
|
|
- serial_package_qs.update(status=1, updated_time=now_time, updated_by='operator')
|
|
|
|
-
|
|
|
|
- flow_push_qs = UnicomFlowPush.objects.filter(serial_no=serial_no)
|
|
|
|
- if flow_push_qs.exists(): # 删除流量预警推送
|
|
|
|
- flow_push_qs.delete()
|
|
|
|
- sys_msg_qs = SysMsgModel.objects.filter(uid=serial_no)
|
|
|
|
- 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.order_id)
|
|
|
|
- combo_order_qs.delete()
|
|
|
|
- combo_experience_history_qs = UnicomComboExperienceHistory.objects.filter(iccid=iccid)
|
|
|
|
- if combo_experience_history_qs.exists():
|
|
|
|
- combo_experience_history_qs.delete()
|
|
|
|
-
|
|
|
|
- UnicomObjeect().change_device_to_disable(iccid)
|
|
|
|
- logger.info('4GResetFlow相关订单号:{}'.format(order_list))
|
|
|
|
- describe = '重置4G流量序列号{},iccid:{}'.format(serial_no, iccid)
|
|
|
|
- key = f'ASJ:UNICOM:CARD:ACTIVATE:{serial_no}'
|
|
|
|
- redis.del_data(key)
|
|
|
|
- ip = CommonService.get_ip_address(request)
|
|
|
|
- cls.create_operation_log('unicom/api/device-status', ip, request_dict, describe)
|
|
|
|
- return response.json(0)
|
|
|
|
|
|
+ return response.json(10072)
|
|
except Exception as e:
|
|
except Exception as e:
|
|
print(e.args)
|
|
print(e.args)
|
|
ex = traceback.format_exc()
|
|
ex = traceback.format_exc()
|
|
print(ex)
|
|
print(ex)
|
|
- logger.info('PC工具重置异常ICCID{},msg={}'.format(iccid, ex))
|
|
|
|
|
|
+ logger.info('PC工具重置异常ICCID{},msg={}'.format(serial_no, ex))
|
|
return response.json(177, ex)
|
|
return response.json(177, ex)
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
@@ -437,8 +392,10 @@ class UnicomComboView(View):
|
|
|
|
|
|
if cls.is_unicom_sim(iccid): # 联通卡
|
|
if cls.is_unicom_sim(iccid): # 联通卡
|
|
UnicomDeviceInfo.objects.create(**params)
|
|
UnicomDeviceInfo.objects.create(**params)
|
|
|
|
+ result = cls.activate_test_flow_package(serial_no)
|
|
cls.create_operation_log('unicom/api/device-bind',
|
|
cls.create_operation_log('unicom/api/device-bind',
|
|
- ip, request_dict, '4G序列号{}绑定{}'.format(serial_no, iccid))
|
|
|
|
|
|
+ ip, request_dict,
|
|
|
|
+ '4G序列号{}绑定{},testFlowPackage{}'.format(serial_no, iccid, result))
|
|
return response.json(0)
|
|
return response.json(0)
|
|
elif cls.is_dingxin_iot(iccid): # 鼎芯物联卡
|
|
elif cls.is_dingxin_iot(iccid): # 鼎芯物联卡
|
|
params['card_type'] = 5 # 国际
|
|
params['card_type'] = 5 # 国际
|
|
@@ -456,7 +413,7 @@ class UnicomComboView(View):
|
|
except Exception as e:
|
|
except Exception as e:
|
|
print(e)
|
|
print(e)
|
|
ex = traceback.format_exc()
|
|
ex = traceback.format_exc()
|
|
- logger.info('--->设备调用4G注册接口异常:{}'.format(ex))
|
|
|
|
|
|
+ logger.info('UnicomComboView.iccid_bind_serial_no error{}'.format(ex))
|
|
return response.json(177, repr(e))
|
|
return response.json(177, repr(e))
|
|
|
|
|
|
@classmethod
|
|
@classmethod
|
|
@@ -1042,3 +999,60 @@ class UnicomComboView(View):
|
|
except Exception as e:
|
|
except Exception as e:
|
|
print('日志异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
print('日志异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
return response.json(0)
|
|
return response.json(0)
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def activate_test_flow_package(cls, serial_number):
|
|
|
|
+ """
|
|
|
|
+ 激活测试流量套餐(100M)
|
|
|
|
+ @return: 成功 | 失败
|
|
|
|
+ """
|
|
|
|
+ flow_combo_qs = UnicomCombo.objects.filter(combo_type=4, is_del=False)
|
|
|
|
+ if not flow_combo_qs:
|
|
|
|
+ return False
|
|
|
|
+ package_id = flow_combo_qs.values().first().id
|
|
|
|
+ return cls.generate_flow_package(serial_number, package_id, '151564262337939513800138001')
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def generate_flow_package(cls, serial_number, package_id, user_id):
|
|
|
|
+ """
|
|
|
|
+ 生成联通流量套餐包
|
|
|
|
+ @param serial_number: 序列号
|
|
|
|
+ @param package_id: 套餐id
|
|
|
|
+ @param user_id: 用户id
|
|
|
|
+ @return: True | False
|
|
|
|
+ """
|
|
|
|
+ try:
|
|
|
|
+ u_device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number, card_type=0)
|
|
|
|
+ if not u_device_info_qs.exists():
|
|
|
|
+ LOGGER.info(f'{serial_number}生成联通流量套餐iccid未绑定')
|
|
|
|
+ return False
|
|
|
|
+ combo_qs = UnicomCombo.objects.filter(id=package_id) \
|
|
|
|
+ .values('id', 'combo_name', 'price', 'virtual_price', 'remark').order_by('sort')
|
|
|
|
+ if not combo_qs.exists():
|
|
|
|
+ LOGGER.info(f'{serial_number}生成联通流量套餐不存在')
|
|
|
|
+ return False
|
|
|
|
+ now_time = int(time.time())
|
|
|
|
+ combo_info_vo = combo_qs[0]
|
|
|
|
+ u_device_info = u_device_info_qs.first()
|
|
|
|
+ rank_id, ai_rank_id = UnicomComboView.get_cloud_or_ai_combo() # 生成订单必须添加该字段
|
|
|
|
+ uid = CommonService.get_uid_by_serial_number(serial_number)
|
|
|
|
+ if u_device_info.user_id:
|
|
|
|
+ user_id = u_device_info.user_id
|
|
|
|
+ order_id = CommonService.createOrderID()
|
|
|
|
+ order_dict = {'orderID': order_id, 'UID': uid, 'rank_id': rank_id, 'ai_rank_id': ai_rank_id,
|
|
|
|
+ 'userID_id': user_id, 'desc': combo_info_vo['combo_name'], 'payType': 10,
|
|
|
|
+ 'payTime': now_time, 'price': combo_info_vo['price'], 'addTime': now_time,
|
|
|
|
+ 'updTime': now_time, 'status': 1,
|
|
|
|
+ '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)
|
|
|
|
+ UnicomComboView.create_combo_order_info(order_id, 0, u_device_info.iccid, package_id)
|
|
|
|
+ if u_device_info.status != 2:
|
|
|
|
+ UnicomDeviceInfo.objects.filter(iccid=u_device_info.iccid).update(status=2, updated_time=now_time)
|
|
|
|
+ LOGGER.info(f'{serial_number}生成流量套餐包成功,createdBy:{user_id}')
|
|
|
|
+ return True
|
|
|
|
+ except Exception as e:
|
|
|
|
+ LOGGER.info('UnicomManageControllerView.order_flow_package,{}errLine:{}, errMsg:{}'
|
|
|
|
+ .format(serial_number, e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
+ return False
|