| @@ -160,7 +160,7 @@ def lensman_photo_upload_api(request): | ||
| 160 | 160 | # 判断通过 session_id 创建的群组是否存在,如果不存在,则直接创建 | 
| 161 | 161 |          group, group_created = GroupInfo.objects.get_or_create(session_id=session_id, group_from=GroupInfo.SESSION_GROUP, defaults={ | 
| 162 | 162 | 'group_id': CurtailUUID.uuid(GroupInfo, 'group_id'), | 
| 163 | - 'admin_id': user_id, | |
| 163 | + # 'admin_id': user_id, # 摄影师非管理员,首个扫码进群的用户为管理员 | |
| 164 | 164 | 'group_name': user.final_nickname, | 
| 165 | 165 | 'group_default_avatar': 0, | 
| 166 | 166 | }) | 
| @@ -100,6 +100,7 @@ def upload_photo(request): | ||
| 100 | 100 |  | 
| 101 | 101 |  | 
| 102 | 102 | @logit | 
| 103 | +@transaction.atomic | |
| 103 | 104 | def session_join_api(request): | 
| 104 | 105 | """ Session 详情 """ | 
| 105 | 106 |      user_id = request.POST.get('user_id', '') | 
| @@ -124,9 +125,9 @@ def session_join_api(request): | ||
| 124 | 125 | user_id = user.user_id | 
| 125 | 126 |  | 
| 126 | 127 | # 判断通过 session_id 创建的群组是否存在,如果不存在,则直接创建 | 
| 127 | -    group, group_created = GroupInfo.objects.get_or_create(session_id=session_id, group_from=GroupInfo.SESSION_GROUP, defaults={ | |
| 128 | +    group, group_created = GroupInfo.objects.select_for_update().get_or_create(session_id=session_id, group_from=GroupInfo.SESSION_GROUP, defaults={ | |
| 128 | 129 | 'group_id': CurtailUUID.uuid(GroupInfo, 'group_id'), | 
| 129 | - 'admin_id': lensman_id, | |
| 130 | + # 'admin_id': lensman_id, | |
| 130 | 131 | 'group_name': lensman.final_nickname, | 
| 131 | 132 | 'group_default_avatar': 0, | 
| 132 | 133 | }) | 
| @@ -141,7 +142,7 @@ def session_join_api(request): | ||
| 141 | 142 | 'current_id': current_id, # 通过扫描 session_id 二维码进群的用户,默认可以查看该群组所有照片 | 
| 142 | 143 | 'nickname': nickname or user.final_nickname, | 
| 143 | 144 | 'avatar': user.avatar, | 
| 144 | - 'admin': group_created, | |
| 145 | + # 'admin': group_created, | |
| 145 | 146 | 'user_status': GroupUserInfo.PASSED, | 
| 146 | 147 | 'passed_at': tc.utc_datetime(), | 
| 147 | 148 | }) | 
| @@ -150,6 +151,14 @@ def session_join_api(request): | ||
| 150 | 151 | group_user.user_status = GroupUserInfo.PASSED | 
| 151 | 152 | group_user.save() | 
| 152 | 153 |  | 
| 154 | + # 管理员处理 | |
| 155 | + tobe_admin = not GroupUserInfo.objects.filter(admin=True, status=True).exists() | |
| 156 | + if tobe_admin: | |
| 157 | + group.admin_id = user_id | |
| 158 | + group.save() | |
| 159 | + group_user.admin = True | |
| 160 | + group_user.save() | |
| 161 | + | |
| 153 | 162 | # Redis 群组用户数据缓存 | 
| 154 | 163 | group_users = set_group_users_info(group) | 
| 155 | 164 |  | 
| @@ -211,7 +220,7 @@ def session_join_api(request): | ||
| 211 | 220 | ) | 
| 212 | 221 | latest_photo = group_photos.first() | 
| 213 | 222 |  | 
| 214 | -    return response(200, 'Apply Success', u'申请成功', { | |
| 223 | +    return response(200, 'Apply Join Session Group Success', u'申请加入摄影师群成功', { | |
| 215 | 224 | 'current_id': latest_photo and latest_photo.pk or current_id, | 
| 216 | 225 | 'photos': [photo.photo_info(user_id) for photo in group_photos], | 
| 217 | 226 | 'group_id': group_id, |