Forráskód Böngészése

后台重置流量排查是否序列号重复、4G套餐接入鼎芯接口、五兴新增订购出厂绑定无限流量功能

zhangdongming 1 éve
szülő
commit
8637b60e85

+ 16 - 2
AdminController/UnicomManageController.py

@@ -9,6 +9,7 @@ import hashlib
 import json
 import threading
 import time
+import random
 import uuid
 from decimal import Decimal
 
@@ -31,6 +32,7 @@ from Object.TokenObject import TokenObject
 from Object.UnicomObject import UnicomObjeect
 from Object.WXTechObject import WXTechObject
 from Service.CommonService import CommonService
+from Object.EIoTClubObject import EIoTClubObject
 
 
 class UnicomManageControllerView(View):
@@ -153,6 +155,8 @@ class UnicomManageControllerView(View):
             device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number)
             now_time = int(time.time())
             if device_info_qs.exists():  # 首先查询SIM卡绑定信息是否存在
+                if device_info_qs.count() > 1:
+                    return response.json(177)
                 iccid = device_info_qs.first().iccid
                 # 根据序列号重置出厂流量套餐
                 serial_package_qs = SerialNumberPackage.objects.filter(~Q(status=1), serial_number=serial_number)
@@ -822,6 +826,10 @@ class UnicomManageControllerView(View):
         if card_type == 1:
             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)
+            return response.json(0, {'package_list': cls.get_dx_package_list(original_data)})
         return response.json(0, {'package_list': package_list})
 
     @staticmethod
@@ -1083,9 +1091,11 @@ class UnicomManageControllerView(View):
                 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': '数据不存在'})
+                    err_data.append({'serialNumber': serial_number, 'msg': 'data is null'})
+                    continue
+                if device_info_qs.count() > 1:
+                    err_data.append({'serialNumber': serial_number, 'msg': 'Bind multiple iccid'})
                     continue
-
                 iccid = device_info_qs.first().iccid
                 if binding_type == 1:
                     SerialNumberPackage.objects.filter(serial_number=serial_number).delete()
@@ -1133,6 +1143,10 @@ class UnicomManageControllerView(View):
             except Exception as e:
                 err_data.append({'serialNumber': serial_number, 'msg': '重置流量异常:{}'.format(repr(e))})
                 continue
+        if err_data:
+            describe = json.loads(json.dumps(err_data))
+            UnicomManageControllerView().create_operation_log('unicom/manage/iccidBatchReset', ip, binding_type,
+                                                              describe)
         LOGGER.info(f'批量重置流量type={binding_type},err_data={err_data}')
 
     @classmethod

+ 4 - 1
Controller/UnicomCombo/WXTechController.py

@@ -178,10 +178,11 @@ class WXTechControllerView(View):
                 return response.json(10062)
             ip = CommonService.get_ip_address(request)
             experience_history_vo = {'iccid': iccid, 'experience_type': 0, 'do_time': int(time.time())}
+            app_user_id = unicom_device_qs['user_id'] if unicom_device_qs['user_id'] else user_id
             if unicom_device_qs['card_type'] == 0:  # 珠海联通
 
                 flow_combo_qs = UnicomCombo.objects.filter(combo_type=1, is_del=False, status=0).order_by('sort')
-                app_user_id = unicom_device_qs['user_id'] if unicom_device_qs['user_id'] else user_id
+
                 free_result = False
                 if flow_combo_qs.exists():
                     # 生成免费体验套餐
@@ -208,6 +209,8 @@ class WXTechControllerView(View):
                     UnicomDeviceInfo.objects.filter(serial_no=serial_no) \
                         .update(user_id=user_id, updated_time=int(time.time()))
                     LOGGER.info('*****系统创建体验订单:{}'.format(order_res))
+                    factory_result = cls.activate_flow_package(serial_no, ip, app_user_id)  # 检测并激活出厂无限流量
+                    cls.save_log(ip, 0, '{}激活免费套餐{},出厂无限流量{}'.format(serial_no, True, factory_result))
                     return response.json(0)
             return response.json(10063)
         except Exception as e:

+ 12 - 0
Object/EIoTClubObject.py

@@ -87,3 +87,15 @@ class EIoTClubObject:
         url = DX_TECH_URL + f'/api/{api_version}/package/listOrderPackageByIccid'
         params['operator'] = 5  # 国际
         return EIoTClubObject().dx_service_api(url, **params)
+
+    @staticmethod
+    def query_order_record_list(api_version, **params):
+        """
+        查询iccid套餐订购记录
+        @param api_version: api版本号
+        @param params: iccid、operator
+        @return: 卡信息
+        """
+        url = DX_TECH_URL + f'/api/{api_version}/package/packageOrderRecord'
+        params['operator'] = 5  # 国际
+        return EIoTClubObject().dx_service_api(url, **params)