m-old"> 45 50
 
46 51
 class MemberActivityInfoAdmin(admin.ModelAdmin):
@@ -60,15 +65,11 @@ class MemberActivitySigninInfoAdmin(admin.ModelAdmin):
60 65
     list_display = ('signin_id', 'user_id', 'activity_id', 'title', 'status', 'created_at', 'updated_at')
61 66
 
62 67
 
63
-class MemberCouponInfoAdmin(admin.ModelAdmin):
64
-    list_display = ('coupon_id', 'user_id', 'coupon_type', 'coupon_start_at', 'coupon_expire_at', 'coupon_value', 'has_used', 'admin_id', 'used_at', 'status', 'created_at', 'updated_at')
65
-
66
-
67 68
 admin.site.register(GoodsInfo, GoodsInfoAdmin)
68 69
 admin.site.register(GoodsOrderInfo, GoodsOrderInfoAdmin)
69 70
 admin.site.register(RightInfo, RightInfoAdmin)
71
+admin.site.register(CouponInfo, CouponInfoAdmin)
70 72
 admin.site.register(ShotTypeInfo, ShotTypeInfoAdmin)
71 73
 admin.site.register(MemberActivityInfo, MemberActivityInfoAdmin)
72 74
 admin.site.register(MemberActivitySignupInfo, MemberActivitySignupInfoAdmin)
73 75
 admin.site.register(MemberActivitySigninInfo, MemberActivitySigninInfoAdmin)
74
-admin.site.register(MemberCouponInfo, MemberCouponInfoAdmin)

+ 76 - 0
member/migrations/0008_auto_20191212_1742.py

@@ -0,0 +1,76 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.26 on 2019-12-12 09:42
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+import simditor.fields
7
+
8
+
9
+class Migration(migrations.Migration):
10
+
11
+    dependencies = [
12
+        ('member', '0007_auto_20191212_0952'),
13
+    ]
14
+
15
+    operations = [
16
+        migrations.AddField(
17
+            model_name='couponinfo',
18
+            name='coupon_amount',
19
+            field=models.IntegerField(blank=True, default=0, help_text='\u5238\u91d1\u989d\uff08\u5355\u4f4d\uff1a\u5206\uff09', null=True, verbose_name='coupon_amount'),
20
+        ),
21
+        migrations.AddField(
22
+            model_name='couponinfo',
23
+            name='coupon_detail',
24
+            field=simditor.fields.RichTextField(blank=True, help_text='\u5238\u8be6\u60c5', null=True, verbose_name='coupon_detail'),
25
+        ),
26
+        migrations.AddField(
27
+            model_name='couponinfo',
28
+            name='coupon_valid_period',
29
+            field=models.IntegerField(default=0, help_text='\u5238\u6709\u6548\u65f6\u95f4\uff08\u5355\u4f4d\uff1a\u5929\uff09', verbose_name='coupon_valid_period'),
30
+        ),
31
+        migrations.AddField(
32
+            model_name='rightinfo',
33
+            name='coupon_detail',
34
+            field=simditor.fields.RichTextField(blank=True, help_text='\u5238\u8be6\u60c5', null=True, verbose_name='coupon_detail'),
35
+        ),
36
+        migrations.AddField(
37
+            model_name='rightinfo',
38
+            name='coupon_level1_amount',
39
+            field=models.IntegerField(blank=True, default=0, help_text='\u91d1\u989d\uff08\u5355\u4f4d\uff1a\u5206\uff09', null=True, verbose_name='coupon_level1_amount'),
40
+        ),
41
+        migrations.AddField(
42
+            model_name='rightinfo',
43
+            name='coupon_level2_amount',
44
+            field=models.IntegerField(blank=True, default=0, help_text='\u91d1\u989d\uff08\u5355\u4f4d\uff1a\u5206\uff09', null=True, verbose_name='coupon_level2_amount'),
45
+        ),
46
+        migrations.AddField(
47
+            model_name='rightinfo',
48
+            name='coupon_level3_amount',
49
+            field=models.IntegerField(blank=True, default=0, help_text='\u91d1\u989d\uff08\u5355\u4f4d\uff1a\u5206\uff09', null=True, verbose_name='coupon_level3_amount'),
50
+        ),
51
+        migrations.AddField(
52
+            model_name='rightinfo',
53
+            name='coupon_level4_amount',
54
+            field=models.IntegerField(blank=True, default=0, help_text='\u91d1\u989d\uff08\u5355\u4f4d\uff1a\u5206\uff09', null=True, verbose_name='coupon_level4_amount'),
55
+        ),
56
+        migrations.AddField(
57
+            model_name='rightinfo',
58
+            name='coupon_level5_amount',
59
+            field=models.IntegerField(blank=True, default=0, help_text='\u91d1\u989d\uff08\u5355\u4f4d\uff1a\u5206\uff09', null=True, verbose_name='coupon_level5_amount'),
60
+        ),
61
+        migrations.AddField(
62
+            model_name='rightinfo',
63
+            name='coupon_num',
64
+            field=models.IntegerField(default=0, help_text='\u5238\u6bcf\u4f1a\u5458\u7ea7\u522b\u53d1\u653e\u5f20\u6570', verbose_name='coupon_num'),
65
+        ),
66
+        migrations.AddField(
67
+            model_name='rightinfo',
68
+            name='coupon_valid_period',
69
+            field=models.IntegerField(default=0, help_text='\u5238\u6709\u6548\u65f6\u95f4\uff08\u5355\u4f4d\uff1a\u5929\uff09', verbose_name='coupon_valid_period'),
70
+        ),
71
+        migrations.AddField(
72
+            model_name='rightinfo',
73
+            name='is_send_coupon',
74
+            field=models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u53d1\u5238', verbose_name='is_send_coupon'),
75
+        ),
76
+    ]

