@@ -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)  |