e.register(ModelImageInfo, ModelImageInfoAdmin) 167 181
 admin.site.register(DistributorInfo, DistributorInfoAdmin)
182
+admin.site.register(SaleclerkInfo, SaleclerkInfoAdmin)
168 183
 # admin.site.register(BrandModelDistributorPriceInfo, BrandModelDistributorPriceInfoAdmin)
169 184
 admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
170 185
 admin.site.register(ConsumeInfoSubmitLogInfo, ConsumeInfoSubmitLogInfoAdmin)

+ 46 - 0
mch/migrations/0019_saleclerkinfo.py

@@ -0,0 +1,46 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.11 on 2018-05-14 10:28
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+import shortuuidfield.fields
7
+
8
+
9
+class Migration(migrations.Migration):
10
+
11
+    dependencies = [
12
+        ('mch', '0018_auto_20180514_1519'),
13
+    ]
14
+
15
+    operations = [
16
+        migrations.CreateModel(
17
+            name='SaleclerkInfo',
18
+            fields=[
19
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
20
+                ('status', models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status')),
21
+                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
22
+                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
23
+                ('sex', models.BooleanField(choices=[(1, '\u7537'), (0, '\u5973')], db_index=True, default=1, help_text='Sex', verbose_name='sex')),
24
+                ('brand_id', models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id')),
25
+                ('brand_name', models.CharField(blank=True, help_text='\u54c1\u724c\u540d\u79f0', max_length=255, null=True, verbose_name='brand_name')),
26
+                ('distributor_id', models.CharField(blank=True, db_index=True, help_text='\u7ecf\u9500\u5546\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='distributor_id')),
27
+                ('distributor_name', models.CharField(blank=True, help_text='\u7ecf\u9500\u5546\u540d\u79f0', max_length=32, null=True, verbose_name='distributor_name')),
28
+                ('clerk_id', shortuuidfield.fields.ShortUUIDField(blank=True, db_index=True, editable=False, help_text='\u5e97\u5458\u552f\u4e00\u6807\u8bc6', max_length=22, unique=True)),
29
+                ('clerk_name', models.CharField(blank=True, help_text='\u5e97\u5458\u540d\u79f0', max_length=32, null=True, verbose_name='clerk_name')),
30
+                ('clerk_sex', models.IntegerField(choices=[(1, '\u7537'), (0, '\u5973')], db_index=True, default=1, help_text='\u5e97\u5458\u6027\u522b', verbose_name='clerk_sex')),
31
+                ('clerk_phone', models.CharField(blank=True, help_text='\u5e97\u5458\u8054\u7cfb\u7535\u8bdd', max_length=11, null=True, verbose_name='clerk_phone')),
32
+                ('unionid', models.CharField(blank=True, db_index=True, help_text='\u5fae\u4fe1 UnionID', max_length=32, null=True, unique=True, verbose_name='unionid')),
33
+                ('openid', models.CharField(blank=True, db_index=True, help_text='\u5fae\u4fe1 OpenID', max_length=32, null=True, unique=True, verbose_name='openid')),
34
+                ('integral', models.IntegerField(default=0, help_text='\u79ef\u5206', verbose_name='integral')),
35
+                ('total_integral', models.IntegerField(default=0, help_text='\u5168\u90e8\u79ef\u5206', verbose_name='total_integral')),
36
+                ('user_status', models.IntegerField(choices=[(-1, '\u5df2\u62d2\u7edd'), (0, '\u672a\u9a8c\u8bc1'), (1, '\u5df2\u6fc0\u6d3b'), (2, '\u5df2\u7981\u7528'), (3, '\u5df2\u5220\u9664'), (10, '\u5df2\u5206\u914d')], db_index=True, default=0, help_text='\u7528\u6237\u72b6\u6001', verbose_name='user_status')),
37
+                ('refused_reason', models.TextField(blank=True, help_text='\u5ba1\u6838\u62d2\u7edd\u539f\u56e0', null=True, verbose_name='refused_reason')),
38
+                ('is_auth', models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u5df2\u6388\u6743', verbose_name='is_auth')),
39
+                ('test_user', models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u4e3a\u6d4b\u8bd5\u7528\u6237', verbose_name='test_user')),
40
+            ],
41
+            options={
42
+                'verbose_name': 'saleclerkinfo',
43
+                'verbose_name_plural': 'saleclerkinfo',
44
+            },
45
+        ),
46
+    ]

+ 66 - 1
mch/models.py

@@ -2,7 +2,8 @@
2 2
 
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5
-from django_models_ext import BaseModelMixin, ProvinceShortModelMixin, upload_file_path, upload_file_url, upload_path
5
+from django_models_ext import (BaseModelMixin, ProvinceShortModelMixin, SexModelMixin, upload_file_path,
6
+                               upload_file_url, upload_path)
6 7
 from shortuuidfield import ShortUUIDField
7 8
 
8 9
 
@@ -242,6 +243,70 @@ class DistributorInfo(BaseModelMixin):
242 243
         }
243 244
 
244 245
 
246
+class SaleclerkInfo(BaseModelMixin, SexModelMixin):
247
+    REFUSED = -1
248
+    UNVERIFIED = 0
249
+    ACTIVATED = 1
250
+    DISABLED = 2
251
+    DELETED = 3
252
+    ASSIGN = 10
253
+
254
+    USER_STATUS = (
255
+        (REFUSED, u'已拒绝'),
256
+        (UNVERIFIED, u'未验证'),
257
+        (ACTIVATED, u'已激活'),
258
+        (DISABLED, u'已禁用'),
259
+        (DELETED, u'已删除'),
260
+        (ASSIGN, u'已分配'),
261
+    )
262
+
263
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
264
+    brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
265
+
266
+    distributor_id = models.CharField(_(u'distributor_id'), max_length=32, blank=True, null=True, help_text=u'经销商唯一标识', db_index=True)
267
+    distributor_name = models.CharField(_(u'distributor_name'), max_length=32, blank=True, null=True, help_text=u'经销商名称')
268
+
269
+    clerk_id = ShortUUIDField(_(u'clerk_id'), max_length=32, help_text=u'店员唯一标识', db_index=True, unique=True)
270
+    clerk_name = models.CharField(_(u'clerk_name'), max_length=32, blank=True, null=True, help_text=u'店员名称')
271
+    clerk_sex = models.IntegerField(_(u'clerk_sex'), choices=SexModelMixin.SEX_TUPLE, default=SexModelMixin.MALE, help_text=u'店员性别', db_index=True)
272
+    clerk_phone = models.CharField(_(u'clerk_phone'), max_length=11, blank=True, null=True, help_text=u'店员联系电话')
273
+
274
+    unionid = models.CharField(_(u'unionid'), max_length=32, blank=True, null=True, help_text=u'微信 UnionID', db_index=True, unique=True)
275
+    openid = models.CharField(_(u'openid'), max_length=32, blank=True, null=True, help_text=u'微信 OpenID', db_index=True, unique=True)
276
+
277
+    integral = models.IntegerField(_(u'integral'), default=0, help_text=u'积分')
278
+    total_integral = models.IntegerField(_(u'total_integral'), default=0, help_text=u'全部积分')
279
+
280
+    user_status = models.IntegerField(_(u'user_status'), choices=USER_STATUS, default=UNVERIFIED, help_text=u'用户状态', db_index=True)
281
+    refused_reason = models.TextField(_(u'refused_reason'), blank=True, null=True, help_text=u'审核拒绝原因')
282
+
283
+    is_auth = models.BooleanField(_(u'is_auth'), default=False, help_text=_(u'是否已授权'), db_index=True)
284
+
285
+    test_user = models.BooleanField(_(u'test_user'), default=False, help_text=_(u'是否为测试用户'), db_index=True)
286
+
287
+    class Meta:
288
+        verbose_name = _(u'经销商销售员信息')
289
+        verbose_name_plural = _(u'经销商销售员信息')
290
+
291
+    def __unicode__(self):
292
+        return unicode(self.pk)
293
+
294
+    @property
295
+    def admindata(self):
296
+        return {
297
+            'distributor_id': self.distributor_id,
298
+            'distributor_name': self.distributor_name,
299
+            'clerk_id': self.clerk_id,
300
+            'clerk_name': self.clerk_name,
301
+            'clerk_sex': self.clerk_sex,
302
+            'clerk_phone': self.clerk_phone,
303
+            'integral': self.integral,
304
+            'status': self.user_status,
305
+            'refused_reason': self.refused_reason,
306
+            'is_auth': self.is_auth,
307
+        }
308
+
309
+
245 310
 class BrandModelDistributorPriceInfo(BaseModelMixin):
246 311
     brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
247 312
     brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')

Kodo/kodo - Gogs: Go Git Service

1 次代码提交 (0d99e1f360eba4ceeec43102b9a8d97650c2ffc7)

作者 SHA1 备注 提交日期
  Brightcells feebb32686 Add pc website 9 年之前