@@ -0,0 +1,19 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+from __future__ import unicode_literals |
|
3 |
+ |
|
4 |
+from django.db import models, migrations |
|
5 |
+ |
|
6 |
+ |
|
7 |
+class Migration(migrations.Migration): |
|
8 |
+ |
|
9 |
+ dependencies = [ |
|
10 |
+ ('account', '0021_auto_20161213_1639'), |
|
11 |
+ ] |
|
12 |
+ |
|
13 |
+ operations = [ |
|
14 |
+ migrations.AlterField( |
|
15 |
+ model_name='userinfo', |
|
16 |
+ name='user_from', |
|
17 |
+ field=models.IntegerField(default=0, help_text='\u7528\u6237\u6765\u6e90', verbose_name='user_from', choices=[(0, 'APP \u521b\u5efa\u7528\u6237'), (1, '\u5fae\u4fe1\u6388\u6743\u7528\u6237'), (9, '\u6e38\u5ba2\u7528\u6237'), (10, '\u6444\u5f71\u5e08\u7528\u6237'), (11, '\u5bfc\u6e38\u7528\u6237'), (12, '\u5c0f\u7a0b\u5e8f\u7528\u6237')]), |
|
18 |
+ ), |
|
19 |
+ ] |
@@ -232,6 +232,7 @@ class UserInfo(CreateUpdateMixin): |
||
232 | 232 |
GUEST_USER = 9 |
233 | 233 |
LENSMAN_USER = 10 |
234 | 234 |
TOURGUIDE_USER = 11 |
235 |
+ WEAPP_USER = 12 |
|
235 | 236 |
|
236 | 237 |
USER_FROM = ( |
237 | 238 |
(APP_USER, u'APP 创建用户'), |
@@ -239,6 +240,7 @@ class UserInfo(CreateUpdateMixin): |
||
239 | 240 |
(GUEST_USER, u'游客用户'), |
240 | 241 |
(LENSMAN_USER, u'摄影师用户'), |
241 | 242 |
(TOURGUIDE_USER, u'导游用户'), |
243 |
+ (WEAPP_USER, u'小程序用户'), |
|
242 | 244 |
) |
243 | 245 |
|
244 | 246 |
UNVERIFIED = 0 |
@@ -322,6 +324,8 @@ class UserInfo(CreateUpdateMixin): |
||
322 | 324 |
return self.name |
323 | 325 |
elif self.user_from == self.TOURGUIDE_USER: |
324 | 326 |
return self.name |
327 |
+ elif self.user_from == self.WEAPP_USER: |
|
328 |
+ return self.nickname |
|
325 | 329 |
return self.nickname |
326 | 330 |
|
327 | 331 |
@property |
@@ -22,7 +22,7 @@ urlpatterns = [ |
||
22 | 22 |
url(r'^u/signup$', account_views.user_signup_api, name='user_signup_api'), # 用户注册 |
23 | 23 |
url(r'^u/login$', account_views.user_login_api, name='user_login_api'), # 用户登录 |
24 | 24 |
|
25 |
- url(r'^u/wx/authorize$', account_views.user_wx_authorize_api, name='user_wx_authorize_api'), # 微信用户授权 |
|
25 |
+ url(r'^u/wx/authorize$', account_views.user_wx_authorize_api, name='user_wx_authorize_api'), # 用户端 - 微信用户授权 |
|
26 | 26 |
|
27 | 27 |
url(r'^u/guest/status$', account_views.guest_status_api, name='guest_status_api'), # 游客状态(是否开启) |
28 | 28 |
url(r'^u/guest/login$', account_views.guest_login_api, name='guest_login_api'), # 游客登录 |
@@ -33,7 +33,7 @@ urlpatterns += [ |
||
33 | 33 |
url(r'^l/submit$', lensman_views.lensman_submit_api, name='lensman_submit_api'), # 摄影师信息提交 |
34 | 34 |
url(r'^l/login$', lensman_views.lensman_login_api, name='lensman_login_api'), # 摄影师登录 |
35 | 35 |
|
36 |
- url(r'^l/wx/authorize$', lensman_views.lensman_wx_authorize_api, name='lensman_wx_authorize_api'), # 微信用户授权 |
|
36 |
+ url(r'^l/wx/authorize$', lensman_views.lensman_wx_authorize_api, name='lensman_wx_authorize_api'), # 摄影师端 - 微信用户授权 |
|
37 | 37 |
|
38 | 38 |
url(r'^l/price_fix$', lensman_views.lensman_price_fix_api, name='lensman_price_fix_api'), # 摄影师定价 |
39 | 39 |
|
@@ -48,7 +48,7 @@ urlpatterns += [ |
||
48 | 48 |
urlpatterns += [ |
49 | 49 |
url(r'^t/submit$', tourguide_views.tourguide_submit_api, name='tourguide_submit_api'), # 导游信息提交 |
50 | 50 |
|
51 |
- url(r'^t/wx/authorize$', tourguide_views.tourguide_wx_authorize_api, name='tourguide_wx_authorize_api'), # 微信用户授权 |
|
51 |
+ url(r'^t/wx/authorize$', tourguide_views.tourguide_wx_authorize_api, name='tourguide_wx_authorize_api'), # 导游端 - 微信用户授权 |
|
52 | 52 |
] |
53 | 53 |
|
54 | 54 |
# 群组相关 |
@@ -1,13 +1,16 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+from curtail_uuid import CurtailUUID |
|
3 | 4 |
from django.conf import settings |
4 | 5 |
from django.db import transaction |
6 |
+from ipaddr import client_ip |
|
5 | 7 |
from logit import logit |
6 | 8 |
from pywe_miniapp import get_userinfo |
9 |
+from TimeConvert import TimeConvert as tc |
|
7 | 10 |
|
8 | 11 |
from account.models import UserInfo |
9 |
-from utils.error.errno_utils import UserStatusCode |
|
10 | 12 |
from utils.error.response_utils import response |
13 |
+from utils.redis.rprofile import set_profile_info |
|
11 | 14 |
|
12 | 15 |
|
13 | 16 |
WECHAT = settings.WECHAT |
@@ -30,6 +33,35 @@ def get_userinfo_api(request): |
||
30 | 33 |
try: |
31 | 34 |
user = UserInfo.objects.select_for_update().get(unionid=userinfo.get('unionId', '')) |
32 | 35 |
except UserInfo.DoesNotExist: |
33 |
- return response(UserStatusCode.USER_NOT_FOUND) |
|
36 |
+ user = None |
|
37 |
+ |
|
38 |
+ if not user: |
|
39 |
+ # {u'avatarUrl': u'http://wx.qlogo.cn/mmopen/vi_32/aSKcBBPpibyKNicHNTMM0qJVh8Kjgiak2AHWr8MHM4WgMEm7GFhsf8OYrySdbvAMvTsw3mo8ibKicsnfN5pRjl1p8HQ/0', |
|
40 |
+ # u'city': u'Guangzhou', |
|
41 |
+ # u'country': u'CN', |
|
42 |
+ # u'gender': 1, |
|
43 |
+ # u'language': u'zh_CN', |
|
44 |
+ # u'nickName': u'Band', |
|
45 |
+ # u'openId': u'oGZUI0egBJY1zhBYw2KhdUfwVJJE', |
|
46 |
+ # u'province': u'Guangdong', |
|
47 |
+ # u'unionId': u'ocMvos6NjeKLIBqg5Mr9QjxrP1FA', |
|
48 |
+ # u'watermark': {u'appid': u'wx4f4bc4dec97d474b', u'timestamp': 1477314187}} |
|
49 |
+ user = UserInfo.objects.create( |
|
50 |
+ user_id=CurtailUUID.uuid(UserInfo, 'user_id'), |
|
51 |
+ user_from=UserInfo.WX_USER, |
|
52 |
+ openid=userinfo.get('openId', ''), |
|
53 |
+ unionid=userinfo.get('unionId', ''), |
|
54 |
+ sex=userinfo.get('gender', 0), |
|
55 |
+ nickname=userinfo.get('nickName', ''), |
|
56 |
+ avatar=userinfo.get('avatarUrl', ''), |
|
57 |
+ country=userinfo.get('country', ''), |
|
58 |
+ province=userinfo.get('province', ''), |
|
59 |
+ city=userinfo.get('city', ''), |
|
60 |
+ user_status=UserInfo.ACTIVATED, |
|
61 |
+ signup_ip=client_ip(request), |
|
62 |
+ signup_at=tc.utc_datetime(), |
|
63 |
+ ) |
|
64 |
+ |
|
65 |
+ set_profile_info(user) |
|
34 | 66 |
|
35 | 67 |
return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.data) |