|
# -*- coding: utf-8 -*-
from django.conf import settings
from django_logit import logit
from django.db.models import Q
from django_response import response
from account.models import LensmanInfo
from member.models import MemberActivityInfo, MemberActivityDataInfo, MemberActivitySignupInfo, MemberActivityContributionInfo
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', '活动消息已读')
|