No Description

views.py 2.8KB

    # -*- coding: utf-8 -*- from django.db import transaction from django.http import JsonResponse from rest_framework import viewsets from account.models import UserInfo from group.models import GroupInfo, GroupUserInfo, GroupPhotoInfo from group.serializers import GroupInfoSerializer, GroupUserInfoSerializer, GroupPhotoInfoSerializer from utils.ip_utils import ip_addr from curtail_uuid import CurtailUUID from TimeConvert import TimeConvert as tc @transaction.atomic def group_create_api(request): 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'用户不存在', }) group_id = CurtailUUID.uuid(GroupInfo, 'group_id') group = GroupInfo.objects.create( group_id=group_id, group_from=GroupInfo.APP_GROUP, ) GroupUserInfo.objects.create( group_id=group_id, user_id=user_id, nickname=user.username, admin=True, user_status=GroupUserInfo.PASSED, passed_at=tc.utc_datetime(), ) return JsonResponse({ 'status': 200, 'message': u'群组创建成功', 'data': { 'group_id': group_id, 'users': group.users }, }) def group_join_api(request): group_id = request.POST.get('group_id', '') user_id = request.POST.get('user_id', '') nickname = request.POST.get('nickname', '') 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.group_lock: return JsonResponse({ 'status': 4021, 'message': u'群组已锁定', }) GroupUserInfo.objects.create( group_id=group_id, user_id=user_id, nickname=nickname or user.username, admin=False, user_status=GroupUserInfo.APPLYING, ) return JsonResponse({ 'status': 200, 'message': u'申请已提交', }) class GroupInfoViewSet(viewsets.ModelViewSet): queryset = GroupInfo.objects.all().order_by('-created_at') serializer_class = GroupInfoSerializer class GroupUserInfoViewSet(viewsets.ModelViewSet): queryset = GroupUserInfo.objects.all().order_by('-created_at') serializer_class = GroupUserInfoSerializer class GroupPhotoInfoViewSet(viewsets.ModelViewSet): queryset = GroupPhotoInfo.objects.all().order_by('-created_at') serializer_class = GroupPhotoInfoSerializer