span rel="">
+ except UserInfo.DoesNotExist:
+ user = None
+
+ if user:
+ return JsonResponse({
+ 'status': 200,
+ 'message': u'登录成功',
+ 'data': user.data,
+ })
+
+ # wx_uid 不存在
+ # 判断 user_id 是否存在并且为分配用户,如果存在并且为分配用户,则直接在该帐户上更新,否则则直接创建帐户
+ sex = request.POST.get('sex', 0)
+ nickname = request.POST.get('nickname', '') or request.POST.get('screen_name', '')
+ avatar = request.POST.get('headimgurl', '') or request.POST.get('profile_image_url', '')
+ country = request.POST.get('country', '')
+ province = request.POST.get('province', '')
+ city = request.POST.get('city', '')
+
+ signup_ip, signup_at = ip_addr(request), tc.utc_datetime()
+
+ try:
+ user = UserInfo.objects.get(user_id=user_id)
+ except UserInfo.DoesNotExist:
+ user = None
+
+ if user and user.user_status == UserInfo.ASSIGN:
+ user.user_from = UserInfo.WX_USER
+ user.wx_uid = wx_uid
+ user.sex = sex
+ user.nickname = nickname
+ user.avatar = avatar
+ user.country = country
+ user.province = province
+ user.city = city
+ user.signup_ip = signup_ip
+ user.signup_at = signup_at
+ user.save()
+ else:
+ user = UserInfo.objects.create(
+ user_id=CurtailUUID.uuid(UserInfo, 'user_id'),
+ user_from=UserInfo.WX_USER,
+ sex=sex,
+ nickname=nickname,
+ avatar=avatar,
+ country=country,
+ province=province,
+ city=city,
+ user_status=UserInfo.ACTIVATED,
+ signup_ip=signup_ip,
+ signup_at=signup_at,
+ )
+
+ return JsonResponse({
+ 'status': 200,
+ 'message': u'登录成功',
+ 'data': user.data,
+ })
+
+
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
@@ -8,10 +8,12 @@ from photo import views as photo_views |
||
| 8 | 8 |
|
| 9 | 9 |
|
| 10 | 10 |
urlpatterns = [ |
| 11 |
- url(r'^login$', account_views.lesman_login_api, name='lesman_login_api'), |
|
| 11 |
+ url(r'^login$', account_views.lesman_login_api, name='lesman_login_api'), # 摄影师登录 |
|
| 12 | 12 |
url(r'^u/is_registered$', account_views.user_is_registered_api, name='user_is_registered_api'), # 用户是否已经注册 |
| 13 | 13 |
url(r'^u/signup$', account_views.user_signup_api, name='user_signup_api'), # 用户注册 |
| 14 | 14 |
url(r'^u/login$', account_views.user_login_api, name='user_login_api'), # 用户登录 |
| 15 |
+ |
|
| 16 |
+ url(r'^u/wx/authorize$', account_views.wx_authorize_api, name='wx_authorize_api'), # 用户登录 |
|
| 15 | 17 |
] |
| 16 | 18 |
|
| 17 | 19 |
urlpatterns += [ |
@@ -43,7 +43,7 @@ def group_create_api(request): |
||
| 43 | 43 |
GroupUserInfo.objects.create( |
| 44 | 44 |
group_id=group_id, |
| 45 | 45 |
user_id=user_id, |
| 46 |
- nickname=user.username, |
|
| 46 |
+ nickname=user.final_nickname, |
|
| 47 | 47 |
admin=True, |
| 48 | 48 |
user_status=GroupUserInfo.PASSED, |
| 49 | 49 |
passed_at=tc.utc_datetime(), |
@@ -172,7 +172,7 @@ def group_join_api(request): |
||
| 172 | 172 |
group_id=group_id, |
| 173 | 173 |
user_id=user_id, |
| 174 | 174 |
current_id=group_photo and group_photo.id or -1, |
| 175 |
- nickname=nickname or user.username, |
|
| 175 |
+ nickname=nickname or user.final_nickname, |
|
| 176 | 176 |
admin=False, |
| 177 | 177 |
user_status=GroupUserInfo.PASSED, |
| 178 | 178 |
passed_at=tc.utc_datetime(), |
@@ -123,50 +123,94 @@ def upload_photo(request): |
||
| 123 | 123 |
def session_detail_api(request, session): |
| 124 | 124 |
user_id = request.POST.get('user_id', '')
|
| 125 | 125 |
|
| 126 |
- try: |
|
| 127 |
- user = UserInfo.objects.get(user_id=user_id) |
|
| 128 |
- user_id = user.user_id |
|
| 129 |
- except UserInfo.DoesNotExist: |
|
| 130 |
- user_id = CurtailUUID.uuid(UserInfo, 'user_id') |
|
| 131 |
- user = UserInfo.objects.create( |
|
| 132 |
- user_id=user_id, |
|
| 133 |
- user_status=UserInfo.ASSIGN, |
|
| 134 |
- signup_ip=ip_addr(request), |
|
| 135 |
- ) |
|
| 126 |
+ # 判断 user_id 是否存在,如果不存在,则直接分配帐户 |
|
| 127 |
+ user, created = UserInfo.objects.get_or_create(user_id=user_id, defaults={
|
|
| 128 |
+ 'user_id': CurtailUUID.uuid(UserInfo, 'user_id'), |
|
| 129 |
+ 'user_status': UserInfo.ASSIGN, |
|
| 130 |
+ 'assign_ip': ip_addr(request), |
|
| 131 |
+ 'assign_at': tc.utc_datetime(), |
|
| 132 |
+ }) |
|
| 133 |
+ # try: |
|
| 134 |
+ # user = UserInfo.objects.get(user_id=user_id) |
|
| 135 |
+ # except UserInfo.DoesNotExist: |
|
| 136 |
+ # user = None |
|
| 137 |
+ # |
|
| 138 |
+ # if not user: |
|
| 139 |
+ # assign_ip, assign_at = ip_addr(request), tc.utc_datetime() |
|
| 140 |
+ # user = UserInfo.objects.create( |
|
| 141 |
+ # user_id=CurtailUUID.uuid(UserInfo, 'user_id'), |
|
| 142 |
+ # user_status=UserInfo.ASSIGN, |
|
| 143 |
+ # assign_ip=assign_ip, |
|
| 144 |
+ # assign_at=assign_at, |
|
| 145 |
+ # ) |
|
| 146 |
+ |
|
| 147 |
+ user_id = user.user_id |
|
| 148 |
+ |
|
| 149 |
+ # 判断通过 session_id 创建的群组是否存在,如果不存在,则直接创建 |
|
| 150 |
+ group, created = GroupInfo.objects.get_or_create(session_id=session, defaults={
|
|
| 151 |
+ 'group_id': CurtailUUID.uuid(GroupInfo, 'group_id'), |
|
| 152 |
+ 'admin_id': user_id, |
|
| 153 |
+ 'group_from': GroupInfo.SESSION_GROUP, |
|
| 154 |
+ 'session_id': session, |
|
| 155 |
+ }) |
|
| 156 |
+ # try: |
|
| 157 |
+ # group = GroupInfo.objects.get(session_id=session) |
|
| 158 |
+ # except GroupInfo.DoesNotExist: |
|
| 159 |
+ # group = None |
|
| 160 |
+ # |
|
| 161 |
+ # if not group: |
|
| 162 |
+ # group = GroupInfo.objects.create( |
|
| 163 |
+ # group_id=CurtailUUID.uuid(GroupInfo, 'group_id'), |
|
| 164 |
+ # admin_id=user_id, |
|
| 165 |
+ # group_from=GroupInfo.SESSION_GROUP, |
|
| 166 |
+ # session_id=session, |
|
| 167 |
+ # ) |
|
| 168 |
+ |
|
| 169 |
+ group_id = group.group_id |
|
| 170 |
+ |
|
| 171 |
+ # 判断 group_id/user_id 的群组用户是否存在,如果不存在,则直接创建 |
|
| 172 |
+ group_photo = GroupPhotoInfo.objects.filter(group_id=group_id).last() |
|
| 173 |
+ group_user = GroupUserInfo.objects.get_or_create(group_id=group_id, user_id=user_id, defaults={
|
|
| 174 |
+ 'current_id': group_photo and group_photo.id or -1, |
|
| 175 |
+ 'nickname': user.final_nickname, |
|
| 176 |
+ 'admin': False, |
|
| 177 |
+ 'user_status': GroupUserInfo.PASSED, |
|
| 178 |
+ 'passed_at': tc.utc_datetime(), |
|
| 179 |
+ }) |
|
| 136 | 180 |
|
| 137 |
- try: |
|
| 138 |
- group = GroupInfo.objects.get(session_id=session) |
|
| 139 |
- group_id = group.group_id |
|
| 140 |
- group_photo = GroupPhotoInfo.objects.filter(group_id=group_id).last() |
|
| 141 |
- if not GroupUserInfo.objects.filter( |
|
| 142 |
- group_id=group_id, |
|
| 143 |
- user_id=user_id |
|
| 144 |
- ).exists(): |
|
| 145 |
- GroupUserInfo.objects.create( |
|
| 146 |
- group_id=group_id, |
|
| 147 |
- user_id=user_id, |
|
| 148 |
- current_id=group_photo and group_photo.id or -1, |
|
| 149 |
- nickname=user.username, |
|
| 150 |
- admin=False, |
|
| 151 |
- user_status=GroupUserInfo.PASSED, |
|
| 152 |
- passed_at=tc.utc_datetime(), |
|
| 153 |
- ) |
|
| 154 |
- except GroupInfo.DoesNotExist: |
|
| 155 |
- group_id = CurtailUUID.uuid(GroupInfo, 'group_id') |
|
| 156 |
- group = GroupInfo.objects.create( |
|
| 157 |
- group_id=group_id, |
|
| 158 |
- admin_id=user_id, |
|
| 159 |
- group_from=GroupInfo.SESSION_GROUP, |
|
| 160 |
- session_id=session, |
|
| 161 |
- ) |
|
| 162 |
- GroupUserInfo.objects.create( |
|
| 163 |
- group_id=group_id, |
|
| 164 |
- user_id=user_id, |
|
| 165 |
- nickname=user.username, |
|
| 166 |
- admin=True, |
|
| 167 |
- user_status=GroupUserInfo.PASSED, |
|
| 168 |
- passed_at=tc.utc_datetime(), |
|
| 169 |
- ) |
|
| 181 |
+ # try: |
|
| 182 |
+ # group = GroupInfo.objects.get(session_id=session) |
|
| 183 |
+ # group_id = group.group_id |
|
| 184 |
+ # group_photo = GroupPhotoInfo.objects.filter(group_id=group_id).last() |
|
| 185 |
+ # if not GroupUserInfo.objects.filter( |
|
| 186 |
+ # group_id=group_id, |
|
| 187 |
+ # user_id=user_id |
|
| 188 |
+ # ).exists(): |
|
| 189 |
+ # GroupUserInfo.objects.create( |
|
| 190 |
+ # group_id=group_id, |
|
| 191 |
+ # user_id=user_id, |
|
| 192 |
+ # current_id=group_photo and group_photo.id or -1, |
|
| 193 |
+ # nickname=user.username, |
|
| 194 |
+ # admin=False, |
|
| 195 |
+ # user_status=GroupUserInfo.PASSED, |
|
| 196 |
+ # passed_at=tc.utc_datetime(), |
|
| 197 |
+ # ) |
|
| 198 |
+ # except GroupInfo.DoesNotExist: |
|
| 199 |
+ # group_id = CurtailUUID.uuid(GroupInfo, 'group_id') |
|
| 200 |
+ # group = GroupInfo.objects.create( |
|
| 201 |
+ # group_id=group_id, |
|
| 202 |
+ # admin_id=user_id, |
|
| 203 |
+ # group_from=GroupInfo.SESSION_GROUP, |
|
| 204 |
+ # session_id=session, |
|
| 205 |
+ # ) |
|
| 206 |
+ # GroupUserInfo.objects.create( |
|
| 207 |
+ # group_id=group_id, |
|
| 208 |
+ # user_id=user_id, |
|
| 209 |
+ # nickname=user.username, |
|
| 210 |
+ # admin=True, |
|
| 211 |
+ # user_status=GroupUserInfo.PASSED, |
|
| 212 |
+ # passed_at=tc.utc_datetime(), |
|
| 213 |
+ # ) |
|
| 170 | 214 |
|
| 171 | 215 |
photos = PhotosInfo.objects.filter(session_id=session) |
| 172 | 216 |
return JsonResponse({
|