ConsumeInfoSubmitLogInfo

Brightcells лет %!s(int64=7): %!d(string=назад)
Родитель
Сommit
1b1f0192f8
6 измененных файлов с 100 добавлено и 5 удалено
  1. 27 1
      api/mch_views.py
  2. 4 0
      api/urls.py
  3. 9 2
      mch/admin.py
  4. 36 0
      mch/migrations/0007_consumeinfosubmitloginfo.py
  5. 22 0
      mch/models.py
  6. 2 2
      requirements.txt

+ 27 - 1
api/mch_views.py

@@ -6,7 +6,7 @@ from django.contrib.auth.hashers import check_password, make_password
6 6
 from django_response import response
7 7
 from logit import logit
8 8
 
9
-from mch.models import BrandInfo, DistributorInfo, LatestAppInfo, ModelInfo, OperatorInfo
9
+from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelInfo, OperatorInfo
10 10
 from utils.error.errno_utils import OperatorStatusCode
11 11
 
12 12
 
@@ -105,3 +105,29 @@ def upgrade_api(request):
105 105
     return response(200, 'Get Latest App Success', u'获取最新版信息成功', {
106 106
         'appinfo': appinfo,
107 107
     })
108
+
109
+
110
+@logit
111
+def consume_info_api(request):
112
+    user_id = request.POST.get('user_id', '')
113
+    iv = request.POST.get('iv', '')
114
+    encryptedData = request.POST.get('encryptedData', '')
115
+    lat = request.POST.get('lat', '')
116
+    lon = request.POST.get('lon', '')
117
+    serialNo = request.POST.get('SerialNo', '')
118
+    verifyResult = request.POST.get('verifyResult', '')
119
+
120
+    # To Get Phone
121
+
122
+    ConsumeInfoSubmitLogInfo.objects.create(
123
+        user_id=user_id,
124
+        phone='',
125
+        iv=iv,
126
+        encryptedData=encryptedData,
127
+        lat=lat,
128
+        lon=long,
129
+        serialNo=serialNo,
130
+        verifyResult=verifyResult,
131
+    )
132
+
133
+    return response()

+ 4 - 0
api/urls.py

@@ -203,3 +203,7 @@ urlpatterns += [
203 203
 urlpatterns += [
204 204
     url(r'^api/upgrade$', mch_views.upgrade_api, name='upgrade_api'),  # APP 升级
205 205
 ]
206
+
207
+urlpatterns += [
208
+    url(r'^api/consume_info$', mch_views.consume_info_api, name='consume_info_api'),
209
+]

+ 9 - 2
mch/admin.py

@@ -1,12 +1,13 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
-from djadmin import DeleteModelAdmin
3
+from djadmin import DeleteModelAdmin, ReadOnlyModelAdmin
4 4
 from django.conf import settings
5 5
 from django.contrib import admin
6 6
 from django.contrib.auth.hashers import check_password, make_password
7 7
 from pysnippets.strsnippets import strip
8 8
 
9
-from mch.models import BrandInfo, DistributorInfo, LatestAppInfo, ModelImageInfo, ModelInfo, OperatorInfo
9
+from mch.models import (BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelImageInfo, ModelInfo,
10
+                        OperatorInfo)
10 11
 
11 12
 
12 13
 class OperatorInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):
@@ -90,9 +91,15 @@ class LatestAppInfoAdmin(admin.ModelAdmin):
90 91
         obj.save()
91 92
 
92 93
 
94
+class ConsumeInfoSubmitLogInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
95
+    list_display = ('user_id', 'phone', 'iv', 'encryptedData', 'lat', 'lon', 'serialNo', 'verifyResult', 'status', 'created_at', 'updated_at')
96
+    list_filter = ('status', )
97
+
98
+
93 99
 admin.site.register(OperatorInfo, OperatorInfoAdmin)
94 100
 admin.site.register(BrandInfo, BrandInfoAdmin)
95 101
 admin.site.register(ModelInfo, ModelInfoAdmin)
96 102
 admin.site.register(ModelImageInfo, ModelImageInfoAdmin)
97 103
 admin.site.register(DistributorInfo, DistributorInfoAdmin)
98 104
 admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
