feat: 新增后台选择过期方式

This commit is contained in:
lan
2024-06-15 20:04:48 +08:00
parent 85054fcba3
commit 76038dba68
8 changed files with 45 additions and 39 deletions
+3 -3
View File
@@ -8,7 +8,7 @@ from fastapi import APIRouter, Depends
from apps.admin.depends import admin_required
from apps.admin.pydantics import IDData
from apps.base.models import FileCodes
from apps.base.models import FileCodes, KeyValue
from core.response import APIResponse
from core.settings import settings
from core.storage import file_storage
@@ -44,7 +44,7 @@ async def file_list(page: float = 1, size: int = 10):
@admin_api.get('/config/get', dependencies=[Depends(admin_required)])
async def get_config():
return APIResponse(detail=settings.__dict__)
return APIResponse(detail=settings.items())
@admin_api.patch('/config/update', dependencies=[Depends(admin_required)])
@@ -52,7 +52,7 @@ async def update_config(data: dict):
admin_token = data.get('admin_token')
if admin_token is None or admin_token == '':
return APIResponse(code=400, detail='管理员密码不能为空')
await KeyValue.filter(key='settings').update(value=data)
for k, v in data.items():
settings.__setattr__(k, v)
return APIResponse()
+7 -1
View File
@@ -24,7 +24,6 @@ class FileCodes(Model):
expired_at: Optional[datetime] = fields.DatetimeField(null=True, description='过期时间')
expired_count: Optional[int] = fields.IntField(description='可用次数', default=0)
used_count: Optional[int] = fields.IntField(description='已用次数', default=0)
created_at: Optional[datetime] = fields.DatetimeField(auto_now_add=True, description='创建时间')
async def is_expired(self):
@@ -41,4 +40,11 @@ class FileCodes(Model):
return f"{self.file_path}/{self.uuid_file_name}"
class KeyValue(Model):
id: Optional[int] = fields.IntField(pk=True)
key: Optional[str] = fields.CharField(max_length=255, description='', index=True, unique=True)
value: Optional[str] = fields.JSONField(description='', null=True)
created_at: Optional[datetime] = fields.DatetimeField(auto_now_add=True, description='创建时间')
file_codes_pydantic = pydantic_model_creator(FileCodes, name='FileCodes')