:art: Add tenancy shot relative apis

huangqimin001 2 年之前
父节点
当前提交
7ca8134999
共有 5 个文件被更改,包括 166 次插入7 次删除
  1. 3 2
      api/admin_views.py
  2. 87 0
      api/tenancy_admin_views.py
  3. 42 0
      api/tenancy_views.py
  4. 25 1
      api/urls.py
  5. 9 4
      utils/error/errno_utils.py

+ 3 - 2
api/admin_views.py

@@ -887,6 +887,7 @@ def member_activity_create(request, administrator):
887 887
     activity_state = int(request.POST.get('activity_state', 0))
888 888
     poster_kv_img_url = request.POST.get('poster_kv_img_url', '')
889 889
     poster_content = request.POST.get('poster_content', '')
890
+    contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '')
890 891
 
891 892
     act = MemberActivityInfo.objects.create(
892 893
         brand_id=administrator.brand_id,
@@ -914,7 +915,7 @@ def member_activity_create(request, administrator):
914 915
         activity_state=activity_state,
915 916
         poster_kv_img_url=poster_kv_img_url,
916 917
         poster_content=poster_content,
917
-        contribution_content_placeholder=contribution_content_placeholder
918
+        contribution_content_placeholder=contribution_content_placeholder,
918 919
     )
919 920
 
920 921
     return response(200, 'MemberActivityInfo Create Success', u'会员活动创建成功', data={
@@ -964,8 +965,8 @@ def member_activity_register_list(request, administrator):
964 965
     })
965 966
 
966 967
 
967
-@check_admin
968 968
 @logit
969
+@check_admin
969 970
 def member_activity_contribute_list(request, administrator):
970 971
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
971 972
     activity_id = request.POST.get('activity_id', '')

+ 87 - 0
api/tenancy_admin_views.py

@@ -0,0 +1,87 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from __future__ import division
4
+
5
+from django.conf import settings
6
+from django_logit import logit
7
+from django_response import response
8
+from paginator import pagination
9
+
10
+from kodo.decorators import check_admin
11
+from tenancy.models import TenancyShotInfo
12
+from utils.error.errno_utils import TenancyStatusCode
13
+
14
+
15
+@logit
16
+@check_admin
17
+def shot_list(request, administrator):
18
+    page = request.POST.get('page', 1)
19
+    num = request.POST.get('num', 20)
20
+
21
+    shots = TenancyShotInfo.objects.filter(status=True).order_by('-pk')
22
+    shots = [shot.data for shot in shots]
23
+    shots, left = pagination(shots, page, num)
24
+
25
+    return response(data={
26
+        'shots': shots,
27
+        'left': left,
28
+    })
29
+
30
+
31
+@logit
32
+@check_admin
33
+def shot_detail(request, administrator):
34
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
35
+    shot_id = request.POST.get('shot_id', '')
36
+
37
+    try:
38
+        shot = TenancyShotInfo.objects.get(shot_id=shot_id, status=True)
39
+    except TenancyShotInfo.DoesNotExist:
40
+        return response(TenancyStatusCode.TENANCY_SHOT_NOT_FOUND)
41
+
42
+    return response(data={
43
+        'shot': shot.data,
44
+    })
45
+
46
+
47
+@logit
48
+@check_admin
49
+def shot_create(request, administrator):
50
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
51
+    model_name = request.POST.get('model_name', '')
52
+    sn = request.POST.get('sn', '')
53
+    fittings_type = request.POST.get('fittings_type', 0)
54
+    tenancy_status = request.POST.get('tenancy_status', 0)
55
+
56
+    shot = TenancyShotInfo.objects.create(
57
+        model_name=model_name,
58
+        sn=sn,
59
+        fittings_type=fittings_type,
60
+        tenancy_status=tenancy_status,
61
+    )
62
+
63
+    return response(data={
64
+        'shot': shot.data,
65
+    })
66
+
67
+
68
+@logit
69
+@check_admin
70
+def shot_update(request, administrator):
71
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
72
+    shot_id = request.POST.get('shot_id', '')
73
+    model_name = request.POST.get('model_name', '')
74
+    sn = request.POST.get('sn', '')
75
+    fittings_type = request.POST.get('fittings_type', 0)
76
+    tenancy_status = request.POST.get('tenancy_status', 0)
77
+
78
+    shot, _ = TenancyShotInfo.objects.update_or_create(shot_id=shot_id, defaults={
79
+        'model_name': model_name,
80
+        'sn': sn,
81
+        'fittings_type': fittings_type,
82
+        'tenancy_status': tenancy_status,
83
+    })
84
+
85
+    return response(data={
86
+        'shot': shot.data,
87
+    })

