n rel="diff-837db1e10959bbdc7788c75f0de347697fe3338fL81">81
group_id=group_id,
user_id=user_id,
@@ -91,6 +128,148 @@ def group_join_api(request):
})
+def group_lock_api(request):
+ group_id = request.POST.get('group_id', '')
+ user_id = request.POST.get('user_id', '')
+
+ try:
+ user = UserInfo.objects.get(user_id=user_id)
+ except UserInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4011,
+ 'message': u'用户不存在',
+ })
+
+ try:
+ group = GroupInfo.objects.get(group_id=group_id)
+ except GroupInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4020,
+ 'message': u'群组不存在',
+ })
+ if group.admin_id != user_id:
+ return JsonResponse({
+ 'status': 4023,
+ 'message': u'没有锁定权限',
+ })
+
+ group.group_lock = True
+ group.save()
+
+ return JsonResponse({
+ 'status': 200,
+ 'message': u'锁定成功',
+ })
+
+
+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:
+ admin = UserInfo.objects.get(user_id=admin_id)
+ except UserInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4011,
+ 'message': u'用户不存在',
+ })
+ try:
+ user = UserInfo.objects.get(user_id=user_id)
+ except UserInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4011,
+ 'message': u'用户不存在',
+ })
+
+ try:
+ group = GroupInfo.objects.get(group_id=group_id)
+ except GroupInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4020,
+ 'message': u'群组不存在',
+ })
+ if group.admin_id != admin_id:
+ return JsonResponse({
+ 'status': 4024,
+ 'message': u'没有通过权限',
+ })
+
+ try:
+ group_user = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, user_status=GroupUserInfo.APPLYING)
+ except GroupUserInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4027,
+ 'message': u'加群申请不存在',
+ })
+ group_user.user_status = GroupUserInfo.PASSED
+ group_user.passed_at = tc.utc_datetime()
+ group_user.save()
+
+ return JsonResponse({
+ 'status': 200,
+ 'message': u'申请通过成功',
+ 'data': {
+ 'group_id': group_id,
+ 'users': group.users(user_id)
+ },
+ })
+
+
+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:
+ admin = UserInfo.objects.get(user_id=admin_id)
+ except UserInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4011,
+ 'message': u'用户不存在',
+ })
+ try:
+ user = UserInfo.objects.get(user_id=user_id)
+ except UserInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4011,
+ 'message': u'用户不存在',
+ })
+
+ try:
+ group = GroupInfo.objects.get(group_id=group_id)
+ except GroupInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4020,
+ 'message': u'群组不存在',
+ })
+ if group.admin_id != admin_id:
+ return JsonResponse({
+ 'status': 4025,
+ 'message': u'没有拒绝权限',
+ })
+
+ try:
+ group_user = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, user_status=GroupUserInfo.APPLYING)
+ except GroupUserInfo.DoesNotExist:
+ return JsonResponse({
+ 'status': 4027,
+ 'message': u'加群申请不存在',
+ })
+ group_user.user_status = GroupUserInfo.REFUSED
+ group_user.refused_at = tc.utc_datetime()
+ group_user.save()
+
+ return JsonResponse({
+ 'status': 200,
+ 'message': u'申请拒绝成功',
+ 'data': {
+ 'group_id': group_id,
+ 'users': group.users(user_id)
+ },
+ })
+
+
class GroupInfoViewSet(viewsets.ModelViewSet):
queryset = GroupInfo.objects.all().order_by('-created_at')
serializer_class = GroupInfoSerializer