|
@@ -101,6 +101,8 @@ class UnicomManageControllerView(View):
|
|
return self.package_cdk_export_excel(response)
|
|
return self.package_cdk_export_excel(response)
|
|
elif operation == 'uploadSerialNumberFile': # 上传序列号文件绑定4G套餐
|
|
elif operation == 'uploadSerialNumberFile': # 上传序列号文件绑定4G套餐
|
|
return self.upload_file(tko.user, request, request_dict, response)
|
|
return self.upload_file(tko.user, request, request_dict, response)
|
|
|
|
+ elif operation == 'iccidBatchReset': # 上传序列号文件绑定4G套餐
|
|
|
|
+ return self.iccid_batch_reset(tko.user, request, request_dict, response)
|
|
else:
|
|
else:
|
|
return response.json(404)
|
|
return response.json(404)
|
|
|
|
|
|
@@ -1016,3 +1018,66 @@ class UnicomManageControllerView(View):
|
|
if sn_list:
|
|
if sn_list:
|
|
SerialNumberPackage.objects.bulk_create(sn_list)
|
|
SerialNumberPackage.objects.bulk_create(sn_list)
|
|
return response.json(0, {'total': len(serial_list), 'errData': error_list})
|
|
return response.json(0, {'total': len(serial_list), 'errData': error_list})
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def iccid_batch_reset(cls, user, request, request_dict, response):
|
|
|
|
+ """
|
|
|
|
+ iccid批量重置流量
|
|
|
|
+ """
|
|
|
|
+ file = request.FILES['file']
|
|
|
|
+ if not file:
|
|
|
|
+ return response.json(444)
|
|
|
|
+ err_data = []
|
|
|
|
+ for line in file:
|
|
|
|
+ serial_number = line.decode().strip()[0:9]
|
|
|
|
+ try:
|
|
|
|
+ device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number)
|
|
|
|
+ now_time = int(time.time())
|
|
|
|
+ if not device_info_qs.exists():
|
|
|
|
+ err_data.append({'serialNumber': serial_number, 'msg': '数据不存在'})
|
|
|
|
+ continue
|
|
|
|
+
|
|
|
|
+ iccid = device_info_qs.first().iccid
|
|
|
|
+ # 根据序列号重置出厂流量套餐
|
|
|
|
+ serial_package_qs = SerialNumberPackage.objects.filter(~Q(status=1), serial_number=serial_number)
|
|
|
|
+ if serial_package_qs.exists():
|
|
|
|
+ serial_package_qs.update(status=1, updated_time=now_time, updated_by=user)
|
|
|
|
+
|
|
|
|
+ if device_info_qs.first().card_type == 1: # 五兴电信
|
|
|
|
+ data = {'iccids': iccid, 'operator': WXOperatorEnum.TELECOM.value}
|
|
|
|
+ wx_tech = WXTechObject()
|
|
|
|
+ res = wx_tech.delete_card_package(**data)
|
|
|
|
+ if res['code'] == '0':
|
|
|
|
+ UnicomComboExperienceHistory.objects.filter(iccid=iccid).delete()
|
|
|
|
+ continue
|
|
|
|
+ err_data.append({'serialNumber': serial_number, 'msg': '电信重置流量异常:{}'.format(res['code'])})
|
|
|
|
+ continue
|
|
|
|
+ # 联通
|
|
|
|
+ flow_push_qs = UnicomFlowPush.objects.filter(serial_no=serial_number)
|
|
|
|
+ if flow_push_qs.exists(): # 删除流量预警推送
|
|
|
|
+ flow_push_qs.delete()
|
|
|
|
+ sys_msg_qs = SysMsgModel.objects.filter(uid=serial_number)
|
|
|
|
+ if sys_msg_qs.exists(): # 删除有关系统消息数据
|
|
|
|
+ sys_msg_qs.delete()
|
|
|
|
+ # 将4G用户信息状态改为已完成测试状态
|
|
|
|
+ device_info_qs.update(status=1, updated_time=now_time, user_id='')
|
|
|
|
+
|
|
|
|
+ combo_order_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid)
|
|
|
|
+ if combo_order_qs.exists():
|
|
|
|
+ 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) # 重置流量停用设备
|
|
|
|
+ # 记录日志,清除缓存
|
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
|
|
+ describe = '重置4G流量序列号{},iccid:{}'.format(serial_number, iccid)
|
|
|
|
+ key = f'ASJ:UNICOM:CARD:ACTIVATE:{serial_number}'
|
|
|
|
+ redis = RedisObject()
|
|
|
|
+ redis.del_data(key)
|
|
|
|
+ cls.create_operation_log('unicom/manage/iccidBatchReset', ip, request_dict, describe)
|
|
|
|
+ continue
|
|
|
|
+ except Exception as e:
|
|
|
|
+ err_data.append({'serialNumber': serial_number, 'msg': '重置流量异常:{}'.format(repr(e))})
|
|
|
|
+ return response.json(0, err_data)
|