ソースを参照

请求更新序列号状态增加重置地区id

locky 2 年 前
コミット
4ea91f7785

+ 36 - 1
Controller/Cron/CronTaskController.py

@@ -16,7 +16,8 @@ from django.db import connection, connections, transaction
 from django.db.models import Q, Sum, Count
 from django.views import View
 
-from Ansjer.config import USED_SERIAL_REDIS_LIST, UNUSED_SERIAL_REDIS_LIST, CONFIG_INFO, CONFIG_US
+from Ansjer.config import USED_SERIAL_REDIS_LIST, UNUSED_SERIAL_REDIS_LIST, CONFIG_INFO, CONFIG_US, \
+    RESET_REGION_ID_SERIAL_REDIS_LIST
 from Model.models import Device_User, Device_Info, UidSetModel, UID_Bucket, Unused_Uid_Meal, Order_Model, StsCrdModel, \
     VodHlsModel, ExperienceContextModel, AiService, VodHlsSummary, VideoPlaybackTimeModel, DeviceUserSummary, \
     CountryModel, DeviceTypeModel, OrdersSummary, DeviceInfoSummary, CompanySerialModel, \
@@ -327,18 +328,27 @@ class CronUpdateDataView(View):
     def reqUpdateSerialStatus(cls, response):
         redis_obj = RedisObject()
         logger = logging.getLogger('info')
+
         # 更新已使用序列号其他服务器的状态
         used_serial_redis_list = redis_obj.lrange(USED_SERIAL_REDIS_LIST, 0, -1)  # 读取redis已使用序列号
         logger.info('---请求更新序列号接口---used_serial_redis_list:{}---status:{}'.format(used_serial_redis_list, 3))
         if used_serial_redis_list:
             used_serial_redis_list = [str(i, 'utf-8') for i in used_serial_redis_list]
             cls.do_request_function(used_serial_redis_list, 3)
+
         # 更新未使用序列号其他服务器的状态
         unused_serial_redis_list = redis_obj.lrange(UNUSED_SERIAL_REDIS_LIST, 0, -1)  # 读取redis未使用序列号
         logger.info('---请求更新序列号接口---unused_serial_redis_list:{}---status:{}'.format(unused_serial_redis_list, 1))
         if unused_serial_redis_list:
             unused_serial_redis_list = [str(i, 'utf-8') for i in unused_serial_redis_list]
             cls.do_request_function(unused_serial_redis_list, 1)
+
+        # 重置地区id
+        reset_region_id_serial_redis_list = redis_obj.lrange(RESET_REGION_ID_SERIAL_REDIS_LIST, 0, -1)  # 读取redis未使用序列号
+        logger.info('---请求重置地区id的序列号列表---:{}'.format(reset_region_id_serial_redis_list))
+        if reset_region_id_serial_redis_list:
+            reset_region_id_serial_redis_list = [str(i, 'utf-8') for i in reset_region_id_serial_redis_list]
+            cls.do_request_reset_region_id(reset_region_id_serial_redis_list)
         return response.json(0)
 
     @staticmethod
@@ -395,6 +405,31 @@ class CronUpdateDataView(View):
         except Exception as e:
             logger.info('---更新序列号状态异常---:{}'.format(repr(e)))
 
+    @staticmethod
+    def do_request_reset_region_id(reset_region_id_serial_redis_list):
+        """
+        请求重置地区id
+        @param reset_region_id_serial_redis_list: 序列号redis列表
+        """
+        redis_obj = RedisObject()
+        logger = logging.getLogger('info')
+        requests_failed_flag = False  # 请求失败标志位
+        data = {
+            'serial_redis_list': str(reset_region_id_serial_redis_list),
+        }
+        url = 'https://www.dvema.com/cron/update/reset-region-id'
+
+        try:
+            response = requests.post(url=url, data=data, timeout=5)
+            result = response.json()
+            if result['result_code'] != 0:  # 请求失败标志位置位
+                requests_failed_flag = True
+            if not requests_failed_flag:  # 请求成功删除redis序列号
+                for serial in reset_region_id_serial_redis_list:
+                    redis_obj.lrem(RESET_REGION_ID_SERIAL_REDIS_LIST, 0, serial)
+        except Exception as e:
+            logger.info('---请求重置地区id异常---:{}'.format(repr(e)))
+
     @staticmethod
     def updateSerialStatus(request_dict, response):
         """

+ 12 - 11
Controller/RegionController.py

@@ -338,18 +338,19 @@ class RegionView(View):
                 country_qs = country_qs.annotate(api=F('country__region__api'))
             country_qs = country_qs.values('country_id', 'country_name', 'api', 'push_api').order_by('country_id')
 
-            # app中国返回美洲域名
+            # app选择中国且不为中性,返回美洲域名
             if is_app:
-                for country in country_qs:
-                    if country['country_id'] == 1:
-                        country['push_api'] = 'https://push.dvema.com/'
-                        if 'Zosi' in app_name:
-                            country['api'] = 'https://api.zositech2.com/'
-                        elif 'Loocam' in app_name:
-                            country['api'] = 'https://api.loocam2.com/'
-                        else:
-                            country['api'] = 'https://www.dvema.com/'
-                        break
+                if '新中性' not in app_name:
+                    for country in country_qs:
+                        if country['country_id'] == 1:
+                            country['push_api'] = 'https://push.dvema.com/'
+                            if 'Zosi' in app_name:
+                                country['api'] = 'https://api.zositech2.com/'
+                            elif 'Loocam' in app_name:
+                                country['api'] = 'https://api.loocam2.com/'
+                            else:
+                                country['api'] = 'https://www.dvema.com/'
+                            break
             # AVSS
             else:
                 for country in country_qs:

+ 15 - 3
Controller/SerialNumberController.py

@@ -453,7 +453,8 @@ class SerialNumberView(View):
         else:
             return response.json(444)
 
-    def do_detach_uid(self, request, request_dict, response):
+    @staticmethod
+    def do_detach_uid(request, request_dict, response):
         token = request_dict.get('token', None)
         time_stamp = request_dict.get('time_stamp', None)
         serial_number = request_dict.get('serial_number', None)
@@ -542,8 +543,19 @@ class SerialNumberView(View):
                 LogModel.objects.create(**log)
             return response.json(0)
         except Exception as e:
-            djangoLogger = logging.getLogger('django')
-            djangoLogger.exception(repr(e))
+            # 记录操作日志
+            ip = CommonService.get_ip_address(request)
+            content = json.loads(json.dumps(request_dict))
+            log = {
+                'ip': ip,
+                'user_id': 1,
+                'status': 200,
+                'time': now_time,
+                'content': json.dumps(content) + '异常:{}'.format(repr(e)),
+                'url': 'serialNumber/detachUID',
+                'operation': '序列号{}解绑uid{}异常'.format(serial, uid),
+            }
+            LogModel.objects.create(**log)
             return response.json(176, str(e))
 
     def get_uid(self, request_dict, response, request):