|
# -*- 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()
|