+ 43 - 0
member/migrations/0009_auto_20191212_1749.py

@@ -0,0 +1,43 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.26 on 2019-12-12 09:49
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('member', '0008_auto_20191212_1742'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.RemoveField(
16
+            model_name='couponinfo',
17
+            name='level1',
18
+        ),
19
+        migrations.RemoveField(
20
+            model_name='couponinfo',
21
+            name='level2',
22
+        ),
23
+        migrations.RemoveField(
24
+            model_name='couponinfo',
25
+            name='level3',
26
+        ),
27
+        migrations.RemoveField(
28
+            model_name='couponinfo',
29
+            name='level4',
30
+        ),
31
+        migrations.RemoveField(
32
+            model_name='couponinfo',
33
+            name='level5',
34
+        ),
35
+        migrations.RemoveField(
36
+            model_name='couponinfo',
37
+            name='minlevel',
38
+        ),
39
+        migrations.RemoveField(
40
+            model_name='couponinfo',
41
+            name='position',
42
+        ),
43
+    ]

+ 105 - 0
member/migrations/0010_auto_20191212_1821.py

@@ -0,0 +1,105 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.26 on 2019-12-12 10:21
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('member', '0009_auto_20191212_1749'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='couponinfo',
17
+            name='brand_id',
18
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
19
+        ),
20
+        migrations.AddField(
21
+            model_name='couponinfo',
22
+            name='brand_name',
23
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
24
+        ),
25
+        migrations.AddField(
26
+            model_name='goodsinfo',
27
+            name='brand_id',
28
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
29
+        ),
30
+        migrations.AddField(
31
+            model_name='goodsinfo',
32
+            name='brand_name',
33
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
34
+        ),
35
+        migrations.AddField(
36
+            model_name='goodsorderinfo',
37
+            name='brand_id',
38
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
39
+        ),
40
+        migrations.AddField(
41
+            model_name='goodsorderinfo',
42
+            name='brand_name',
43
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
44
+        ),
45
+        migrations.AddField(
46
+            model_name='memberactivityinfo',
47
+            name='brand_id',
48
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
49
+        ),
50
+        migrations.AddField(
51
+            model_name='memberactivityinfo',
52
+            name='brand_name',
53
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
54
+        ),
55
+        migrations.AddField(
56
+            model_name='memberactivitysignininfo',
57
+            name='brand_id',
58
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
59
+        ),
60
+        migrations.AddField(
61
+            model_name='memberactivitysignininfo',
62
+            name='brand_name',
63
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
64
+        ),
65
+        migrations.AddField(
66
+            model_name='memberactivitysignupinfo',
67
+            name='brand_id',
68
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
69
+        ),
70
+        migrations.AddField(
71
+            model_name='memberactivitysignupinfo',
72
+            name='brand_name',
73
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
74
+        ),
75
+        migrations.AddField(
76
+            model_name='membercouponinfo',
77
+            name='brand_id',
78
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
79
+        ),
80
+        migrations.AddField(
81
+            model_name='membercouponinfo',
82
+            name='brand_name',
83
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
84
+        ),
85
+        migrations.AddField(
86
+            model_name='rightinfo',
87
+            name='brand_id',
88
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
89
+        ),
90
+        migrations.AddField(
91
+            model_name='rightinfo',
92
+            name='brand_name',
93
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
94
+        ),
95
+        migrations.AddField(
96
+            model_name='shottypeinfo',
97
+            name='brand_id',
98
+            field=models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id'),
99
+        ),
100
+        migrations.AddField(
101
+            model_name='shottypeinfo',
102
+            name='brand_name',
103
+            field=models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name'),
104
+        ),
105
+    ]

