default=SexModelMixin.MALE, help_text=u'维修员性别', db_index=True) 491
+    maintenance_phone = models.CharField(_(u'maintenance_phone'), max_length=11, blank=True, null=True, help_text=u'维修员联系电话', unique=True)
492
+
493
+    class Meta:
494
+        verbose_name = _(u'维修员信息')
495
+        verbose_name_plural = _(u'维修员信息信息')
496
+
497
+        unique_together = (
498
+            ('maintenance_phone', 'brand_id'),
499
+        )
500
+
501
+    def __unicode__(self):
502
+        return unicode(self.pk)
503
+
504
+    @property
505
+    def data(self):
506
+        return  {
507
+            'maintenance_id': self.maintenance_id,
508
+            'maintenance_name': self.maintenance_name,
509
+            'maintenance_phone': self.maintenance_phone,
510
+        }
480 511
 
481 512
 class BrandModelDistributorPriceInfo(BaseModelMixin):
482 513
     brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)

+ 46 - 4
miniapp/qy_views.py

@@ -1,6 +1,8 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3 3
 import logging
4
+import requests
5
+import json
4 6
 
5 7
 from django.conf import settings
6 8
 from django.db import transaction
@@ -9,16 +11,17 @@ from django_logit import logit
9 11
 from django_response import response
10 12
 from ipaddr import client_ip
11 13
 from pyqywe_miniapp import get_userid
14
+from pyqywe_token import access_token
12 15
 from pywe_storage import RedisStorage
13 16
 from TimeConvert import TimeConvert as tc
14 17
 
15 18
 from account.models import UserInfo
19
+from mch.models import SaleclerkInfo, DistributorInfo, MaintenancemanInfo
16 20
 from statistic.models import RegisterStatisticInfo
17
-from utils.error.errno_utils import ProductBrandStatusCode
21
+from utils.error.errno_utils import ProductBrandStatusCode, ProductDistributorStatusCode
18 22
 from utils.redis.connect import r
19 23
 from utils.redis.rprofile import set_profile_info
20 24
 
21
-
22 25
 WECHAT = settings.WECHAT
23 26
 logger = logging.getLogger('logit')
24 27
 
@@ -41,6 +44,13 @@ def qy_login_api(request):
41 44
 
42 45
     userid = get_userid(appid=appid, secret=secret, code=code, storage=RedisStorage(r))
43 46
 
47
+    token = access_token(appid=appid, secret=secret, storage=RedisStorage(r))
48
+
49
+    userinfo = requests.post(url='https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token='+token+'&userid='+userid).text
50
+    userinfo = json.loads(userinfo)
51
+
52
+    mobile = userinfo.get('mobile', '')
53
+    
44 54
     # Get or Create User
45 55
     user, created = UserInfo.objects.select_for_update().get_or_create(appid=appid, userid=userid)
46 56
 
@@ -61,10 +71,42 @@ def qy_login_api(request):
61 71
     user.user_status = UserInfo.ACTIVATED
62 72
     user.signup_ip = client_ip(request)
63 73
     user.signup_at = tc.utc_datetime()
64
-    user.is_maintenance = userid in settings.QY_MAINTENANCE_USERID
74
+    user.phone = mobile
65 75
     user.save()
66 76
 
67 77
     # Store Userinfo
68 78
     set_profile_info(user)
69 79
 
70
-    return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.brandata(brand_id=brand_id))
80
+    # 维修员登录 (122 维修部部门ID)
81
+    if 122 in userinfo.get('department', []):
82
+        maintenance, created = MaintenancemanInfo.objects.get_or_create(brand_id=brand_id, maintenance_phone=mobile, status=True)
83
+        
84
+        if created:
85
+            maintenance.maintenance_name = userinfo.get('name', '')
86
+            maintenance.maintenance_sex = userinfo.get('gender', 0)
87
+            maintenance.maintenance_phone = mobile
88
+            maintenance.user_id = user.user_id
89
+            maintenance.save()        
90
+    else:
91
+        # 销售员登录
92
+        saleclerk, created = SaleclerkInfo.objects.get_or_create(brand_id=brand_id, clerk_phone=mobile, status=True)
93
+
94
+        if created:
95
+            try:
96
+                distributor = DistributorInfo.objects.get(department_id__in=userinfo.get('department', []))
97
+            except:
98
+                return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
99
+            
100
+            saleclerk.brand_id = brand_id
101
+            saleclerk.distributor_id = distributor.distributor_id
102
+            saleclerk.distributor_name = distributor.distributor_name
103
+            saleclerk.clerk_name = userinfo.get('name', '')
104
+            saleclerk.sex = userinfo.get('gender', 0)
105
+            saleclerk.clerk_phone = userinfo.get('mobile', '')
106
+            saleclerk.user_id = user.user_id
107
+            saleclerk.wx_userid = userid
108
+            saleclerk.user_status = SaleclerkInfo.ACTIVATED
109
+            saleclerk.is_auth = True
110
+            saleclerk.save()
111
+
112
+    return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.brand_qydata(brand_id=brand_id))

tonglan/adminSystem - Gogs: Go Git Service

1 Коммиты (11e3a9652a62b867d722e5aebdba895bb86f9ed3)

Автор SHA1 Сообщение Дата
  FFIB 11e3a9652a first лет %!s(int64=8): %!d(string=назад)