@@ -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) |
@@ -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 |
+ ] |
@@ -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') |
@@ -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'提交消费者信息成功') |
@@ -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 |
|
@@ -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 |
+ ] |
@@ -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') |
@@ -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 |
+ ] |
@@ -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'消费者信息提交记录') |
@@ -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'提交成功', {})
|
@@ -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 |