Add field test_user

Brightcells 7 lat temu
rodzic
commit
e47aa7f8c4

+ 19 - 7
account/admin.py

@@ -4,30 +4,42 @@ from django.contrib import admin
4 4
 from django_admin import ChangeOnlyModelAdmin, ReadOnlyModelAdmin
5 5
 
6 6
 from account.models import FranchiserInfo, SaleclerkInfo, UserInfo
7
+from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo
8
+from mch.models import ConsumeInfoSubmitLogInfo
7 9
 
8 10
 
9 11
 class UserInfoAdmin(ChangeOnlyModelAdmin, admin.ModelAdmin):
10
-    list_display = ('user_id', 'user_from', 'username', 'openid', 'unionid', 'name', 'sex', 'nickname', 'phone', 'location', 'islensman', 'istourguide', 'balance', 'user_status', 'outtake_status', 'status', 'created_at', 'updated_at')
11
-    list_filter = ('user_from', 'sex', 'islensman', 'istourguide', 'user_status', 'outtake_status', 'status')
12
+    list_display = ('user_id', 'username', 'openid', 'unionid', 'name', 'sex', 'nickname', 'phone', 'location', 'balance', 'user_status', 'status', 'created_at', 'updated_at')
13
+    list_filter = ('test_user', 'sex', 'user_status', 'status')
12 14
     readonly_fields = ('user_id', )
13 15
     search_fields = ('user_id', 'name', 'phone', 'location')
14 16
 
17
+    def save_model(self, request, obj, form, change):
18
+        obj.save()
19
+        if obj.test_user:
20
+            ConsumeInfoSubmitLogInfo.objects.filter(user_id=obj.user_id).update(test_user=True)
21
+
15 22
 
16 23
 class FranchiserInfoAdmin(admin.ModelAdmin):
17
-    readonly_fields = ('franchiser_id', )
18 24
     list_display = ('franchiser_id', 'franchiser_name', 'franchiser_addr', 'franchiser_phone', 'franchiser_boss_name', 'franchiser_boss_phone', 'status', 'created_at', 'updated_at')
19
-    search_fields = ('franchiser_id', 'franchiser_name', 'franchiser_addr', 'franchiser_phone', 'franchiser_boss_name', 'franchiser_boss_phone')
20 25
     list_filter = ('status', )
26
+    readonly_fields = ('franchiser_id',)
27
+    search_fields = ('franchiser_id', 'franchiser_name', 'franchiser_addr', 'franchiser_phone', 'franchiser_boss_name', 'franchiser_boss_phone')
21 28
 
22 29
 
23 30
 class SaleclerkInfoAdmin(admin.ModelAdmin):
24
-    readonly_fields = ('franchiser_id', )
25 31
     list_display = ('franchiser_id', 'clerk_id', 'clerk_name', 'clerk_sex', 'clerk_phone', 'user_status', 'status', 'created_at', 'updated_at')
32
+    list_filter = ('test_user', 'user_status', 'status')
33
+    readonly_fields = ('franchiser_id', )
26 34
     search_fields = ('franchiser_id', 'clerk_id', 'clerk_name', 'clerk_phone')
27
-    list_filter = ('user_status', 'status')
28 35
 
36
+    def save_model(self, request, obj, form, change):
37
+        obj.save()
38
+        if obj.test_user:
39
+            SaleclerkIntegralIncomeExpensesInfo.objects.filter(franchiser_id=obj.franchiser_id).update(test_user=True)
40
+            SaleclerkSubmitLogInfo.objects.filter(franchiser_id=obj.franchiser_id).update(test_user=True)
29 41
 
30
-admin.site.register(UserInfo, UserInfoAdmin)
31 42
 
43
+admin.site.register(UserInfo, UserInfoAdmin)
32 44
 admin.site.register(FranchiserInfo, FranchiserInfoAdmin)
33 45
 admin.site.register(SaleclerkInfo, SaleclerkInfoAdmin)

+ 25 - 0
account/migrations/0031_auto_20180417_1031.py

@@ -0,0 +1,25 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.11 on 2018-04-17 02:31
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
+        ('account', '0030_userinfo_membercardid'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='saleclerkinfo',
17
+            name='test_user',
18
+            field=models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u4e3a\u6d4b\u8bd5\u7528\u6237', verbose_name='test_user'),
19
+        ),
20
+        migrations.AddField(
21
+            model_name='userinfo',
22
+            name='test_user',
23
+            field=models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u4e3a\u6d4b\u8bd5\u7528\u6237', verbose_name='test_user'),
24
+        ),
25
+    ]