+ 30 - 0
member/migrations/0011_auto_20191212_1827.py

@@ -0,0 +1,30 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.26 on 2019-12-12 10:27
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('member', '0010_auto_20191212_1821'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='couponinfo',
17
+            name='admin_id',
18
+            field=models.CharField(blank=True, db_index=True, help_text='\u6838\u9500\u5458\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='admin_id'),
19
+        ),
20
+        migrations.AddField(
21
+            model_name='couponinfo',
22
+            name='has_used',
23
+            field=models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u5df2\u6838\u9500', verbose_name='has_used'),
24
+        ),
25
+        migrations.AddField(
26
+            model_name='couponinfo',
27
+            name='used_at',
28
+            field=models.DateTimeField(blank=True, help_text='\u7ef4\u4fee\u5238\u6838\u9500\u65f6\u95f4', null=True, verbose_name='used_at'),
29
+        ),
30
+    ]

+ 52 - 19
member/models.py

@@ -19,6 +19,9 @@ class GoodsInfo(BaseModelMixin):
19 19
         (VIRTUAL, u'虚拟'),
20 20
     )
21 21
 
22
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
23
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
24
+
22 25
     good_id = ShortUUIDField(_(u'good_id'), max_length=32, blank=True, null=True, help_text=u'商品唯一标识', db_index=True, unique=True)
23 26
     good_type = models.IntegerField(_(u'good_type'), choices=GOOD_TYPE_TUPLE, default=VIRTUAL, help_text=u'商品类型', db_index=True)
24 27
 
@@ -85,6 +88,9 @@ class GoodsOrderInfo(BaseModelMixin):
85 88
         (VIRTUAL, u'虚拟'),
86 89
     )
87 90
 
91
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
92
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
93
+
88 94
     order_id = ShortUUIDField(_(u'order_id'), max_length=32, blank=True, null=True, help_text=u'订单唯一标识', db_index=True, unique=True)
89 95
 
90 96
     user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
@@ -121,6 +127,9 @@ class RightInfo(BaseModelMixin):
121 127
         (COUPON, u'优惠券'),
122 128
     )
123 129
 
130
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
131
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
132
+
124 133
     right_id = ShortUUIDField(_(u'right_id'), max_length=32, blank=True, null=True, help_text=u'权益唯一标识', db_index=True, unique=True)
