No Description

cpon.py 4.5KB

    # -*- coding: utf-8 -*- import logging import time 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_LIST 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_LIST, 60) if v: close_old_connections() logger.info(v) brand_id = v.get('brand_id', '') user_id = v.get('user_id', '') coupon_id = v.get('coupon_id', '') try: user = UserInfo.objects.get(user_id=user_id) except UserInfo.DoesNotExist: continue if coupon_id: # 发放商城兑换券 try: coupon = CouponInfo.objects.get(coupon_id=coupon_id) except CouponInfo.DoesNotExist: continue 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=tc.utc_datetime(), expire_at=tc.utc_datetime(days=365), coupon_valid_period=coupon.coupon_valid_period, coupon_limit_model_ids=coupon.coupon_limit_model_ids, is_coupon_admin_writeoff=coupon.is_coupon_admin_writeoff, ) else: # 发放会员权益 rights = RightInfo.objects.filter(is_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_SILVER: coupon_id = right.coupon_level3_id coupon_num = right.coupon_level3_num elif user.level == UserInfo.MEMBER_SILVER: coupon_id = right.coupon_level4_id coupon_num = right.coupon_level4_num else: coupon_id = right.coupon_level5_id coupon_num = right.coupon_level5_num try: coupon = CouponInfo.objects.get(coupon_id=coupon_id) except CouponInfo.DoesNotExist: continue for _ in xrange(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=tc.utc_datetime(), expire_at=tc.utc_datetime(days=365), coupon_valid_period=coupon.coupon_valid_period, coupon_limit_model_ids=coupon.coupon_limit_model_ids, ) close_old_connections()