Compare commits

..

2 Commits

View File

@ -3,6 +3,7 @@
# @FileName: manage_project.py # @FileName: manage_project.py
# @Software: PyCharm # @Software: PyCharm
from datetime import datetime from datetime import datetime
from typing import re
from fastapi import APIRouter from fastapi import APIRouter
from sqlalchemy import delete from sqlalchemy import delete
@ -57,20 +58,25 @@ async def create_project(data: dict, session: SessionDep, current_user: User = D
raise HTTPException(status_code=403, detail="Only Tenant admin users can add or update projects.") raise HTTPException(status_code=403, detail="Only Tenant admin users can add or update projects.")
project_id = data.get("project_id") project_id = data.get("project_id")
name = data["name"] name = data.get("name")
requirement = data["requirement"] requirement = data.get("requirement")
start_time_str = data["start_time"] start_time_str = data.get("start_time")
deadline_str = data["deadline"] deadline_str = data.get("deadline")
estimators = data["estimator"] estimators = data.get("estimator")
auditors = data["auditor"] auditors = data.get("auditor")
# 验证是否缺少必要参数 # 验证是否缺少必要参数
if not name or not requirement or not start_time_str or not deadline_str: if not name or not requirement or not start_time_str or not deadline_str:
raise HTTPException(status_code=400, detail="Need more name/requirement/start_time/deadline") raise HTTPException(status_code=400, detail="Need more details")
# 验证开始时间是否早于结束时间 # 验证开始时间是否早于结束时间
# 去掉 'Z' 和毫秒部分
start_time_str = start_time_str.split('.')[0].rstrip('Z')
deadline_str = deadline_str.split('.')[0].rstrip('Z')
start_time = datetime.strptime(start_time_str, "%Y-%m-%dT%H:%M:%S") start_time = datetime.strptime(start_time_str, "%Y-%m-%dT%H:%M:%S")
deadline = datetime.strptime(deadline_str, "%Y-%m-%dT%H:%M:%S") deadline = datetime.strptime(deadline_str, "%Y-%m-%dT%H:%M:%S")
if start_time > deadline: if start_time > deadline:
raise HTTPException(status_code=400, detail="Start time must be before deadline") raise HTTPException(status_code=400, detail="Start time must be before deadline")