125 134
     right_type = models.IntegerField(_(u'right_type'), choices=RIGHT_TYPE_TUPLE, default=VIRTUAL, help_text=u'权益类型', db_index=True)
126 135
 
@@ -139,6 +148,17 @@ class RightInfo(BaseModelMixin):
139 148
 
140 149
     position = models.IntegerField(_(u'position'), default=1, help_text=u'排序', db_index=True)
141 150
 
151
+    # 券相关
152
+    is_send_coupon = models.BooleanField(_(u'is_send_coupon'), default=False, help_text=_(u'是否发券'), db_index=True)
153
+    coupon_valid_period = models.IntegerField(_(u'coupon_valid_period'), default=0, help_text=_(u'券有效时间(单位:天)'))
154
+    coupon_num = models.IntegerField(_(u'coupon_num'), default=0, help_text=_(u'券每会员级别发放张数'))
155
+    coupon_level1_amount = models.IntegerField(_(u'coupon_level1_amount'), default=0, blank=True, null=True, help_text=u'金额(单位:分)')
156
+    coupon_level2_amount = models.IntegerField(_(u'coupon_level2_amount'), default=0, blank=True, null=True, help_text=u'金额(单位:分)')
157
+    coupon_level3_amount = models.IntegerField(_(u'coupon_level3_amount'), default=0, blank=True, null=True, help_text=u'金额(单位:分)')
158
+    coupon_level4_amount = models.IntegerField(_(u'coupon_level4_amount'), default=0, blank=True, null=True, help_text=u'金额(单位:分)')
159
+    coupon_level5_amount = models.IntegerField(_(u'coupon_level5_amount'), default=0, blank=True, null=True, help_text=u'金额(单位:分)')
160
+    coupon_detail = RichTextField(_(u'coupon_detail'), blank=True, null=True, help_text=u'券详情')
161
+
142 162
     class Meta:
143 163
         verbose_name = _(u'会员权益信息')
144 164
         verbose_name_plural = _(u'会员权益信息')
@@ -186,9 +206,16 @@ class CouponInfo(BaseModelMixin):
186 206
         (COUPON, u'优惠券'),
187 207
     )
188 208
 
209
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
210
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
211
+
189 212
     coupon_id = ShortUUIDField(_(u'coupon_id'), max_length=32, blank=True, null=True, help_text=u'券唯一标识', db_index=True, unique=True)
190 213
     user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
191 214
 
215
+    coupon_valid_period = models.IntegerField(_(u'coupon_valid_period'), default=0, help_text=_(u'券有效时间(单位:天)'))
216
+    coupon_amount = models.IntegerField(_(u'coupon_amount'), default=0, blank=True, null=True, help_text=u'券金额(单位:分)')
217
+    coupon_detail = RichTextField(_(u'coupon_detail'), blank=True, null=True, help_text=u'券详情')
218
+
192 219
     active_at = models.DateTimeField(_(u'active_at'), blank=True, null=True, help_text=_(u'生效时间'))
193 220
     expire_at = models.DateTimeField(_(u'expire_at'), blank=True, null=True, help_text=_(u'过期时间'))
194 221
 
@@ -200,15 +227,9 @@ class CouponInfo(BaseModelMixin):
200 227
     subtitle = models.CharField(_(u'subtitle'), max_length=255, blank=True, null=True, help_text=u'权益二级名称')
201 228
     detail = RichTextField(_(u'detail'), blank=True, null=True, help_text=u'权益详情')
202 229
 
