修复 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())
).all()
result = CouponActivityInfo.model_validate(activity)
result.coupons = [CouponInfo.model_validate(coupon) for coupon in coupons]
activity_data = CouponActivityInfo.model_validate(activity).model_dump()
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)

View File

@ -1,7 +1,7 @@
from typing import Any, Optional
from fastapi.responses import JSONResponse
from pydantic import BaseModel, ConfigDict
from datetime import datetime
from datetime import datetime, time, date
from typing import TypeVar, Generic
from fastapi import status
import json
@ -10,6 +10,10 @@ class CustomJSONEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime):
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):
return float(obj)
return super().default(obj)