修复 bug

This commit is contained in:
aaron 2025-02-20 23:09:21 +08:00
parent 3dc82e0986
commit 30b68a662d
2 changed files with 15 additions and 4 deletions

View File

@ -63,10 +63,17 @@ async def get_coupon_activity(
CouponDB.id.in_(activity.coupon_config.keys()) CouponDB.id.in_(activity.coupon_config.keys())
).all() ).all()
result = CouponActivityInfo.model_validate(activity) activity_data = CouponActivityInfo.model_validate(activity).model_dump()
result.coupons = [CouponInfo.model_validate(coupon) for coupon in coupons] activity_data.update({'coupons': [CouponInfo.model_validate(coupon) for coupon in coupons]})
return success_response(data=result) # 当前是否可以领取
current_time = datetime.now().time()
if current_time < activity.daily_start_time or current_time > activity.daily_end_time:
activity_data.update({'can_receive': False})
else:
activity_data.update({'can_receive': True})
return success_response(data=activity_data)
@router.get("", response_model=ResponseModel) @router.get("", response_model=ResponseModel)

View File

@ -1,7 +1,7 @@
from typing import Any, Optional from typing import Any, Optional
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from pydantic import BaseModel, ConfigDict from pydantic import BaseModel, ConfigDict
from datetime import datetime from datetime import datetime, time, date
from typing import TypeVar, Generic from typing import TypeVar, Generic
from fastapi import status from fastapi import status
import json import json
@ -10,6 +10,10 @@ class CustomJSONEncoder(json.JSONEncoder):
def default(self, obj): def default(self, obj):
if isinstance(obj, datetime): if isinstance(obj, datetime):
return obj.strftime('%Y-%m-%d %H:%M:%S') return obj.strftime('%Y-%m-%d %H:%M:%S')
if isinstance(obj, time):
return obj.strftime('%H:%M:%S')
elif isinstance(obj, date):
return obj.strftime('%Y-%m-%d')
elif isinstance(obj, Decimal): elif isinstance(obj, Decimal):
return float(obj) return float(obj)
return super().default(obj) return super().default(obj)