No Description

once_refresh_user_coupon_expired_time.py 1.3KB

    # -*- coding: utf-8 -*- import logging from django_six import CompatibilityBaseCommand from account.models import UserInfo from coupon.models import CouponInfo, UserCouponInfo from member.models import RightInfo logger = logging.getLogger('console') class Command(CompatibilityBaseCommand): def handle(self, *args, **options): UserInfo.objects.all().update(coupon_expire_at=None) coupon_ids = [] rights = RightInfo.objects.filter(is_send_coupon=True, status=True) for right in rights: for coupon_id in [right.coupon_level1_id, right.coupon_level2_id, right.coupon_level3_id, right.coupon_level4_id, right.coupon_level5_id]: if not coupon_id: continue try: CouponInfo.objects.get(coupon_id=coupon_id) except CouponInfo.DoesNotExist: continue coupon_ids.append(coupon_id) users = UserInfo.objects.all() for user in users: coupons = UserCouponInfo.objects.filter(user_id=user.user_id, coupon_id__in=coupon_ids, status=True).order_by('-expire_at') if not coupons: continue user.coupon_expire_at = coupons[0].expire_at user.save()