| 
              # -*- coding: utf-8 -*-
from django.conf import settings
from django.db.models import Q
from django_logit import logit
from django_response import response
from account.models import LensmanInfo
from member.models import (MemberActivityContributionInfo, MemberActivityDataInfo, MemberActivityInfo,
                           MemberActivitySignupInfo)
from utils.error.errno_utils import MemberActivityStatusCode
@logit
def activity_data_submit(request):
    user_id = request.POST.get('user_id', '')
    lensman_id = request.POST.get('lensman_id', '')
    activity_id = request.POST.get('activity_id', '')
    data_fields = request.POST.get('data_fields', '[]')
    try:
        act = MemberActivityInfo.objects.get(activity_id=activity_id, status=True)
    except MemberActivityInfo.DoesNotExist:
        return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND)
    try:
        lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True)
    except LensmanInfo.DoesNotExist:
        return response('400001', 'LensmanInfo Not Found', '摄影师不存在')
    if lensman.is_expired:
        return response(40001, 'Lensman Has Expired', '摄影师合作已到期')
    MemberActivityDataInfo.objects.update_or_create(user_id=user_id, activity_id=activity_id, defaults={
        'title': act.title,
        'lensman_id': lensman_id,
        'lensman_name': lensman.name,
        'lensman_phone': lensman.phone,
        'data_fields': data_fields,
    })
    return response(data={
        'activity': act.data(user_id),
    })
@logit
def activity_data_detail(request):
    user_id = request.POST.get('user_id', '')
    activity_id = request.POST.get('activity_id', '')
    try:
        data_info = MemberActivityDataInfo.objects.get(user_id=user_id, activity_id=activity_id, status=True)
    except MemberActivityDataInfo.DoesNotExist:
        return response()
    return response(data={
        'data_info': data_info.data,
    })
@logit
def activity_message(request):
    user_id = request.POST.get('user_id', '')
    lensman_acts = MemberActivityInfo.objects.values_list('activity_id', flat=True).filter(activity_section=4, status=True)
    signup_infos = MemberActivitySignupInfo.objects.filter(Q(user_id=user_id) & Q(activity_id__in=lensman_acts) & Q(is_read=False)).exclude(audit_status=MemberActivitySignupInfo.UNAUDITED)
    contribution_infos = MemberActivityContributionInfo.objects.filter(Q(user_id=user_id) & Q(activity_id__in=lensman_acts) & Q(is_read=False)).exclude(audit_status=MemberActivityContributionInfo.UNAUDITED)
    signup_infos = [info.data for info in signup_infos]
    contribution_infos = [info.data for info in contribution_infos]
    return response(data={
        'signup_messages': signup_infos,
        'contribution_messages': contribution_infos,
    })
@logit
def activity_message_read(request):
    user_id = request.POST.get('user_id', '')
    signup_id = request.POST.get('signup_id', '')
    contribution_id = request.POST.get('contribution_id', '')
    if signup_id:
        MemberActivitySignupInfo.objects.filter(user_id=user_id, signup_id=signup_id).update(is_read=True)
    if contribution_id:
        MemberActivityContributionInfo.objects.filter(user_id=user_id, contribution_id=contribution_id).update(is_read=True)
    return response(200, 'Activity Message Has Read Success', '活动消息已读')
 
  |