105
+admin.site.register(ConsumeInfoSubmitLogInfo, ConsumeInfoSubmitLogInfoAdmin)

+ 36 - 0
mch/migrations/0007_consumeinfosubmitloginfo.py

@@ -0,0 +1,36 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.9 on 2018-01-28 20:13
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', '0006_auto_20180115_0047'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.CreateModel(
16
+            name='ConsumeInfoSubmitLogInfo',
17
+            fields=[
18
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19
+                ('status', models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status')),
20
+                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
21
+                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
22
+                ('user_id', models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id')),
23
+                ('phone', models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u624b\u673a', max_length=11, null=True, verbose_name='phone')),
24
+                ('iv', models.CharField(blank=True, help_text='iv', max_length=11, null=True, verbose_name='iv')),
25
+                ('encryptedData', models.CharField(blank=True, help_text='encryptedData', max_length=11, null=True, verbose_name='encryptedData')),
26
+                ('lat', models.IntegerField(default=1.0, help_text='\u7eac\u5ea6', verbose_name='lat')),
27
+                ('lon', models.IntegerField(default=1.0, help_text='\u7ecf\u5ea6', verbose_name='lon')),
28
+                ('serialNo', models.CharField(blank=True, db_index=True, help_text='\u5e8f\u5217\u53f7', max_length=16, null=True, verbose_name='serialNo')),
29
+                ('verifyResult', models.IntegerField(default=0, help_text='\u9a8c\u8bc1\u7ed3\u679c', verbose_name='verifyResult')),
30
+            ],
31
+            options={
32
+                'verbose_name': '\u6d88\u8d39\u8005\u4fe1\u606f\u63d0\u4ea4\u8bb0\u5f55',
33
+                'verbose_name_plural': '\u6d88\u8d39\u8005\u4fe1\u606f\u63d0\u4ea4\u8bb0\u5f55',
34
+            },
35
+        ),
36
+    ]

+ 22 - 0
mch/models.py

@@ -189,3 +189,25 @@ class LatestAppInfo(BaseModelMixin):
189 189
             'latest_adr_version_name': self.latest_adr_version_name,
190 190
             'latest_adr_url': self.final_latest_adr_url,
191 191
         }
192
+
193
+
194
+class ConsumeInfoSubmitLogInfo(BaseModelMixin):
195
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
196
+
197
+    phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'用户手机', db_index=True)
198
+    iv = models.CharField(_(u'iv'), max_length=11, blank=True, null=True, help_text=u'iv')
199
+    encryptedData = models.CharField(_(u'encryptedData'), max_length=11, blank=True, null=True, help_text=u'encryptedData')
200
+
201
+    lat = models.IntegerField(_(u'lat'), default=1.0, help_text=u'纬度')
202
+    lon = models.IntegerField(_(u'lon'), default=1.0, help_text=u'经度')
203
+
204
+    serialNo = models.CharField(_(u'serialNo'), max_length=16, blank=True, null=True, help_text=u'序列号', db_index=True)
205
+
206
+    verifyResult = models.IntegerField(_(u'verifyResult'), default=0, help_text=u'验证结果')
207
+
208
+    class Meta:
209
+        verbose_name = _(u'消费者信息提交记录')
210
+        verbose_name_plural = _(u'消费者信息提交记录')
211
+
212
+    def __unicode__(self):
213
+        return unicode(self.pk)

+ 2 - 2
requirements.txt

@@ -13,7 +13,7 @@ django-file-md5==1.0.1
13 13
 django-ip==1.0.2
14 14
 django-json-render==1.0.0
15 15
 django-json-response==1.1.5
16
-django-logit==1.0.6
16
+django-logit==1.0.8
17 17
 django-mobi==0.1.7
18 18
 django-models-ext==1.1.0
19 19
 django-multidomain==1.1.4
@@ -42,7 +42,7 @@ pywe-sign==1.0.6
42 42
 pywe-xml==1.0.0
43 43
 qiniu==7.2.0
44 44
 redis==2.10.6
45
-redis-extensions==1.1.6
45
+redis-extensions==1.2.0
46 46
 requests==2.18.4
47 47
 rlog==0.3
48 48
 rsa==3.4.2