This commit is contained in:
aaron 2025-03-06 08:44:04 +08:00
parent c5bc3b8e86
commit 26141cce48
3 changed files with 22 additions and 5 deletions

View File

@ -18,7 +18,7 @@ from typing import List, Optional
import logging
from sqlalchemy.orm import joinedload
from app.core.redis_client import redis_client
from datetime import datetime
router = APIRouter()
@router.post("", response_model=ResponseModel)
@ -132,7 +132,7 @@ async def get_community_time_periods(
"from_time": ctp.time_period_from_time,
"to_time": ctp.time_period_to_time,
"order_full": today_orders_count >= ctp.CommunityTimePeriodDB.capacity,
"order_busy": today_orders_count >= ctp.CommunityTimePeriodDB.capacity * 0.8
"expired": datetime.now().time() > ctp.time_period_from_time
})
return success_response(data=result)

View File

@ -464,6 +464,7 @@ async def get_order_detail(
"complete_images": order.optimized_complete_images,
"packages": package_list,
"is_first_order": order.is_first_order,
"cancel_reason": order.cancel_reason,
"create_time": order.create_time,
"complete_time": order.completed_time,

View File

@ -33,9 +33,13 @@ router = APIRouter()
@router.post("/send-code")
async def send_verify_code(request: VerifyCodeRequest):
"""发送验证码"""
phone = request.phone
try:
phone = request.phone
# 通过 redis 实现验证码发送频率限制
limit_time = redis_client.get_client().get(f"verify_code_limit:{phone}")
if limit_time and datetime.now() < limit_time:
return error_response(message="验证码发送频率过高")
# 发送验证码
code, request_id = await qcloud_manager.send_sms_code(phone)
@ -45,6 +49,13 @@ async def send_verify_code(request: VerifyCodeRequest):
settings.VERIFICATION_CODE_EXPIRE_SECONDS,
code
)
# 设置验证码发送频率限制
redis_client.get_client().setex(
f"verify_code_limit:{phone}",
datetime.now() + timedelta(seconds=30),
True
)
return success_response(message="验证码已发送")
@ -301,7 +312,8 @@ async def update_user_roles(
@router.post("/password-login", response_model=ResponseModel)
async def password_login(
login_data: UserPasswordLogin,
db: Session = Depends(get_db)
db: Session = Depends(get_db),
response: Response = None
):
"""密码登录"""
user = db.query(UserDB).filter(UserDB.phone == login_data.phone).first()
@ -330,6 +342,10 @@ async def password_login(
# 生成访问令牌
access_token = create_access_token(data={"phone": user.phone,"userid":user.userid})
# 设置JWT cookie
if response:
set_jwt_cookie(response, access_token)
return success_response(
data={