From 62158fe4f0ce226b8c4d09475a0e8f8304ab73e7 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Tue, 25 Feb 2025 22:29:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BC=98=E6=83=A0=E5=88=B8?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/coupon_activity.py | 14 ++++++++++++-- app/models/coupon.py | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/api/endpoints/coupon_activity.py b/app/api/endpoints/coupon_activity.py index 30b4b14..7014d00 100644 --- a/app/api/endpoints/coupon_activity.py +++ b/app/api/endpoints/coupon_activity.py @@ -94,11 +94,21 @@ async def get_coupon_activities( activities = query.order_by(CouponActivityDB.create_time.desc())\ .offset(skip)\ .limit(limit)\ - .all() + .all() + + # 查询每个活动被领取的次数 + activities_data = [] + for activity in activities: + receive_count = db.query(func.sum(CouponReceiveRecordDB.receive_count)).filter( + CouponReceiveRecordDB.activity_id == activity.id, + ).scalar() + activity_data = CouponActivityInfo.model_validate(activity).model_dump() + activity_data.update({'receive_count': receive_count}) + activities_data.append(activity_data) return success_response(data={ "total": total, - "items": [CouponActivityInfo.model_validate(a) for a in activities] + "items": activities_data }) @router.post("/{activity_id}/receive", response_model=ResponseModel) diff --git a/app/models/coupon.py b/app/models/coupon.py index 9a648dd..2bd7289 100644 --- a/app/models/coupon.py +++ b/app/models/coupon.py @@ -44,12 +44,12 @@ class UserCouponDB(Base): # Pydantic 模型 class CouponCreate(BaseModel): name: str = Field(..., max_length=100) - amount: Optional[float] = Field(None, gt=0) + amount: Optional[float] = Field(None) coupon_type: CouponType = Field(CouponType.CASH) class CouponUpdate(BaseModel): name: Optional[str] = Field(None, max_length=100) - amount: Optional[float] = Field(None, gt=0) + amount: Optional[float] = Field(None) coupon_type: CouponType = Field(CouponType.CASH) class CouponInfo(BaseModel):