+ 42 - 0
api/tenancy_views.py

@@ -0,0 +1,42 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from __future__ import division
4
+
5
+from django.conf import settings
6
+from django_logit import logit
7
+from django_response import response
8
+from paginator import pagination
9
+
10
+from tenancy.models import TenancyShotInfo
11
+from utils.error.errno_utils import TenancyStatusCode
12
+
13
+
14
+@logit
15
+def shot_list(request):
16
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
17
+    page = request.POST.get('page', 1)
18
+    num = request.POST.get('num', 20)
19
+
20
+    shots = TenancyShotInfo.objects.filter(status=True).order_by('-pk')
21
+    shots = [shot.data for shot in shots]
22
+    shots, left = pagination(shots, page, num)
23
+
24
+    return response(data={
25
+        'shots': shots,
26
+        'left': left,
27
+    })
28
+
29
+
30
+@logit
31
+def shot_detail(request):
32
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
33
+    shot_id = request.POST.get('shot_id', '')
34
+
35
+    try:
36
+        shot = TenancyShotInfo.objects.get(shot_id=shot_id, status=True)
37
+    except TenancyShotInfo.DoesNotExist:
38
+        return response(TenancyStatusCode.TENANCY_SHOT_NOT_FOUND)
39
+
40
+    return response(data={
41
+        'shot': shot.data,
42
+    })

+ 25 - 1
api/urls.py

@@ -5,7 +5,7 @@ from django_file_upload import views as file_views
5 5
 
6 6
 from api import (admin_views, clerk_views, complement_views, distributor_views, encrypt_views, express_views, log_views,
7 7
                  maintenance_point_views, maintenance_views, mch_views, member_views, model_views, operator_views,
8
-                 refresh_views, sr_views, staff_views, wx_views, wxa_views)
8
+                 refresh_views, sr_views, staff_views, tenancy_admin_views, tenancy_views, wx_views, wxa_views)
9 9
 from miniapp import qy_views
10 10
 from miniapp import views as mini_views
11 11
 from page import oauth_views, sale_views, screen_views
