es-num-old"> 189
# Kodo
urlpatterns += [
url(r'^login$', mch_views.login_api, name='login_api'),
+ url(r'^admin/login$', mch_views.admin_login_api, name='admin_login_api'),
]
urlpatterns += [
@@ -232,3 +233,10 @@ urlpatterns += [
url(r'^tj/consumer$', tj_views.tj_consumer, name='tj_consumer'), # 统计数据(消费者维度)
url(r'^tj/generate$', tj_views.tj_generate, name='tj_generate'), # 统计数据生成
]
+
+urlpatterns += [
+ url(r'^operator/add$', operator_views.operator_add, name='operator_add'),
+ url(r'^operator/delete$', operator_views.operator_delete, name='operator_delete'),
+ url(r'^operator/update$', operator_views.operator_update, name='operator_update'),
+ url(r'^operator/list$', operator_views.operator_list, name='operator_list'),
+]
@@ -0,0 +1,25 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+# Generated by Django 1.11.11 on 2018-05-14 07:19 |
|
| 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', '0017_auto_20180508_1830'),
|
|
| 12 |
+ ] |
|
| 13 |
+ |
|
| 14 |
+ operations = [ |
|
| 15 |
+ migrations.AlterField( |
|
| 16 |
+ model_name='administratorinfo', |
|
| 17 |
+ name='user_status', |
|
| 18 |
+ field=models.IntegerField(choices=[(1, '\u5df2\u6fc0\u6d3b'), (2, '\u5df2\u7981\u7528'), (3, '\u5df2\u5220\u9664')], db_index=True, default=1, help_text='\u7ba1\u7406\u5458\u72b6\u6001', verbose_name='user_status'), |
|
| 19 |
+ ), |
|
| 20 |
+ migrations.AlterField( |
|
| 21 |
+ model_name='operatorinfo', |
|
| 22 |
+ name='user_status', |
|
| 23 |
+ field=models.IntegerField(choices=[(1, '\u5df2\u6fc0\u6d3b'), (2, '\u5df2\u7981\u7528'), (3, '\u5df2\u5220\u9664')], db_index=True, default=1, help_text='\u64cd\u4f5c\u5458\u72b6\u6001', verbose_name='user_status'), |
|
| 24 |
+ ), |
|
| 25 |
+ ] |
@@ -9,10 +9,12 @@ from shortuuidfield import ShortUUIDField |
||
| 9 | 9 |
class AdministratorInfo(BaseModelMixin): |
| 10 | 10 |
ACTIVATED = 1 |
| 11 | 11 |
DISABLED = 2 |
| 12 |
+ DELETED = 3 |
|
| 12 | 13 |
|
| 13 | 14 |
USER_STATUS_TUPLE = ( |
| 14 | 15 |
(ACTIVATED, u'已激活'), |
| 15 | 16 |
(DISABLED, u'已禁用'), |
| 17 |
+ (DELETED, u'已删除'), |
|
| 16 | 18 |
) |
| 17 | 19 |
|
| 18 | 20 |
admin_id = ShortUUIDField(_(u'admin_id'), max_length=32, blank=True, null=True, help_text=u'管理员唯一标识', db_index=True, unique=True) |
@@ -39,10 +41,12 @@ class AdministratorInfo(BaseModelMixin): |
||
| 39 | 41 |
class OperatorInfo(BaseModelMixin): |
| 40 | 42 |
ACTIVATED = 1 |
| 41 | 43 |
DISABLED = 2 |
| 44 |
+ DELETED = 3 |
|
| 42 | 45 |
|
| 43 | 46 |
USER_STATUS_TUPLE = ( |
| 44 | 47 |
(ACTIVATED, u'已激活'), |
| 45 | 48 |
(DISABLED, u'已禁用'), |
| 49 |
+ (DELETED, u'已删除'), |
|
| 46 | 50 |
) |
| 47 | 51 |
|
| 48 | 52 |
operator_id = ShortUUIDField(_(u'operator_id'), max_length=32, blank=True, null=True, help_text=u'操作员唯一标识', db_index=True, unique=True) |
@@ -65,6 +69,14 @@ class OperatorInfo(BaseModelMixin): |
||
| 65 | 69 |
def __unicode__(self): |
| 66 | 70 |
return u'{}-{}'.format(self.name, self.phone)
|
| 67 | 71 |
|
| 72 |
+ @property |
|
| 73 |
+ def data(self): |
|
| 74 |
+ return {
|
|
| 75 |
+ 'operator_id': self.operator_id, |
|
| 76 |
+ 'phone': self.phone, |
|
| 77 |
+ 'name': self.name, |
|
| 78 |
+ } |
|
| 79 |
+ |
|
| 68 | 80 |
|
| 69 | 81 |
class BrandInfo(BaseModelMixin): |
| 70 | 82 |
brand_id = ShortUUIDField(_(u'brand_id'), max_length=32, help_text=u'品牌唯一标识', db_index=True, unique=True) |
@@ -69,13 +69,30 @@ class TourGuideStatusCode(BaseStatusCode): |
||
| 69 | 69 |
TOURGUIDE_NOT_ACTIVATED = StatusCodeField(400115, 'Tour Guide Not Activated', description=u'导游帐号未激活') |
| 70 | 70 |
|
| 71 | 71 |
|
| 72 |
-class OperatorStatusCode(BaseStatusCode): |
|
| 72 |
+class AdministratorStatusCode(BaseStatusCode): |
|
| 73 | 73 |
""" 操作员相关错误码 4002xx """ |
| 74 |
- OPERATOR_NOT_FOUND = StatusCodeField(400201, 'Operator Not Found', description=u'操作员不存在') |
|
| 74 |
+ ADMINISTRATOR_NOT_FOUND = StatusCodeField(400201, 'Administrator Not Found', description=u'管理员不存在') |
|
| 75 |
+ # 密码 |
|
| 76 |
+ ADMINISTRATOR_PASSWORD_ERROR = StatusCodeField(400202, 'Administrator Password Error', description=u'管理员密码错误') |
|
| 77 |
+ # 手机号 |
|
| 78 |
+ ADMINISTRATOR_PHONE_ALREADY_EXISTS = StatusCodeField(400205, 'Administrator Phone Already Exists', description=u'管理员手机号已经存在') |
|
| 79 |
+ # 状态 |
|
| 80 |
+ ADMINISTRATOR_NOT_ACTIVATED = StatusCodeField(400215, 'Administrator Not Activated', description=u'管理员未激活') |
|
| 81 |
+ ADMINISTRATOR_HAS_DISABLED = StatusCodeField(400216, 'Administrator Has Disabled', description=u'管理员已禁用') |
|
| 82 |
+ ADMINISTRATOR_HAS_DELETED = StatusCodeField(400217, 'Administrator Has Deleted', description=u'管理员已删除') |
|
| 83 |
+ |
|
| 84 |
+ |
|
| 85 |
+class OperatorStatusCode(BaseStatusCode): |
|
| 86 |
+ """ 操作员相关错误码 4003xx """ |
|
| 87 |
+ OPERATOR_NOT_FOUND = StatusCodeField(400301, 'Operator Not Found', description=u'操作员不存在') |
|
| 75 | 88 |
# 密码 |
| 76 |
- OPERATOR_PASSWORD_ERROR = StatusCodeField(400202, 'Operator Password Error', description=u'操作员密码错误') |
|
| 89 |
+ OPERATOR_PASSWORD_ERROR = StatusCodeField(400302, 'Operator Password Error', description=u'操作员密码错误') |
|
| 90 |
+ # 手机号 |
|
| 91 |
+ OPERATOR_PHONE_ALREADY_EXISTS = StatusCodeField(400305, 'Operator Phone Already Exists', description=u'操作员手机号已经存在') |
|
| 77 | 92 |
# 状态 |
| 78 |
- OPERATOR_NOT_ACTIVATED = StatusCodeField(400215, 'Operator Not Activated', description=u'操作员未激活') |
|
| 93 |
+ OPERATOR_NOT_ACTIVATED = StatusCodeField(400315, 'Operator Not Activated', description=u'操作员未激活') |
|
| 94 |
+ OPERATOR_HAS_DISABLED = StatusCodeField(400316, 'Operator Has Disabled', description=u'操作员已禁用') |
|
| 95 |
+ OPERATOR_HAS_DELETED = StatusCodeField(400317, 'Operator Has Deleted', description=u'操作员已删除') |
|
| 79 | 96 |
|
| 80 | 97 |
|
| 81 | 98 |
class UserStatusCode(BaseStatusCode): |