No Description

cpon2.py 3.3KB

    # -*- coding: utf-8 -*- import logging from django_six import CompatibilityBaseCommand, close_old_connections from TimeConvert import TimeConvert as tc from account.models import UserInfo from coupon.models import CouponInfo, UserCouponInfo from member.models import RightInfo from utils.redis.connect import r from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST2 logger = logging.getLogger('console') class Command(CompatibilityBaseCommand): def handle(self, *args, **options): logger.info('Member coupon is dealing') while True: # r.rpushjson('TEMPLET_CMD_KEY', { # 'brand_id': 'brand_id', # 'user_id': 'user_id', # }) k, v = r.blpopjson(MEMBER_SEND_COUPON_LIST2, 60) if not v: break close_old_connections() logger.info(v) brand_id = v.get('brand_id', '') user_id = v.get('user_id', '') try: user = UserInfo.objects.get(user_id=user_id) except UserInfo.DoesNotExist: continue active_at = user.coupon_expire_at expire_at = tc.utc_datetime(user.coupon_expire_at, days=365) # 发放会员权益 rights = RightInfo.objects.filter(is_send_coupon=True, is_continue_send_coupon=True, status=True) for right in rights: if user.level == UserInfo.MEMBER_LRC: coupon_id = right.coupon_level1_id coupon_num = right.coupon_level1_num elif user.level == UserInfo.MEMBER_SILVER: coupon_id = right.coupon_level2_id coupon_num = right.coupon_level2_num elif user.level == UserInfo.MEMBER_GOLD: coupon_id = right.coupon_level3_id coupon_num = right.coupon_level3_num elif user.level == UserInfo.MEMBER_WHITE_GOLD: coupon_id = right.coupon_level4_id coupon_num = right.coupon_level4_num elif user.level == UserInfo.MEMBER_BLACK_GOLD: coupon_id = right.coupon_level5_id coupon_num = right.coupon_level5_num if not coupon_id: continue try: coupon = CouponInfo.objects.get(coupon_id=coupon_id) except CouponInfo.DoesNotExist: continue for _ in range(right.coupon_num or coupon_num): UserCouponInfo.objects.create( brand_id=coupon.brand_id, brand_name=coupon.brand_name, coupon_id=coupon_id, user_id=user_id, coupon_title=coupon.coupon_title, coupon_detail=coupon.coupon_detail, coupon_value=coupon.coupon_value, coupon_image=coupon.coupon_image, active_at=active_at, expire_at=expire_at, coupon_valid_period=coupon.coupon_valid_period, coupon_limit_model_ids=coupon.coupon_limit_model_ids, ) user.coupon_expire_at = expire_at user.save() close_old_connections()