@@ -0,0 +1,120 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+ |
|
| 3 |
+from curtail_uuid import CurtailUUID |
|
| 4 |
+from django.contrib.auth.models import Group, User |
|
| 5 |
+from django.db import transaction |
|
| 6 |
+from django_response import response |
|
| 7 |
+from ipaddr import client_ip |
|
| 8 |
+from logit import logit |
|
| 9 |
+from rest_framework import viewsets |
|
| 10 |
+from TimeConvert import TimeConvert as tc |
|
| 11 |
+ |
|
| 12 |
+from account.models import LensmanInfo, UserInfo |
|
| 13 |
+from account.serializers import GroupSerializer, LensmanInfoSerializer, UserInfoSerializer, UserSerializer |
|
| 14 |
+from operation.models import GuestEntranceControlInfo |
|
| 15 |
+from utils.error.errno_utils import UserStatusCode |
|
| 16 |
+from utils.redis.rguest import get_guest_entrance_control |
|
| 17 |
+from utils.redis.rprofile import set_profile_info |
|
| 18 |
+from utils.version_utils import is_version_match |
|
| 19 |
+ |
|
| 20 |
+ |
|
| 21 |
+@logit |
|
| 22 |
+@transaction.atomic |
|
| 23 |
+def user_wx_authorize_api(request): |
|
| 24 |
+ # Get or Create User |
|
| 25 |
+ user, created = UserInfo.objects.select_for_update().get_or_create(unionid=request.POST.get('unionid', ''))
|
|
| 26 |
+ |
|
| 27 |
+ # Set User_id |
|
| 28 |
+ if created: |
|
| 29 |
+ user.user_id = CurtailUUID.uuid(UserInfo, 'user_id') |
|
| 30 |
+ |
|
| 31 |
+ # Set User Key's Value |
|
| 32 |
+ user.user_from = UserInfo.USER_USER |
|
| 33 |
+ user.openid = request.POST.get('wx_uid', '')
|
|
| 34 |
+ user.sex = request.POST.get('sex', 0)
|
|
| 35 |
+ user.nickname = request.POST.get('nickname', '') or request.POST.get('screen_name', '')
|
|
| 36 |
+ user.avatar = request.POST.get('headimgurl', '') or request.POST.get('profile_image_url', '')
|
|
| 37 |
+ user.country = request.POST.get('country', '')
|
|
| 38 |
+ user.province = request.POST.get('province', '')
|
|
| 39 |
+ user.city = request.POST.get('city', '')
|
|
| 40 |
+ user.user_status = UserInfo.ACTIVATED |
|
| 41 |
+ user.signup_ip = client_ip(request) |
|
| 42 |
+ user.signup_at = tc.utc_datetime() |
|
| 43 |
+ user.save() |
|
| 44 |
+ |
|
| 45 |
+ set_profile_info(user) |
|
| 46 |
+ |
|
| 47 |
+ return response(200, 'User Login Success', u'用户端登录成功', user.data) |
|
| 48 |
+ |
|
| 49 |
+ |
|
| 50 |
+@logit |
|
| 51 |
+@transaction.atomic |
|
| 52 |
+def user_guest_login_api(request): |
|
| 53 |
+ """ 游客登录 """ |
|
| 54 |
+ gen = get_guest_entrance_control() |
|
| 55 |
+ |
|
| 56 |
+ # 是否配置游客入口控制信息 |
|
| 57 |
+ if not gen: |
|
| 58 |
+ return response(UserStatusCode.GUEST_NOT_ALLOWED) |
|
| 59 |
+ |
|
| 60 |
+ # 平台校验 |
|
| 61 |
+ platform = gen.get('platform', '')
|
|
| 62 |
+ if request.Android: |
|
| 63 |
+ if platform not in [GuestEntranceControlInfo.ADR, GuestEntranceControlInfo.BOTH]: |
|
| 64 |
+ return response(UserStatusCode.GUEST_NOT_ALLOWED) |
|
| 65 |
+ else: |
|
| 66 |
+ if platform not in [GuestEntranceControlInfo.IOS, GuestEntranceControlInfo.BOTH]: |
|
| 67 |
+ return response(UserStatusCode.GUEST_NOT_ALLOWED) |
|
| 68 |
+ |
|
| 69 |
+ # 版本校验 |
|
| 70 |
+ if not is_version_match(request, gen): |
|
| 71 |
+ return response(UserStatusCode.GUEST_NOT_ALLOWED) |
|
| 72 |
+ |
|
| 73 |
+ # 通用唯一识别码 (Universally Unique Identifier) |
|
| 74 |
+ uuid = request.POST.get('uuid', '')
|
|
| 75 |
+ # 游客字段 |
|
| 76 |
+ fields = {
|
|
| 77 |
+ 'user_id': CurtailUUID.uuid(UserInfo, 'user_id'), |
|
| 78 |
+ 'user_from': UserInfo.GUEST_USER, |
|
| 79 |
+ 'uuid': uuid, |
|
| 80 |
+ 'nickname': u'游客', |
|
| 81 |
+ 'user_status': UserInfo.ACTIVATED, |
|
| 82 |
+ } |
|
| 83 |
+ # 若 uuid 存在,则 get_or_create,否则 create |
|
| 84 |
+ if uuid: |
|
| 85 |
+ user, created = UserInfo.objects.select_for_update().get_or_create(user_from=UserInfo.GUEST_USER, uuid=uuid, defaults=fields) |
|
| 86 |
+ if created: |
|
| 87 |
+ user.nickname = u'游客{}'.format(user.pk)
|
|
| 88 |
+ user.save() |
|
| 89 |
+ else: |
|
| 90 |
+ user = UserInfo.objects.select_for_update().create(**fields) |
|
| 91 |
+ user.nickname = u'游客{}'.format(user.pk)
|
|
| 92 |
+ user.save() |
|
| 93 |
+ |
|
| 94 |
+ return response(200, 'Guest Login Success', u'游客登录成功', user.data) |
|
| 95 |
+ |
|
| 96 |
+ |
|
| 97 |
+class UserViewSet(viewsets.ModelViewSet): |
|
| 98 |
+ """ |
|
| 99 |
+ API endpoint that allows users to be viewed or edited. |
|
| 100 |
+ """ |
|
| 101 |
+ queryset = User.objects.all().order_by('-pk')
|
|
| 102 |
+ serializer_class = UserSerializer |
|
| 103 |
+ |
|
| 104 |
+ |
|
| 105 |
+class GroupViewSet(viewsets.ModelViewSet): |
|
| 106 |
+ """ |
|
| 107 |
+ API endpoint that allows groups to be viewed or edited. |
|
| 108 |
+ """ |
|
| 109 |
+ queryset = Group.objects.all() |
|
| 110 |
+ serializer_class = GroupSerializer |
|
| 111 |
+ |
|
| 112 |
+ |
|
| 113 |
+class LensmanInfoViewSet(viewsets.ModelViewSet): |
|
| 114 |
+ queryset = LensmanInfo.objects.all().order_by('-pk')
|
|
| 115 |
+ serializer_class = LensmanInfoSerializer |
|
| 116 |
+ |
|
| 117 |
+ |
|
| 118 |
+class UserInfoViewSet(viewsets.ModelViewSet): |
|
| 119 |
+ queryset = UserInfo.objects.all().order_by('-pk')
|
|
| 120 |
+ serializer_class = UserInfoSerializer |
@@ -1,120 +1,7 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 |
+from __future__ import unicode_literals |
|
| 2 | 3 |
|
| 3 |
-from curtail_uuid import CurtailUUID |
|
| 4 |
-from django.contrib.auth.models import Group, User |
|
| 5 |
-from django.db import transaction |
|
| 6 |
-from django_response import response |
|
| 7 |
-from ipaddr import client_ip |
|
| 8 |
-from logit import logit |
|
| 9 |
-from rest_framework import viewsets |
|
| 10 |
-from TimeConvert import TimeConvert as tc |
|
| 4 |
+from django.shortcuts import render |
|
| 11 | 5 |
|
| 12 |
-from account.models import LensmanInfo, UserInfo |
|
| 13 |
-from account.serializers import GroupSerializer, LensmanInfoSerializer, UserInfoSerializer, UserSerializer |
|
| 14 |
-from operation.models import GuestEntranceControlInfo |
|
| 15 |
-from utils.error.errno_utils import UserStatusCode |
|
| 16 |
-from utils.redis.rguest import get_guest_entrance_control |
|
| 17 |
-from utils.redis.rprofile import set_profile_info |
|
| 18 |
-from utils.version_utils import is_version_match |
|
| 19 | 6 |
|
| 20 |
- |
|
| 21 |
-@logit |
|
| 22 |
-@transaction.atomic |
|
| 23 |
-def user_wx_authorize_api(request): |
|
| 24 |
- # Get or Create User |
|
| 25 |
- user, created = UserInfo.objects.select_for_update().get_or_create(unionid=request.POST.get('unionid', ''))
|
|
| 26 |
- |
|
| 27 |
- # Set User_id |
|
| 28 |
- if created: |
|
| 29 |
- user.user_id = CurtailUUID.uuid(UserInfo, 'user_id') |
|
| 30 |
- |
|
| 31 |
- # Set User Key's Value |
|
| 32 |
- user.user_from = UserInfo.USER_USER |
|
| 33 |
- user.openid = request.POST.get('wx_uid', '')
|
|
| 34 |
- user.sex = request.POST.get('sex', 0)
|
|
| 35 |
- user.nickname = request.POST.get('nickname', '') or request.POST.get('screen_name', '')
|
|
| 36 |
- user.avatar = request.POST.get('headimgurl', '') or request.POST.get('profile_image_url', '')
|
|
| 37 |
- user.country = request.POST.get('country', '')
|
|
| 38 |
- user.province = request.POST.get('province', '')
|
|
| 39 |
- user.city = request.POST.get('city', '')
|
|
| 40 |
- user.user_status = UserInfo.ACTIVATED |
|
| 41 |
- user.signup_ip = client_ip(request) |
|
| 42 |
- user.signup_at = tc.utc_datetime() |
|
| 43 |
- user.save() |
|
| 44 |
- |
|
| 45 |
- set_profile_info(user) |
|
| 46 |
- |
|
| 47 |
- return response(200, 'User Login Success', u'用户端登录成功', user.data) |
|
| 48 |
- |
|
| 49 |
- |
|
| 50 |
-@logit |
|
| 51 |
-@transaction.atomic |
|
| 52 |
-def user_guest_login_api(request): |
|
| 53 |
- """ 游客登录 """ |
|
| 54 |
- gen = get_guest_entrance_control() |
|
| 55 |
- |
|
| 56 |
- # 是否配置游客入口控制信息 |
|
| 57 |
- if not gen: |
|
| 58 |
- return response(UserStatusCode.GUEST_NOT_ALLOWED) |
|
| 59 |
- |
|
| 60 |
- # 平台校验 |
|
| 61 |
- platform = gen.get('platform', '')
|
|
| 62 |
- if request.Android: |
|
| 63 |
- if platform not in [GuestEntranceControlInfo.ADR, GuestEntranceControlInfo.BOTH]: |
|
| 64 |
- return response(UserStatusCode.GUEST_NOT_ALLOWED) |
|
| 65 |
- else: |
|
| 66 |
- if platform not in [GuestEntranceControlInfo.IOS, GuestEntranceControlInfo.BOTH]: |
|
| 67 |
- return response(UserStatusCode.GUEST_NOT_ALLOWED) |
|
| 68 |
- |
|
| 69 |
- # 版本校验 |
|
| 70 |
- if not is_version_match(request, gen): |
|
| 71 |
- return response(UserStatusCode.GUEST_NOT_ALLOWED) |
|
| 72 |
- |
|
| 73 |
- # 通用唯一识别码 (Universally Unique Identifier) |
|
| 74 |
- uuid = request.POST.get('uuid', '')
|
|
| 75 |
- # 游客字段 |
|
| 76 |
- fields = {
|
|
| 77 |
- 'user_id': CurtailUUID.uuid(UserInfo, 'user_id'), |
|
| 78 |
- 'user_from': UserInfo.GUEST_USER, |
|
| 79 |
- 'uuid': uuid, |
|
| 80 |
- 'nickname': u'游客', |
|
| 81 |
- 'user_status': UserInfo.ACTIVATED, |
|
| 82 |
- } |
|
| 83 |
- # 若 uuid 存在,则 get_or_create,否则 create |
|
| 84 |
- if uuid: |
|
| 85 |
- user, created = UserInfo.objects.select_for_update().get_or_create(user_from=UserInfo.GUEST_USER, uuid=uuid, defaults=fields) |
|
| 86 |
- if created: |
|
| 87 |
- user.nickname = u'游客{}'.format(user.pk)
|
|
| 88 |
- user.save() |
|
| 89 |
- else: |
|
| 90 |
- user = UserInfo.objects.select_for_update().create(**fields) |
|
| 91 |
- user.nickname = u'游客{}'.format(user.pk)
|
|
| 92 |
- user.save() |
|
| 93 |
- |
|
| 94 |
- return response(200, 'Guest Login Success', u'游客登录成功', user.data) |
|
| 95 |
- |
|
| 96 |
- |
|
| 97 |
-class UserViewSet(viewsets.ModelViewSet): |
|
| 98 |
- """ |
|
| 99 |
- API endpoint that allows users to be viewed or edited. |
|
| 100 |
- """ |
|
| 101 |
- queryset = User.objects.all().order_by('-pk')
|
|
| 102 |
- serializer_class = UserSerializer |
|
| 103 |
- |
|
| 104 |
- |
|
| 105 |
-class GroupViewSet(viewsets.ModelViewSet): |
|
| 106 |
- """ |
|
| 107 |
- API endpoint that allows groups to be viewed or edited. |
|
| 108 |
- """ |
|
| 109 |
- queryset = Group.objects.all() |
|
| 110 |
- serializer_class = GroupSerializer |
|
| 111 |
- |
|
| 112 |
- |
|
| 113 |
-class LensmanInfoViewSet(viewsets.ModelViewSet): |
|
| 114 |
- queryset = LensmanInfo.objects.all().order_by('-pk')
|
|
| 115 |
- serializer_class = LensmanInfoSerializer |
|
| 116 |
- |
|
| 117 |
- |
|
| 118 |
-class UserInfoViewSet(viewsets.ModelViewSet): |
|
| 119 |
- queryset = UserInfo.objects.all().order_by('-pk')
|
|
| 120 |
- serializer_class = UserInfoSerializer |
|
| 7 |
+# Create your views here. |
@@ -2,8 +2,7 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from django.conf.urls import url |
| 4 | 4 |
|
| 5 |
-from account import tourguide_views |
|
| 6 |
-from account import views as account_views |
|
| 5 |
+from account import account_views, tourguide_views |
|
| 7 | 6 |
from api import encrypt_views, mch_views |
| 8 | 7 |
from box import views as box_views |
| 9 | 8 |
from geo import views as geo_views |
@@ -21,7 +21,7 @@ from django.conf.urls.static import static |
||
| 21 | 21 |
from django.contrib import admin |
| 22 | 22 |
from rest_framework import routers |
| 23 | 23 |
|
| 24 |
-from account import views as account_views |
|
| 24 |
+from account import account_views |
|
| 25 | 25 |
from group import group_views, grouppage_views |
| 26 | 26 |
from miniapp import views as mini_views |
| 27 | 27 |
from photo import views as photo_views |