diff --git a/app/api/endpoints/coupon.py b/app/api/endpoints/coupon.py index 8f6aa13..288bb8b 100644 --- a/app/api/endpoints/coupon.py +++ b/app/api/endpoints/coupon.py @@ -120,13 +120,14 @@ async def issue_coupon( db.add(issue_record) # 批量创建用户优惠券 - manager = CouponManager(coupon) - user_coupons = [] - + user_coupons = [] for _ in range(user_coupon.count): - user_coupon_obj = manager.add_coupon( + user_coupon_obj = UserCouponDB( user_id=user_coupon.user_id, coupon_id=coupon.id, + coupon_name=coupon.name, + coupon_amount=coupon.amount, + coupon_type=coupon.coupon_type, expire_time=user_coupon.expire_time ) db.add(user_coupon_obj) diff --git a/app/api/endpoints/coupon_activity.py b/app/api/endpoints/coupon_activity.py index 45dd7e2..9ab5a81 100644 --- a/app/api/endpoints/coupon_activity.py +++ b/app/api/endpoints/coupon_activity.py @@ -205,13 +205,17 @@ async def receive_coupons( today = datetime.now().date() #过期时间:15 天 expire_time = datetime.combine(today, datetime.max.time()) + timedelta(days=config['days']) - manager = CouponManager(db) - manager.add_coupon( - user_id=current_user.userid, - coupon_id=coupon.id, - expire_time= expire_time, - count=config['count'] - ) + count=config['count'] + for _ in range(count): + user_coupon = UserCouponDB( + user_id=current_user.userid, + coupon_id=coupon_id, + coupon_name=coupon.name, + coupon_amount=coupon.amount, + coupon_type=coupon.coupon_type, + expire_time=expire_time, + ) + db.add(user_coupon) # 检查是否领取过优惠券 receive_record = db.query(CouponReceiveRecordDB).filter( diff --git a/app/core/coupon_manager.py b/app/core/coupon_manager.py index 8645c54..86371c4 100644 --- a/app/core/coupon_manager.py +++ b/app/core/coupon_manager.py @@ -27,17 +27,21 @@ class CouponManager: Returns: UserCouponDB: 创建的用户优惠券对象 + + Raises: + ValueError: 当优惠券对象不存在时抛出 """ - # 使用传入的优惠券对象 - coupon = self.coupon + # 检查优惠券对象是否存在 + if not self.coupon: + raise ValueError("优惠券对象不存在") # 发放优惠券 user_coupon = UserCouponDB( user_id=user_id, coupon_id=coupon_id, - coupon_name=coupon.name, - coupon_amount=coupon.amount, - coupon_type=coupon.coupon_type, + coupon_name=self.coupon.name, + coupon_amount=self.coupon.amount, + coupon_type=self.coupon.coupon_type, expire_time=expire_time, ) diff --git a/jobs.sqlite b/jobs.sqlite index 07da51e..707156c 100644 Binary files a/jobs.sqlite and b/jobs.sqlite differ