mirror of
https://github.com/Cccc-owo/CheckInApp.git
synced 2026-06-17 14:06:28 +00:00
refactor: split some logic into util func
This commit is contained in:
@@ -189,7 +189,9 @@ async def get_system_stats(
|
||||
|
||||
# Token 即将过期的用户数(7天内)
|
||||
# 使用 SQL 直接查询,避免 N+1 问题
|
||||
current_timestamp = int(datetime.now().timestamp())
|
||||
from backend.utils.time_helpers import now_timestamp
|
||||
|
||||
current_timestamp = now_timestamp()
|
||||
expiring_soon_timestamp = current_timestamp + (7 * 24 * 60 * 60) # 7天后
|
||||
|
||||
# 直接在数据库层面筛选即将过期的用户
|
||||
|
||||
@@ -66,13 +66,10 @@ async def get_check_in_record_status(
|
||||
|
||||
返回状态:pending(进行中)、success(成功)、failure(失败)
|
||||
"""
|
||||
from backend.utils.db_helpers import get_or_404
|
||||
|
||||
# 获取打卡记录
|
||||
record = db.query(CheckInRecord).filter(CheckInRecord.id == record_id).first()
|
||||
if not record:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="打卡记录不存在"
|
||||
)
|
||||
record = get_or_404(CheckInRecord, record_id, db, "打卡记录不存在")
|
||||
|
||||
# 验证记录归属(通过任务归属)
|
||||
if not TaskService.verify_task_ownership(record.task_id, current_user.id, db):
|
||||
|
||||
+17
-29
@@ -52,20 +52,11 @@ async def get_task(
|
||||
|
||||
需要验证任务属于当前用户
|
||||
"""
|
||||
# 验证任务归属
|
||||
if not TaskService.verify_task_ownership(task_id, current_user.id, db):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="无权访问此任务"
|
||||
)
|
||||
from backend.models import CheckInTask
|
||||
from backend.utils.db_helpers import get_owned_or_403
|
||||
|
||||
task = TaskService.get_task(task_id, db)
|
||||
|
||||
if not task:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="任务不存在"
|
||||
)
|
||||
# 获取任务并验证归属
|
||||
task = get_owned_or_403(CheckInTask, task_id, current_user.id, db) # type: ignore
|
||||
|
||||
return task
|
||||
|
||||
@@ -82,12 +73,11 @@ async def update_task(
|
||||
|
||||
需要验证任务属于当前用户
|
||||
"""
|
||||
# 验证任务归属
|
||||
if not TaskService.verify_task_ownership(task_id, current_user.id, db):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="无权访问此任务"
|
||||
)
|
||||
from backend.models import CheckInTask
|
||||
from backend.utils.db_helpers import get_owned_or_403
|
||||
|
||||
# 验证任务归属并获取任务
|
||||
get_owned_or_403(CheckInTask, task_id, current_user.id, db) # type: ignore
|
||||
|
||||
task = TaskService.update_task(task_id, task_data, db)
|
||||
|
||||
@@ -111,12 +101,11 @@ async def delete_task(
|
||||
|
||||
需要验证任务属于当前用户,删除后会同时删除所有关联的打卡记录
|
||||
"""
|
||||
from backend.models import CheckInTask
|
||||
from backend.utils.db_helpers import get_owned_or_403
|
||||
|
||||
# 验证任务归属
|
||||
if not TaskService.verify_task_ownership(task_id, current_user.id, db):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="无权访问此任务"
|
||||
)
|
||||
get_owned_or_403(CheckInTask, task_id, current_user.id, db) # type: ignore
|
||||
|
||||
success = TaskService.delete_task(task_id, db)
|
||||
|
||||
@@ -138,12 +127,11 @@ async def toggle_task(
|
||||
|
||||
需要验证任务属于当前用户
|
||||
"""
|
||||
from backend.models import CheckInTask
|
||||
from backend.utils.db_helpers import get_owned_or_403
|
||||
|
||||
# 验证任务归属
|
||||
if not TaskService.verify_task_ownership(task_id, current_user.id, db):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="无权访问此任务"
|
||||
)
|
||||
get_owned_or_403(CheckInTask, task_id, current_user.id, db) # type: ignore
|
||||
|
||||
task = TaskService.toggle_task(task_id, db)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user