v2.5.1更新
This commit is contained in:
@@ -42,11 +42,28 @@ async def list_semesters(request: Request):
|
||||
|
||||
@router.get("/active")
|
||||
async def get_active_semester(request: Request):
|
||||
"""获取当前活跃学期"""
|
||||
"""获取当前活跃学期(含当前周数)"""
|
||||
user = await get_current_user(request)
|
||||
result = await SemesterService.get_active_semester()
|
||||
if result["success"]:
|
||||
return success_response(data=result.get("semester"))
|
||||
semester = result.get("semester")
|
||||
if semester and semester.get('start_date'):
|
||||
from datetime import date, datetime
|
||||
try:
|
||||
start = semester['start_date']
|
||||
if isinstance(start, str):
|
||||
start_date = datetime.strptime(start, '%Y-%m-%d').date()
|
||||
else:
|
||||
start_date = start
|
||||
today = date.today()
|
||||
delta = (today - start_date).days
|
||||
if delta >= 0:
|
||||
semester['current_week'] = delta // 7 + 1
|
||||
else:
|
||||
semester['current_week'] = 0
|
||||
except Exception:
|
||||
semester['current_week'] = None
|
||||
return success_response(data=semester)
|
||||
else:
|
||||
return error_response(message=result["message"])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user