+ 4 - 0
account/models.py

@@ -337,6 +337,8 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):
337 337
     has_membercard = models.BooleanField(_(u'has_membercard'), default=False, help_text=_(u'是否激活会员卡'), db_index=True)
338 338
     membercardid = models.CharField(_(u'membercardid'), max_length=32, blank=True, null=True, help_text=_(u'会员卡编号'))
339 339
 
340
+    test_user = models.BooleanField(_(u'test_user'), default=False, help_text=_(u'是否为测试用户'), db_index=True)
341
+
340 342
     class Meta:
341 343
         verbose_name = _(u'userinfo')
342 344
         verbose_name_plural = _(u'userinfo')
@@ -485,6 +487,8 @@ class SaleclerkInfo(BaseModelMixin, SexModelMixin):
485 487
     user_status = models.IntegerField(_(u'user_status'), choices=USER_STATUS, default=UNVERIFIED, help_text=u'用户状态', db_index=True)
486 488
     refused_reason = models.TextField(_(u'refused_reason'), blank=True, null=True, help_text=u'审核拒绝原因')
487 489
 
490
+    test_user = models.BooleanField(_(u'test_user'), default=False, help_text=_(u'是否为测试用户'), db_index=True)
491
+
488 492
     class Meta:
489 493
         verbose_name = _(u'saleclerkinfo')
490 494
         verbose_name_plural = _(u'saleclerkinfo')

+ 10 - 2
api/mch_views.py

@@ -11,7 +11,7 @@ from pywe_storage import RedisStorage
11 11
 
12 12
 from account.models import UserInfo
13 13
 from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelInfo, OperatorInfo
14
-from utils.error.errno_utils import OperatorStatusCode
14
+from utils.error.errno_utils import OperatorStatusCode, UserStatusCode
15 15
 from utils.redis.connect import r
16 16
 
17 17
 
@@ -159,8 +159,15 @@ def consumer_info_api(request):
159 159
 
160 160
     purePhoneNumber = purePhoneNumber or getPhoneNumber(request)
161 161
 
162
+    # 校验用户是否存在
163
+    try:
164
+        user = UserInfo.objects.get(user_id=user_id)
165
+    except UserInfo.DoesNotExist:
166
+        return response(UserStatusCode.USER_NOT_FOUND)
167
+
162 168
     # 更新用户手机号
163
-    UserInfo.objects.filter(user_id=user_id).update(phone=purePhoneNumber)
169
+    user.phone = purePhoneNumber
170
+    user.save()
164 171
 
165 172
     # 记录用户信息提交记录
166 173
     ConsumeInfoSubmitLogInfo.objects.create(
@@ -172,6 +179,7 @@ def consumer_info_api(request):
172 179
         lon=lon,
173 180
         serialNo=serialNo,
174 181
         verifyResult=verifyResult,
182
+        test_user=user.test_user,
175 183
     )
176 184
 
177 185
     return response(200, 'Submit Consumer Info Success', u'提交消费者信息成功')

+ 2 - 2
integral/admin.py

@@ -8,14 +8,14 @@ from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmit
8 8
 
9 9
 class SaleclerkIntegralIncomeExpensesInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
10 10
     list_display = ('franchiser_id', 'clerk_id', 'type', 'code', 'integral', 'left_integral', 'remark', 'status', 'created_at', 'updated_at')
11
-    list_filter = ('franchiser_id', 'type', 'status')
11
+    list_filter = ('franchiser_id', 'test_user', 'type', 'status')
12 12
     readonly_fields = ('franchiser_id', 'clerk_id', 'type', 'code', 'integral', 'left_integral')
13 13
     search_fields = ('code', 'remark')
14 14
 
15 15
 
16 16
 class SaleclerkSubmitLogInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
17 17
     list_display = ('franchiser_id', 'clerk_id', 'code', 'remark', 'status', 'created_at', 'updated_at')
18
-    list_filter = ('franchiser_id', 'status')
18
+    list_filter = ('franchiser_id', 'test_user', 'status')
19 19
     search_fields = ('code', 'remark')
20 20
 
21 21
 

+ 25 - 0
integral/migrations/0004_auto_20180417_1031.py