@@ -307,15 +307,39 @@ urlpatterns += [
307 307
 
308 308
 # 维修
309 309
 urlpatterns += [
310
+    # 小程序接口
310 311
     url(r'^maintenance/add$', maintenance_views.maintenance_add, name='maintenance_add'),
311 312
     url(r'^maintenance/delete$', maintenance_views.maintenance_delete, name='maintenance_delete'),
312 313
     url(r'^maintenance/list$', maintenance_views.maintenance_list, name='maintenance_list'),
313 314
     url(r'^maintenance/detail$', maintenance_views.maintenance_detail, name='maintenance_detail'),
314 315
 
316
+    # 后台管理接口
315 317
     url(r'^admin/maintenance/update$', maintenance_views.maintenance_update, name='maintenance_update'),
316 318
     url(r'^admin/maintenance/list$', maintenance_views.maintenance_list, name='maintenance_list'),
317 319
     url(r'^admin/maintenance/close$', maintenance_views.maintenance_close, name='maintenance_close'),
318 320
 
319 321
     url(r'^admin/maintenance/tracking/info$', maintenance_views.maintenance_tracking_info, name='maintenance_tracking_info'),
322
+
323
+    # 快递信息回调接口
320 324
     url(r'^maintenance/tracking/info/callback$', maintenance_views.maintenance_tracking_info_callback, name='maintenance_tracking_info_callback'),
321 325
 ]
326
+
327
+# 租赁
328
+urlpatterns += [
329
+    # 小程序接口
330
+    url(r'^tenancy/shot/list$', tenancy_views.shot_list, name='tenancy_shot_list'),
331
+    url(r'^tenancy/shot/detail$', tenancy_views.shot_detail, name='tenancy_shot_detail'),
332
+
333
+    # 后台管理接口
334
+    url(r'^admin/tenancy/shot/list$', tenancy_admin_views.shot_list, name='admin_tenancy_shot_list'),
335
+    url(r'^admin/tenancy/shot/detail$', tenancy_admin_views.shot_detail, name='admin_tenancy_shot_detail'),
336
+    url(r'^admin/tenancy/shot/create$', tenancy_admin_views.shot_create, name='admin_tenancy_shot_create'),
337
+    url(r'^admin/tenancy/shot/update$', tenancy_admin_views.shot_update, name='admin_tenancy_shot_update'),
338
+]
339
+
340
+# 租赁申请
341
+urlpatterns += [
342
+    # 小程序接口
343
+
344
+    # 后台管理接口
345
+]

+ 9 - 4
utils/error/errno_utils.py

@@ -16,17 +16,17 @@ class PermissionStatusCode(BaseStatusCode):
16 16
 class AdministratorStatusCode(BaseStatusCode):
17 17
     """ 操作员相关错误码 4002xx """
18 18
     ADMINISTRATOR_NOT_FOUND = StatusCodeField(400201, 'Administrator Not Found', description=u'管理员不存在')
19
-    ADMINISTRATOR_PERMISSION_DENIED = StatusCodeField(508002, 'Administrator Permission Denied', description=u'管理员权限不足')
19
+    ADMINISTRATOR_PERMISSION_DENIED = StatusCodeField(400202, 'Administrator Permission Denied', description=u'管理员权限不足')
20 20
 
21
-    # 密码
22
-    ADMINISTRATOR_PASSWORD_ERROR = StatusCodeField(400202, 'Administrator Password Error', description=u'管理员密码错误')
23 21
     # 手机号
24 22
     ADMINISTRATOR_PHONE_ALREADY_EXISTS = StatusCodeField(400205, 'Administrator Phone Already Exists', description=u'管理员手机号已经存在')
23
+    # 密码
24
+    ADMINISTRATOR_PASSWORD_ERROR = StatusCodeField(400210, 'Administrator Password Error', description=u'管理员密码错误')
25 25
     # 状态
26 26
     ADMINISTRATOR_NOT_ACTIVATED = StatusCodeField(400215, 'Administrator Not Activated', description=u'管理员未激活')
27 27
     ADMINISTRATOR_HAS_DISABLED = StatusCodeField(400216, 'Administrator Has Disabled', description=u'管理员已禁用')
28 28
     ADMINISTRATOR_HAS_DELETED = StatusCodeField(400217, 'Administrator Has Deleted', description=u'管理员已删除')
29
-    # 管理员
29
+    # 核销员
30 30
     MAINTENANCE_NOT_FOUND = StatusCodeField(400251, 'Maintenance Not Found', description=u'核销员不存在')
31 31
 
32 32
 
@@ -211,3 +211,8 @@ class MaintenanceStatusCode(BaseStatusCode):
211 211
     """ 维修相关错误码 5080xx """
212 212
     MAINTENACE_NOT_FOUND = StatusCodeField(508001, 'Maintenance Not Found', description=u'维修不存在')
213 213
     MAINTENACE_PERMISSION_DENIED = StatusCodeField(508002, 'Maintenance Permission Denied', description=u'维修权限不足')
214
+
215
+
216
+class TenancyStatusCode(BaseStatusCode):
217
+    """ 租赁相关错误码 5090xx """
218
+    TENANCY_SHOT_NOT_FOUND = StatusCodeField(509001, 'Tenancy Shot Not Found', description=u'租赁镜头不存在')