:art: Conpon2

huangqimin001 3 年之前
父節點
當前提交
9b0bdc3f08

+ 8 - 2
commands/management/commands/cpon.py

@@ -73,6 +73,9 @@ class Command(CompatibilityBaseCommand):
73 73
 
74 74
             else:
75 75
                 # 发放会员权益
76
+                active_at = tc.utc_datetime()
77
+                expire_at = tc.utc_datetime(days=365)
78
+
76 79
                 rights = RightInfo.objects.filter(is_send_coupon=True, status=True)
77 80
                 for right in rights:
78 81
                     if user.level == UserInfo.MEMBER_LRC:
@@ -109,10 +112,13 @@ class Command(CompatibilityBaseCommand):
109 112
                             coupon_detail=coupon.coupon_detail,
110 113
                             coupon_value=coupon.coupon_value,
111 114
                             coupon_image=coupon.coupon_image,
112
-                            active_at=tc.utc_datetime(),
113
-                            expire_at=tc.utc_datetime(days=365),
115
+                            active_at=active_at,
116
+                            expire_at=expire_at,
114 117
                             coupon_valid_period=coupon.coupon_valid_period,
115 118
                             coupon_limit_model_ids=coupon.coupon_limit_model_ids,
116 119
                         )
117 120
 
121
+                user.coupon_expire_at = expire_at
122
+                user.save()
123
+
118 124
             close_old_connections()

+ 95 - 0
commands/management/commands/cpon2.py

@@ -0,0 +1,95 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+import logging
4
+
5
+from django_six import CompatibilityBaseCommand, close_old_connections
6
+from TimeConvert import TimeConvert as tc
7
+
8
+from account.models import UserInfo
9
+from coupon.models import CouponInfo, UserCouponInfo
10
+from member.models import RightInfo
11
+from utils.redis.connect import r
12
+from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST2
13
+
14
+
15
+logger = logging.getLogger('console')
16
+
17
+
18
+class Command(CompatibilityBaseCommand):
19
+    def handle(self, *args, **options):
20
+
21
+        logger.info('Member coupon is dealing')
22
+
23
+        while True:
24
+            # r.rpushjson('TEMPLET_CMD_KEY', {
25
+            #     'brand_id': 'brand_id',
26
+            #     'user_id': 'user_id',
27
+            # })
28
+            k, v = r.blpopjson(MEMBER_SEND_COUPON_LIST2, 60)
29
+
30
+            if not v:
31
+                continue
32
+
33
+            close_old_connections()
34
+
35
+            logger.info(v)
36
+
37
+            brand_id = v.get('brand_id', '')
38
+            user_id = v.get('user_id', '')
39
+
40
+            try:
41
+                user = UserInfo.objects.get(user_id=user_id)
42
+            except UserInfo.DoesNotExist:
43
+                continue
44
+
45
+            active_at = user.coupon_expire_at
46
+            expire_at = tc.utc_datetime(user.coupon_expire_at, days=365)
47
+
48
+            # 发放会员权益
49
+            rights = RightInfo.objects.filter(is_send_coupon=True, is_continue_send_coupon=True, status=True)
50
+            for right in rights:
51
+                if user.level == UserInfo.MEMBER_LRC:
52
+                    coupon_id = right.coupon_level1_id
53
+                    coupon_num = right.coupon_level1_num
54
+                elif user.level == UserInfo.MEMBER_SILVER:
55
+                    coupon_id = right.coupon_level2_id
56
+                    coupon_num = right.coupon_level2_num
57
+                elif user.level == UserInfo.MEMBER_GOLD:
58
+                    coupon_id = right.coupon_level3_id
59
+                    coupon_num = right.coupon_level3_num
60
+                elif user.level == UserInfo.MEMBER_WHITE_GOLD:
61
+                    coupon_id = right.coupon_level4_id
62
+                    coupon_num = right.coupon_level4_num
63
+                elif user.level == UserInfo.MEMBER_BLACK_GOLD:
64
+                    coupon_id = right.coupon_level5_id
65
+                    coupon_num = right.coupon_level5_num
66
+
67
+                if not coupon_id:
68
+                    continue
69
+
70
+                try:
71
+                    coupon = CouponInfo.objects.get(coupon_id=coupon_id)
72
+                except CouponInfo.DoesNotExist:
73
+                    continue
74
+
75
+                for _ in range(right.coupon_num or coupon_num):
76
+                    # UserCouponInfo.objects.create(
77
+                    #     brand_id=coupon.brand_id,
78
+                    #     brand_name=coupon.brand_name,
79
+                    #     coupon_id=coupon_id,
80
+                    #     user_id=user_id,
81
+                    #     coupon_title=coupon.coupon_title,
82
+                    #     coupon_detail=coupon.coupon_detail,
83
+                    #     coupon_value=coupon.coupon_value,
84
+                    #     coupon_image=coupon.coupon_image,
85
+                    #     active_at=active_at,
86
+                    #     expire_at=expire_at,
87
+                    #     coupon_valid_period=coupon.coupon_valid_period,
88
+                    #     coupon_limit_model_ids=coupon.coupon_limit_model_ids,
89
+                    # )
90
+                    print(user_id, coupon_id, user.coupon_expire_at, tc.utc_datetime(user.coupon_expire_at, days=365))
91
+
92
+            user.coupon_expire_at = expire_at
93
+            user.save()
94
+
95
+            close_old_connections()

+ 18 - 0
commands/management/commands/everyday_continue_send_user_coupon.py

@@ -0,0 +1,18 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+import logging
4
+
5
+from django_six import CompatibilityBaseCommand
6
+
7
+from account.models import UserInfo
8
+from coupon.models import CouponInfo, UserCouponInfo
9
+from member.models import RightInfo
10
+from TimeConvert import TimeConvert as tc
11
+
12
+
13
+logger = logging.getLogger('console')
14
+
15
+
16
+class Command(CompatibilityBaseCommand):
17
+    def handle(self, *args, **options):
18
+        users = UserInfo.objects.filter(coupon_expire_at__lte=tc.utc_datetime(), status=True)

+ 1 - 0
utils/redis/rkeys.py

@@ -19,6 +19,7 @@ SUBSCRIBE_USERINFO_LIST = 'subscribe:userinfo:%s'
19 19
 
20 20
 MEMBER_SHOT_DATA = 'kodo:member:shot:data'
21 21
 MEMBER_SEND_COUPON_LIST = 'kodo:member:send:coupon:list'
22
+MEMBER_SEND_COUPON_LIST2 = 'kodo:member:send:coupon:list2'
22 23
 MEMBER_UPGRADE_INFO = 'kodo:member:upgrade:info:%s:%s'  # brand_id, user_id
23 24
 
24 25
 # 七牛