@@ -0,0 +1,25 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.11 on 2018-04-17 02:31
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
+        ('integral', '0003_auto_20180402_1904'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='saleclerkintegralincomeexpensesinfo',
17
+            name='test_user',
18
+            field=models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u4e3a\u6d4b\u8bd5\u7528\u6237', verbose_name='test_user'),
19
+        ),
20
+        migrations.AddField(
21
+            model_name='saleclerksubmitloginfo',
22
+            name='test_user',
23
+            field=models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u4e3a\u6d4b\u8bd5\u7528\u6237', verbose_name='test_user'),
24
+        ),
25
+    ]

+ 4 - 0
integral/models.py

@@ -39,6 +39,8 @@ class SaleclerkIntegralIncomeExpensesInfo(BaseModelMixin):
39 39
 
40 40
     remark = models.CharField(_(u'remark'), max_length=255, blank=True, null=True, help_text=u'备注')
41 41
 
42
+    test_user = models.BooleanField(_(u'test_user'), default=False, help_text=_(u'是否为测试用户'), db_index=True)
43
+
42 44
     class Meta:
43 45
         verbose_name = _(u'saleclerkintegralincomeexpensesinfo')
44 46
         verbose_name_plural = _(u'saleclerkintegralincomeexpensesinfo')
@@ -73,6 +75,8 @@ class SaleclerkSubmitLogInfo(BaseModelMixin):
73 75
 
74 76
     remark = models.CharField(_(u'remark'), max_length=255, blank=True, null=True, help_text=u'备注')
75 77
 
78
+    test_user = models.BooleanField(_(u'test_user'), default=False, help_text=_(u'是否为测试用户'), db_index=True)
79
+
76 80
     class Meta:
77 81
         verbose_name = _(u'saleclerksubmitloginfo')
78 82
         verbose_name_plural = _(u'saleclerksubmitloginfo')

+ 20 - 0
mch/migrations/0013_consumeinfosubmitloginfo_test_user.py

@@ -0,0 +1,20 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.11 on 2018-04-17 02:31
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
+        ('mch', '0012_auto_20180401_2012'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='consumeinfosubmitloginfo',
17
+            name='test_user',
18
+            field=models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u4e3a\u6d4b\u8bd5\u7528\u6237', verbose_name='test_user'),
19
+        ),
20
+    ]

+ 2 - 0
mch/models.py

@@ -223,6 +223,8 @@ class ConsumeInfoSubmitLogInfo(BaseModelMixin):
223 223
 
224 224
     verifyResult = models.IntegerField(_(u'verifyResult'), default=0, help_text=u'验证结果')
225 225
 
226
+    test_user = models.BooleanField(_(u'test_user'), default=False, help_text=_(u'是否为测试用户'), db_index=True)
227
+
226 228
     class Meta:
227 229
         verbose_name = _(u'消费者信息提交记录')
228 230
         verbose_name_plural = _(u'消费者信息提交记录')

+ 3 - 0
page/sale_views.py

@@ -70,6 +70,7 @@ def clerk_sale_submit_api(request):
70 70
         lat=lat,
71 71
         lon=lon,
72 72
         image=file_path,
73
+        test_user=clerk.test_user,
73 74
     )
74 75
 
75 76
     if SaleclerkIntegralIncomeExpensesInfo.objects.filter(code=serialNo, status=True).exists():
@@ -103,6 +104,7 @@ def clerk_sale_submit_api(request):
103 104
         image=file_path,
104 105
         integral=integral,
105 106
         left_integral=clerk.total_integral,
107
+        test_user=clerk.test_user,
106 108
     )
107 109
 
108 110
     return response(200, data={
@@ -221,6 +223,7 @@ def clerk_sale_submit_api_bak(request):
221 223
         code=code,
222 224
         integral=product.integral,
223 225
         left_integral=clerk.integral,
226
+        test_user=clerk.test_user,
224 227
     )
225 228
 
226 229
     return response(200, 'Submit Success', u'提交成功', {})

+ 1 - 1
requirements.txt

@@ -24,7 +24,7 @@ django-rlog==1.0.7
24 24
 django-shortuuidfield==0.1.3
25 25
 django-six==1.0.4
26 26
 django-uniapi==1.0.1
27
-django-we==1.2.1
27
+django-we==1.2.3
28 28
 djangorestframework==3.7.7
29 29
 furl==1.0.1
30 30
 hiredis==0.2.0