Browse Source

根据ip解析或用户设置返回状态

linhaohong 10 months ago
parent
commit
41a57979f3
2 changed files with 14 additions and 5 deletions
  1. 11 4
      Controller/AppSetController.py
  2. 3 1
      Model/models.py

+ 11 - 4
Controller/AppSetController.py

@@ -312,17 +312,24 @@ class AppSetView(View):
 
 
             for restriction in restrictions_qs:
             for restriction in restrictions_qs:
                 response_data[restriction.statusName] = 0
                 response_data[restriction.statusName] = 0
-                user_set = user_set_status_qs.filter(region_restriction_id=restriction.id).first()
+                user_set_qs = user_set_status_qs.filter(region_restriction_id=restriction.id)
                 # 用户控制
                 # 用户控制
-                if user_set:
-                    response_data[restriction.statusName] = user_set.status
+                if user_set_qs.exists():
+                    if restriction.statusName == "splashAdStatus":
+                        if user_set_qs[0].end_time < int(time.time()):
+                            response_data[restriction.statusName] = user_set_qs[0].status
+                        else:
+                            response_data[restriction.statusName] = restriction.default_status
+                    else:
+                        response_data[restriction.statusName] = user_set_qs[0].status
+
                 # 地区控制
                 # 地区控制
                 elif ((not restriction.country_code or country_code in restriction.country_code) and
                 elif ((not restriction.country_code or country_code in restriction.country_code) and
                         (not restriction.region or region in restriction.region) and
                         (not restriction.region or region in restriction.region) and
                         (not restriction.city or city in restriction.city) and
                         (not restriction.city or city in restriction.city) and
                         (not restriction.district or district in restriction.district)):
                         (not restriction.district or district in restriction.district)):
                     # 返回值定义具体看表的content字段
                     # 返回值定义具体看表的content字段
-                    response_data[restriction.statusName] = 1
+                    response_data[restriction.statusName] = restriction.default_status
 
 
             LOGGER.info(f"请求ip地址为 {ip}, 解析为 {country_code}, {region}, {city}, {district}")
             LOGGER.info(f"请求ip地址为 {ip}, 解析为 {country_code}, {region}, {city}, {district}")
             return response.json(0, response_data)
             return response.json(0, response_data)

+ 3 - 1
Model/models.py

@@ -5107,6 +5107,7 @@ class SerialNumberCheckLog(models.Model):
 class RegionRestriction(models.Model):
 class RegionRestriction(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='自增id')
     id = models.AutoField(primary_key=True, verbose_name='自增id')
     statusName = models.CharField(max_length=255, unique=True)
     statusName = models.CharField(max_length=255, unique=True)
+    default_status = models.IntegerField(default=0, verbose_name='默认状态')
     country_code = models.JSONField(default=list, verbose_name='限制国家代码')
     country_code = models.JSONField(default=list, verbose_name='限制国家代码')
     region = models.JSONField(default=list, verbose_name='限制省/州')
     region = models.JSONField(default=list, verbose_name='限制省/州')
     city = models.JSONField(default=list, verbose_name='限制市')
     city = models.JSONField(default=list, verbose_name='限制市')
@@ -5299,6 +5300,7 @@ class SerialUnbindUID(models.Model):
         db_table = 'unbound_serial'
         db_table = 'unbound_serial'
         verbose_name = '序列号解绑uid'
         verbose_name = '序列号解绑uid'
 
 
+
 class UserSetStatus(models.Model):
 class UserSetStatus(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='自增标记ID')
     id = models.AutoField(primary_key=True, verbose_name='自增标记ID')
     user_id = models.CharField(default='', max_length=32, verbose_name='关联用户id', db_index=True)
     user_id = models.CharField(default='', max_length=32, verbose_name='关联用户id', db_index=True)
@@ -5307,8 +5309,8 @@ class UserSetStatus(models.Model):
     status = models.IntegerField(default=0, verbose_name='状态')
     status = models.IntegerField(default=0, verbose_name='状态')
     created_time = models.IntegerField(default=0, verbose_name='创建时间')
     created_time = models.IntegerField(default=0, verbose_name='创建时间')
     updated_time = models.IntegerField(default=0, verbose_name='更新时间')
     updated_time = models.IntegerField(default=0, verbose_name='更新时间')
+    end_time = models.IntegerField(default=0, verbose_name='结束时间')
 
 
     class Meta:
     class Meta:
         db_table = 'user_set_status'
         db_table = 'user_set_status'
         verbose_name = '用户设置状态'
         verbose_name = '用户设置状态'
-