暂无描述

cpon.py 5.5KB

    # -*- coding: utf-8 -*- from TimeConvert import TimeConvert as tc from account.models import UserInfo from coupon.models import CouponInfo, UserCouponInfo from member.models import RightInfo def fix_user_coupon_info(): rights = RightInfo.objects.filter(is_send_coupon=True, status=True) coupons = { 'level1': {}, 'level2': {}, 'level3': {}, 'level4': {}, 'level5': {}, } for right in rights: if right.coupon_level1_id: if right.coupon_level1_id not in coupons['level1']: coupons['level1'][right.coupon_level1_id] = 0 coupons['level1'][right.coupon_level1_id] += right.coupon_level1_num if right.coupon_level1_id not in coupons['level2']: coupons['level2'][right.coupon_level1_id] = 0 coupons['level2'][right.coupon_level1_id] += right.coupon_level1_num if right.coupon_level1_id not in coupons['level3']: coupons['level3'][right.coupon_level1_id] = 0 coupons['level3'][right.coupon_level1_id] += right.coupon_level1_num if right.coupon_level1_id not in coupons['level4']: coupons['level4'][right.coupon_level1_id] = 0 coupons['level4'][right.coupon_level1_id] += right.coupon_level1_num if right.coupon_level1_id not in coupons['level5']: coupons['level5'][right.coupon_level1_id] = 0 coupons['level5'][right.coupon_level1_id] += right.coupon_level1_num if right.coupon_level2_id: if right.coupon_level2_id not in coupons['level2']: coupons['level2'][right.coupon_level2_id] = 0 coupons['level2'][right.coupon_level2_id] += right.coupon_level2_num if right.coupon_level2_id not in coupons['level3']: coupons['level3'][right.coupon_level2_id] = 0 coupons['level3'][right.coupon_level2_id] += right.coupon_level2_num if right.coupon_level2_id not in coupons['level4']: coupons['level4'][right.coupon_level2_id] = 0 coupons['level4'][right.coupon_level2_id] += right.coupon_level2_num if right.coupon_level2_id not in coupons['level5']: coupons['level5'][right.coupon_level2_id] = 0 coupons['level5'][right.coupon_level2_id] += right.coupon_level2_num if right.coupon_level3_id: if right.coupon_level3_id not in coupons['level3']: coupons['level3'][right.coupon_level3_id] = 0 coupons['level3'][right.coupon_level3_id] += right.coupon_level3_num if right.coupon_level3_id not in coupons['level4']: coupons['level4'][right.coupon_level3_id] = 0 coupons['level4'][right.coupon_level3_id] += right.coupon_level3_num if right.coupon_level3_id not in coupons['level5']: coupons['level5'][right.coupon_level3_id] = 0 coupons['level5'][right.coupon_level3_id] += right.coupon_level3_num if right.coupon_level4_id: if right.coupon_level4_id not in coupons['level4']: coupons['level4'][right.coupon_level4_id] = 0 coupons['level4'][right.coupon_level4_id] += right.coupon_level4_num if right.coupon_level4_id not in coupons['level5']: coupons['level5'][right.coupon_level4_id] = 0 coupons['level5'][right.coupon_level4_id] += right.coupon_level4_num if right.coupon_level5_id: if right.coupon_level5_id not in coupons['level5']: coupons['level5'][right.coupon_level5_id] = 0 coupons['level5'][right.coupon_level5_id] += right.coupon_level5_num users = UserInfo.objects.filter(level__gte=1, status=True) for user in users: level_coupon = coupons.get('level{}'.format(user.level)) for coupon_id, coupon_num in level_coupon.items(): real_coupon_num = UserCouponInfo.objects.filter(user_id=user.user_id, coupon_id=coupon_id, status=True).count() if real_coupon_num == coupon_num: continue print(user.user_id, coupon_id, coupon_num - real_coupon_num) if real_coupon_num > coupon_num: pass # for _ in range(real_coupon_num - coupon_num): # user_coupons = UserCouponInfo.objects.filter(user_id=user.user_id, coupon_id=coupon_id, status=True).order_by('-pk') # user_coupon = user_coupons[0] # user_coupon.status = False # user_coupon.save() else: try: coupon = CouponInfo.objects.get(coupon_id=coupon_id) except CouponInfo.DoesNotExist: continue for _ in range(coupon_num - real_coupon_num): UserCouponInfo.objects.create( brand_id=coupon.brand_id, brand_name=coupon.brand_name, coupon_id=coupon_id, user_id=user.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, )