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