td class="lines-code">
- 'photos': curinfo.get('photos', ''),
- 'group_id': group_id,
- 'group': get_group_info(group_id),
- 'user_id': user_id,
- 'users': get_group_users_info(group_id, user_id),
- })
-
-
-@logit
def group_lock_api(request):
""" 群组锁定 """
group_id = request.POST.get('group_id', '')
@@ -287,169 +228,6 @@ def group_unlock_api(request):
@logit
-def group_remove_api(request):
- """ 成员移除 """
- group_id = request.POST.get('group_id', '')
- admin_id = request.POST.get('admin_id', '')
- user_id = request.POST.get('user_id', '')
-
- # 群组校验
- try:
- group = GroupInfo.objects.get(group_id=group_id)
- except GroupInfo.DoesNotExist:
- return response(GroupStatusCode.GROUP_NOT_FOUND)
-
- # 权限校验
- if group.admin_id != admin_id or group.admin_id == user_id: # 管理员也不允许将自己移除
- return response(GroupStatusCode.NO_REMOVE_PERMISSION)
-
- # 群组用户校验
- try:
- group_user = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, user_status=GroupUserInfo.PASSED)
- except GroupUserInfo.DoesNotExist:
- return response(GroupUserStatusCode.GROUP_USER_NOT_FOUND)
-
- # 群组用户移除
- group_user.user_status = GroupUserInfo.DELETED
- group_user.deleted_at = tc.utc_datetime()
- group_user.save()
-
- # Redis 群组数据缓存更新
- group_users = set_group_users_info(group)
-
- # Redis 群组删除集合缓存
- r.srem(GROUP_USERS_PASSED_SET % group_id, user_id)
- r.sadd(GROUP_USERS_DELETED_SET % group_id, user_id)
-
- return response(200, 'Remove Success', u'用户移除成功', {
- 'group_id': group_id,
- 'users': group_users,
- })
-
-
-@logit
-def group_quit_api(request):
- """ 成员退出 """
- group_id = request.POST.get('group_id', '')
- user_id = request.POST.get('user_id', '')
-
- # 群组校验
- try:
- group = GroupInfo.objects.get(group_id=group_id)
- except GroupInfo.DoesNotExist:
- return response(GroupStatusCode.GROUP_NOT_FOUND)
-
- # 权限校验
- if group.admin_id == user_id: # 管理员也不允许自己退出
- return response(GroupStatusCode.NO_QUIT_PERMISSION)
-
- # 群组用户校验
- try:
- group_user = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, user_status=GroupUserInfo.PASSED)
- except GroupUserInfo.DoesNotExist:
- return response(GroupUserStatusCode.GROUP_USER_NOT_FOUND)
-
- # 群组用户移除
- group_user.user_status = GroupUserInfo.QUIT
- group_user.quit_at = tc.utc_datetime()
- group_user.save()
-
- # Redis 群组数据缓存更新
- group_users = set_group_users_info(group)
-
- # Redis 群组删除集合缓存
- r.srem(GROUP_USERS_PASSED_SET % group_id, user_id)
- r.sadd(GROUP_USERS_QUIT_SET % group_id, user_id)
-
- return response(200, 'Quit Success', u'用户退出成功', {
- 'group_id': group_id,
- 'users': group_users,
- })
-
-
-@logit
-def group_pass_api(request):
- """ 申请通过 """
- group_id = request.POST.get('group_id', '')
- admin_id = request.POST.get('admin_id', '')
- user_id = request.POST.get('user_id', '')
-
- # 群组校验
- try:
- group = GroupInfo.objects.get(group_id=group_id)
- except GroupInfo.DoesNotExist:
- return response(GroupStatusCode.GROUP_NOT_FOUND)
-
- # 权限校验
- if group.admin_id != admin_id:
- return response(GroupStatusCode.NO_PASS_PERMISSION)
-
- # 群组用户校验
- try:
- group_user = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, user_status=GroupUserInfo.APPLYING)
- except GroupUserInfo.DoesNotExist:
- return response(GroupStatusCode.JOIN_REQUEST_NOT_FOUND)
-
- # 群组用户通过
- group_user.user_status = GroupUserInfo.PASSED
- group_user.passed_at = tc.utc_datetime()
- group_user.save()
-
- # Redis 群组数据缓存更新
- group_users = set_group_users_info(group)
-
- # Redis 群组通过集合缓存
- r.srem(GROUP_USERS_APPLYING_SET % group_id, user_id)
- r.sadd(GROUP_USERS_PASSED_SET % group_id, user_id)
-
- return response(200, 'Pass Success', u'申请通过成功', {
- 'group_id': group_id,
- 'users': group_users,
- })
-
-
-@logit
-def group_refuse_api(request):
- """ 申请拒绝 """
- group_id = request.POST.get('group_id', '')
- admin_id = request.POST.get('admin_id', '')
- user_id = request.POST.get('user_id', '')
-
- # 群组校验
- try:
- group = GroupInfo.objects.get(group_id=group_id)
- except GroupInfo.DoesNotExist:
- return response(GroupStatusCode.GROUP_NOT_FOUND)
-
- # 权限校验
- if group.admin_id != admin_id:
- return response(GroupStatusCode.NO_REFUSE_PERMISSION)
-
- # 群组用户校验
- try:
- group_user = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, user_status=GroupUserInfo.APPLYING)
- except GroupUserInfo.DoesNotExist:
- return response(GroupStatusCode.JOIN_REQUEST_NOT_FOUND)
-
- # 群组用户拒绝
- group_user.user_status = GroupUserInfo.REFUSED
- group_user.refused_at = tc.utc_datetime()
- group_user.save()
-
- # Redis 群组数据缓存更新
- group_users = set_group_users_info(group)
-
- # Redis 群组拒绝集合缓存
- r.srem(GROUP_USERS_APPLYING_SET % group_id, user_id)
- r.sadd(GROUP_USERS_REFUSED_SET % group_id, user_id)
-
- return response(200, 'Refuse Success', u'申请拒绝成功', {
- 'group_id': group_id,
- 'users': group_users,
- })
-
-
-@logit
def group_data_api(request):
""" 群组数据, 评论数, 点赞数 """
group_id = request.POST.get('group_id', '')