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:
                 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
                         (not restriction.region or region in restriction.region) and
                         (not restriction.city or city in restriction.city) and
                         (not restriction.district or district in restriction.district)):
                     # 返回值定义具体看表的content字段
-                    response_data[restriction.statusName] = 1
+                    response_data[restriction.statusName] = restriction.default_status
 
             LOGGER.info(f"请求ip地址为 {ip}, 解析为 {country_code}, {region}, {city}, {district}")
             return response.json(0, response_data)

+ 3 - 1
Model/models.py

@@ -5107,6 +5107,7 @@ class SerialNumberCheckLog(models.Model):
 class RegionRestriction(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='自增id')
     statusName = models.CharField(max_length=255, unique=True)
+    default_status = models.IntegerField(default=0, verbose_name='默认状态')
     country_code = models.JSONField(default=list, verbose_name='限制国家代码')
     region = 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'
         verbose_name = '序列号解绑uid'
 
+
 class UserSetStatus(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='自增标记ID')
     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='状态')
     created_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:
         db_table = 'user_set_status'
         verbose_name = '用户设置状态'
-