203
-    level1 = models.CharField(_(u'level1'), max_length=255, blank=True, null=True, help_text=u'level1')
204
-    level2 = models.CharField(_(u'level2'), max_length=255, blank=True, null=True, help_text=u'level2')
205
-    level3 = models.CharField(_(u'level3'), max_length=255, blank=True, null=True, help_text=u'level3')
206
-    level4 = models.CharField(_(u'level4'), max_length=255, blank=True, null=True, help_text=u'level4')
207
-    level5 = models.CharField(_(u'level5'), max_length=255, blank=True, null=True, help_text=u'level5')
208
-
209
-    minlevel = models.IntegerField(_(u'minlevel'), default=0, help_text=u'权益最低会员级别')
210
-
211
-    position = models.IntegerField(_(u'position'), default=1, help_text=u'排序', db_index=True)
230
+    has_used = models.BooleanField(_(u'has_used'), default=False, help_text=u'是否已核销', db_index=True)
231
+    admin_id = models.CharField(_(u'admin_id'), max_length=32, blank=True, null=True, help_text=u'核销员唯一标识', db_index=True)
232
+    used_at = models.DateTimeField(_(u'used_at'), blank=True, null=True, help_text=u'维修券核销时间')
212 233
 
213 234
     class Meta:
214 235
         verbose_name = _(u'会员券信息')
@@ -229,6 +250,9 @@ class CouponInfo(BaseModelMixin):
229 250
     def data(self):
230 251
         return {
231 252
             'coupon_id': self.coupon_id,
253
+            'coupon_valid_period': self.coupon_valid_period,
254
+            'coupon_amount': self.coupon_amount,
255
+            'coupon_detail': self.coupon_detail,
232 256
             'active_at': tc.local_string(self.active_at, format='%Y%m%d'),
233 257
             'expire_at': tc.local_string(self.expire_at, format='%Y%m%d'),
234 258
             'right_id': self.right_id,
@@ -237,19 +261,16 @@ class CouponInfo(BaseModelMixin):
237 261
             'title': self.title,
238 262
             'subtitle': self.subtitle,
239 263
             'detail': self.detail,
240
-            'level1': self.level1,
241
-            'level2': self.level2,
242
-            'level3': self.level3,
243
-            'level4': self.level4,
244
-            'level5': self.level5,
245
-            'minlevel': self.minlevel,
246
-            'able': True,
247
-            'left_num': 3,
248
-            'left_tip': 3,
264
+            'has_used': self.has_used,
265
+            'admin_id': self.admin_id,
266
+            'used_at': self.used_at,
249 267
         }
250 268
 
251 269
 
252 270
 class ShotTypeInfo(BaseModelMixin):
271
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
272
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
273
+
253 274
     shot_type_id = ShortUUIDField(_(u'shot_type_id'), max_length=32, blank=True, null=True, help_text=u'镜头类型唯一标识', db_index=True, unique=True)
254 275
     shot_type_name = models.CharField(_(u'shot_type_name'), max_length=255, blank=True, null=True, help_text=u'镜头类型名称')
255 276
 
@@ -265,7 +286,7 @@ class ShotTypeInfo(BaseModelMixin):
265 286
     @property
266 287
     def shots(self):
267 288
         models = ModelInfo.objects.filter(shot_type_id=self.shot_type_id, status=True)
268
-        return [model.shot_member_data for model in models]
289
+        return [model.member_shot_data for model in models]
269 290
 
270 291
     @property
271 292
     def data(self):
@@ -277,6 +298,9 @@ class ShotTypeInfo(BaseModelMixin):
277 298
 
278 299
 
279 300
 class MemberActivityInfo(BaseModelMixin):
301
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
302
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
303
+
280 304
     activity_id = ShortUUIDField(_(u'activity_id'), max_length=32, blank=True, null=True, help_text=u'活动唯一标识', db_index=True, unique=True)
281 305
 
282 306
     title = models.CharField(_(u'title'), max_length=255, blank=True, null=True, help_text=u'活动名称')
@@ -371,6 +395,9 @@ class MemberActivityInfo(BaseModelMixin):
371 395
 
372 396
 
373 397
 class MemberActivitySignupInfo(BaseModelMixin):
