小程序接口,新增经销商列表,销售员注册,获取销售信息

FFIB 1 year ago
parent
commit
16935a36d3
4 changed files with 88 additions and 1 deletions
  1. 3 0
      .vscode/settings.json
  2. 2 0
      account/models.py
  3. 75 0
      api/salesman_mp_views.py
  4. 8 1
      api/urls.py

+ 3 - 0
.vscode/settings.json

@@ -0,0 +1,3 @@
1
+{
2
+  "python.formatting.provider": "none"
3
+}

+ 2 - 0
account/models.py

@@ -233,6 +233,8 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):
233 233
 
234 234
         return {
235 235
             'has_unionid': bool(self.unionid),
236
+            'unionid': self.unionid,
237
+            'openid': self.openid,
236 238
             'user_id': self.user_id,
237 239
             'name': self.name,
238 240
             'username': self.username,

+ 75 - 0
api/salesman_mp_views.py

@@ -0,0 +1,75 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from __future__ import division
4
+
5
+from django.conf import settings
6
+from django.db import transaction
7
+from django_logit import logit
8
+from django_response import response
9
+from paginator import pagination
10
+
11
+from mch.models import BrandInfo, DistributorInfo, SaleclerkInfo
12
+from utils.error.errno_utils import ProductDistributorStatusCode, SaleclerkStatusCode
13
+
14
+
15
+@logit
16
+def distributor_list(request):
17
+    page = request.POST.get('page', 1)
18
+    num = request.POST.get('num', 20)
19
+
20
+    distributors = DistributorInfo.objects.filter(status=True).order_by('distributor_name')
21
+    count = distributors.count()
22
+    distributors, left = pagination(distributors, page, num)
23
+    distributors = [distributor.admindata for distributor in distributors]
24
+
25
+    return response(200, 'Get Distributor List Success', u'获取经销商列表成功', {
26
+        'distributors': distributors,
27
+        'count': count,
28
+        'left': left,
29
+    })
30
+
31
+@logit
32
+def salesman_detail(request):
33
+  user_id = request.POST.get('user_id', '')
34
+
35
+  try:
36
+    salesman = SaleclerkInfo.objects.get(user_id=user_id, status=True)
37
+  except SaleclerkInfo.DoesNotExist:
38
+    return response(SaleclerkStatusCode.CLERK_NOT_FOUND)
39
+
40
+  return response(200, 'Get Salesman Detail Success', u'获取销售员信息成功', data=salesman.data)
41
+
42
+
43
+@logit
44
+@transaction.atomic
45
+def salesman_register(request):
46
+    """ 店员授权信息提交 """
47
+    user_id = request.POST.get('user_id', '')
48
+    brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
49
+    distributor_id = request.POST.get('distributor_id', '')
50
+    unionid = request.POST.get('unionid', '')
51
+    openid = request.POST.get('openid', '')
52
+    phone = request.POST.get('phone', '')
53
+
54
+    if SaleclerkInfo.objects.filter(clerk_phone=phone).exclude(unionid=unionid).exists():
55
+        return response(SaleclerkStatusCode.CLERK_PHONE_ALREADY_EXISTS)
56
+
57
+    try:
58
+        distributor = DistributorInfo.objects.get(distributor_id=distributor_id)
59
+    except DistributorInfo.DoesNotExist:
60
+        return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
61
+
62
+    fields = {
63
+        'distributor_id': distributor_id,
64
+        'user_id': user_id,
65
+        'distributor_name': distributor.distributor_name,
66
+        'clerk_name': request.POST.get('name', ''),
67
+        'clerk_sex': int(request.POST.get('sex', 1)),
68
+        'clerk_phone': phone,
69
+        'openid': openid,
70
+        'user_status': SaleclerkInfo.UNVERIFIED,
71
+    }
72
+
73
+    clerk, _ = SaleclerkInfo.objects.update_or_create(brand_id=brand_id, unionid=unionid, defaults=fields)
74
+
75
+    return response(200, 'Submit Success', u'提交成功', {})

+ 8 - 1
api/urls.py

@@ -6,7 +6,7 @@ from django_file_upload import views as file_views
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 8
                  refresh_views, sr_views, staff_views, tenancy_admin_views, tenancy_views, tencentcloud_views, wx_views,
9
-                 wxa_views, consumer_admin_view)
9
+                 wxa_views, consumer_admin_view, salesman_mp_views)
10 10
 from miniapp import qy_views
11 11
 from miniapp import views as mini_views
12 12
 from page import oauth_views, sale_views, screen_views
@@ -277,6 +277,13 @@ urlpatterns += [
277 277
     url(r'^admin/complement/code/contacted$', admin_views.complement_code_contacted, name='complement_code_contacted'),
278 278
 ]
279 279
 
280
+#销售员
281
+urlpatterns += [
282
+    url(r'^mp/distributor/list$', salesman_mp_views.distributor_list, name='mp_distributor_list'),
283
+    url(r'^mp/salesman/register$', salesman_mp_views.salesman_register, name='mp_salesman_register'),
284
+    url(r'^mp/salesman/detail$', salesman_mp_views.salesman_detail, name='mp_salesman_detail'),
285
+]
286
+
280 287
 # 维修点
281 288
 urlpatterns += [
282 289
     url(r'^maintenance/point/add$', maintenance_point_views.maintenance_point_add, name='maintenance_point_add'),