|  | # -*- coding: utf-8 -*-
from django.conf import settings
from django.http import JsonResponse
from message.models import UserMessageInfo
from utils.page_utils import pagination
from utils.error.errno_utils import MessageStatusCode
from utils.error.response_utils import response
def message_list_api(request):
    """
    消息列表
    :param request:
    :return:
    """
    user_id = request.POST.get('user_id', '') or request.GET.get('user_id', '')
    messages = UserMessageInfo.MESSAGE_TYPE_INFO
    final_messages = []
    for message in messages:
        type_messages = UserMessageInfo.objects.filter(
            to_uid=user_id,
            msg_type=message['msg_type'],
            status=True,
        ).order_by(
            '-pk'
        )[:settings.MESSAGE_NUM_PER_PAGE]
        type_messages = [msg.msg_info for msg in type_messages]
        message['msg_list'] = type_messages
        final_messages.append(message)
    return JsonResponse({
        'status': 200,
        'message': u'获取消息列表成功',
        'data': {
            'messages': final_messages,
        },
    })
def message_type_list_api(request, msg_type):
    """
    分类消息列表
    :param request:
    :param msg_type:
    :return:
    """
    user_id = request.POST.get('user_id', '') or request.GET.get('user_id', '')
    page = int(request.POST.get('page', 0) or request.GET.get('page', 0) or 1)
    num = int(request.POST.get('num', 0) or request.GET.get('num', 0) or settings.MESSAGE_NUM_PER_PAGE)
    type_messages = UserMessageInfo.objects.filter(
        to_uid=user_id,
        msg_type=msg_type,
        status=True,
    ).order_by(
        '-pk'
    )
    type_messages, left = pagination(type_messages, page, num)
    type_messages = [msg.msg_info for msg in type_messages]
    return JsonResponse({
        'status': 200,
        'message': u'获取消息列表成功',
        'data': {
            'messages': type_messages,
            'left': left,
        },
    })
def message_read_api(request):
    """
    消息读取
    :param request:
    :return:
    """
    pk = int(request.POST.get('pk', 0) or request.GET.get('pk', 0) or -1)
    user_id = request.POST.get('user_id', '') or request.GET.get('user_id', '')
    UserMessageInfo.objects.filter(pk=pk, to_uid=user_id).update(read=True)
    return JsonResponse({
        'status': 200,
        'message': u'已读消息成功',
    })
def message_delete_api(request, msg_type=None):
    """
    消息删除
    :param request:
    :param msg_type:
    :return:
    """
    user_id = request.POST.get('user_id', '') or request.GET.get('user_id', '')
    if msg_type:
        UserMessageInfo.objects.filter(to_uid=user_id, msg_type=msg_type).update(status=False)
    else:
        pk = int(request.POST.get('pk', 0) or request.GET.get('pk', 0) or -1)
        UserMessageInfo.objects.filter(pk=pk, to_uid=user_id).update(status=False)
    return JsonResponse({
        'status': 200,
        'message': u'消息删除成功',
    })
 |