398
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
399
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
400
+
374 401
     signup_id = ShortUUIDField(_(u'signup_id'), max_length=32, blank=True, null=True, help_text=u'活动报名唯一标识', db_index=True, unique=True)
375 402
 
376 403
     user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
@@ -395,6 +422,9 @@ class MemberActivitySignupInfo(BaseModelMixin):
395 422
 
396 423
 
397 424
 class MemberActivitySigninInfo(BaseModelMixin):
425
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
426
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
427
+
398 428
     signin_id = ShortUUIDField(_(u'signin_id'), max_length=32, blank=True, null=True, help_text=u'活动签到唯一标识', db_index=True, unique=True)
399 429
 
400 430
     user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
@@ -430,6 +460,9 @@ class MemberCouponInfo(BaseModelMixin):
430 460
         (MAINTENANCE_MANPOWER, u'维修人工')
431 461
     )
432 462
 
463
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
464
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
465
+
433 466
     coupon_id = ShortUUIDField(_(u'coupon_id'), max_length=32, blank=True, null=True, help_text=u'券唯一标识', db_index=True, unique=True)
434 467
 
435 468
     user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)

+ 2 - 1
utils/redis/rkeys.py

@@ -74,4 +74,5 @@ SCREEN_ADMIN_LOGIN = 'tamron:screen:admin:login:%s:%s'  # brand_id, token
74 74
 
75 75
 SUBSCRIBE_USERINFO_LIST = 'subscribe:userinfo:%s'
76 76
 
77
-SHOT_MEMBER_DATA = 'shot:member:data'
77
+MEMBER_SHOT_DATA = 'kodo:member:shot:data'
78
+MEMBER_SEND_COUPON_LIST = 'kodo:member:send:coupon:list'

+ 5 - 5
utils/redis/rshot.py

@@ -1,16 +1,16 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3 3
 from utils.redis.connect import r
4
-from utils.redis.rkeys import SHOT_MEMBER_DATA
4
+from utils.redis.rkeys import MEMBER_SHOT_DATA
5 5
 
6 6
 
7
-def update_shot_member_data():
7
+def update_member_shot_data():
8 8
     from member.models import ShotTypeInfo
9 9
     shots_types = ShotTypeInfo.objects.filter(status=True).order_by('position')
10 10
     shots_types = [st.data for st in shots_types]
11
-    r.setjson(SHOT_MEMBER_DATA, shots_types)
11
+    r.setjson(MEMBER_SHOT_DATA, shots_types)
12 12
     return shots_types
13 13
 
14 14
 
15
-def get_shot_member_data():
16
-    return r.getjson(SHOT_MEMBER_DATA) or update_shot_member_data()
15
+def get_member_shot_data():
16
+    return r.getjson(MEMBER_SHOT_DATA) or update_member_shot_data()

pai2 - Gogs: Go Git Service

拍爱

Brightcells: 3cad0a866a Update package django_xxx 7 gadi atpakaļ
..
0001_initial.py aa31a5f59a Add kodo 8 gadi atpakaļ
0002_auto_20180104_0414.py 3cad0a866a Update package django_xxx 7 gadi atpakaļ
0003_auto_20180104_0428.py 9ec76d526a TextField => CharField 8 gadi atpakaļ
0004_latestappinfo.py 3cad0a866a Update package django_xxx 7 gadi atpakaļ
0005_auto_20180115_0021.py 49634dc097 Add api operator login 8 gadi atpakaļ
0006_auto_20180115_0047.py 49634dc097 Add api operator login 8 gadi atpakaļ
0007_consumeinfosubmitloginfo.py 1b1f0192f8 ConsumeInfoSubmitLogInfo 8 gadi atpakaļ
0008_auto_20180129_0422.py a77c4993f8 FloatField 8 gadi atpakaļ
0009_auto_20180129_0426.py e04f95dc5e long => lon 8 gadi atpakaļ
__init__.py aa31a5f59a Add kodo 8 gadi atpakaļ