|
# -*- coding: utf-8 -*-
from datetime import datetime
from django.conf import settings
from django.db.models import Q
from django_logit import logit
from django_response import response
from paginator import pagination
from TimeConvert import TimeConvert as tc
from member.models import MemberActivityInfo, MemberActivitySignupInfo, MemberActivityContributionInfo
from kodo.decorators import check_admin
from utils.error.errno_utils import MemberActivityStatusCode
@check_admin
def activity_list(request, administrator):
activity_type = request.POST.get('activity_type', '')
title = request.POST.get('title', '')
start_time = request.POST.get('start_time', '')
end_time = request.POST.get('end_time', '')
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
activity_state = request.POST.get('activity_state', '')
activity_section = request.POST.get('activity_section', '')
is_series = request.POST.get('is_series', '')
logs = MemberActivityInfo.objects.filter(status=True)
if is_series:
logs = logs.filter(is_series=True)
if activity_type:
logs = logs.filter(activity_type=activity_type)
if activity_section:
logs = logs.filter(activity_section=activity_section)
if activity_state:
logs = logs.filter(activity_state=activity_state)
if title:
logs = logs.filter(title__icontains=title)
if start_time and end_time:
start_time = datetime.strptime(start_time, '%Y%m%d')
end_time = datetime.strptime(end_time + ' 23:59:59', '%Y%m%d %H:%M:%S')
logs = logs.filter(created_at__range=(start_time, end_time))
logs = logs.order_by('-pk')
count = logs.count()
logs, left = pagination(logs, page, num)
logs = [log.admindata for log in logs]
return response(200, 'Get Member Activity Record Success', u'获取会员活动成功', data={
'logs': logs,
'left': left,
'count': count
})
@check_admin
def activity_detail(request, administrator):
activity_id = request.POST.get('activity_id', '')
try:
log = MemberActivityInfo.objects.get(activity_id=activity_id)
except MemberActivityInfo.DoesNotExist:
return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND)
return response(200, 'Get Member Activity Record Details Success', u'获取会员活动详情成功', data={
'log': log.admindetails,
})
@check_admin
def activity_update(request, administrator):
activity_id = request.POST.get('activity_id', '')
activity_type = int(request.POST.get('activity_type', 0))
activity_section = int(request.POST.get('activity_section', 3))
title = request.POST.get('title', '')
subtitle = request.POST.get('subtitle', '')
start_date = tc.to_date(request.POST.get('start_date', '') or settings.DEFAULT_START_DATE)
end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE)
start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE)
end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE)
city = request.POST.get('city', '')
location = request.POST.get('location', '')
integral = int(request.POST.get('integral', 0))
is_slider = request.POST.get('is_slider', 0)
slider_image_path = request.POST.get('slider_image_path', '')
cover_path = request.POST.get('cover_path', '')
detail_image_path = request.POST.get('detail_image_path', '')
limit_image_num = int(request.POST.get('limit_image_num', 3))
is_signup = request.POST.get('is_signup', 0)
group_share_max_integral = int(request.POST.get('share_max_integral', 0))
group_share_integral = int(request.POST.get('share_integral', 0))
content_rich_text = request.POST.get('content_rich_text', '')
share_h5_link = request.POST.get('share_h5_link', '')
activity_state = int(request.POST.get('activity_state', 0))
poster_kv_img_url = request.POST.get('poster_kv_img_url', '')
poster_content = request.POST.get('poster_content', '')
contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '')
fields = request.POST.get('fields', '')
is_series = request.POST.get('is_series', False)
main_activity_id = request.POST.get('main_activity_id', '')
limit_contribute_num = request.POST.get('limit_contribute_num', 1)
feed_id = request.POST.get('feed_id', '')
try:
log = MemberActivityInfo.objects.get(activity_id=activity_id, status=True)
except MemberActivityInfo.DoesNotExist:
return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND)
if log.main_activity_id != main_activity_id:
MemberActivityContributionInfo.objects.filter(activity_id=log.activity_id).update(main_activity_id=main_activity_id)
log.activity_type = activity_type
log.activity_section = activity_section
log.title = title
log.subtitle = subtitle
log.date = date
log.start_date = start_date
log.end_date = end_date
log.start_display_date = start_display_date
log.end_display_date = end_display_date
log.city = city
log.location = location
log.integral = integral
log.is_slider = is_slider
log.slider_image = slider_image_path
log.cover = cover_path
log.image = detail_image_path
log.limit_image_num = limit_image_num
log.is_signup = is_signup
log.group_share_integral = group_share_integral
log.group_share_max_integral = group_share_max_integral
log.content_rich_text = content_rich_text
log.share_h5_link = share_h5_link
log.activity_state = activity_state
log.poster_kv_img_url = poster_kv_img_url
log.poster_content = poster_content
log.contribution_content_placeholder = contribution_content_placeholder
log.fields = fields
log.is_series = is_series
log.main_activity_id = main_activity_id
log.limit_contribute_num = limit_contribute_num
log.feed_id = feed_id
log.save()
return response(200, 'MemberActivityInfo Update Success', u'会员活动更新成功')
@check_admin
def activity_create(request, administrator):
activity_type = int(request.POST.get('activity_type', 0))
activity_section = int(request.POST.get('activity_section', 3))
title = request.POST.get('title', '')
subtitle = request.POST.get('subtitle', '')
start_date = tc.to_date(request.POST.get('start_date', '') or settings.DEFAULT_START_DATE)
end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE)
start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE)
end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE)
city = request.POST.get('city', '')
location = request.POST.get('location', '')
integral = int(request.POST.get('integral', 0))
is_slider = request.POST.get('is_slider', 0)
slider_image_path = request.POST.get('slider_image_path', '')
cover_path = request.POST.get('cover_path', '')
detail_image_path = request.POST.get('detail_image_path', '')
limit_image_num = int(request.POST.get('limit_image_num', 3))
is_signup = request.POST.get('is_signup', 0)
group_share_max_integral = int(request.POST.get('share_max_integral', 0))
group_share_integral = int(request.POST.get('share_integral', 0))
content_rich_text = request.POST.get('content_rich_text', '')
share_h5_link = request.POST.get('share_h5_link', '')
activity_state = int(request.POST.get('activity_state', 0))
poster_kv_img_url = request.POST.get('poster_kv_img_url', '')
poster_content = request.POST.get('poster_content', '')
contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '')
fields = request.POST.get('fields', '')
is_series = request.POST.get('is_series', False)
main_activity_id = request.POST.get('main_activity_id', '')
limit_contribute_num = request.POST.get('limit_contribute_num', 1)
feed_id = request.POST.get('feed_id', '')
act = MemberActivityInfo.objects.create(
brand_id=administrator.brand_id,
activity_type=activity_type,
activity_section=activity_section,
title=title,
subtitle=subtitle,
date=date,
start_date=start_date,
end_date=end_date,
start_display_date=start_display_date,
end_display_date=end_display_date,
city=city,
location=location,
integral=integral,
is_slider=is_slider,
slider_image=slider_image_path,
cover=cover_path,
image=detail_image_path,
limit_image_num=limit_image_num,
is_signup=is_signup,
group_share_max_integral=group_share_max_integral,
group_share_integral=group_share_integral,
content_rich_text=content_rich_text,
share_h5_link=share_h5_link,
activity_state=activity_state,
poster_kv_img_url=poster_kv_img_url,
poster_content=poster_content,
contribution_content_placeholder=contribution_content_placeholder,
is_upload_qiniu=True,
fields=fields,
is_series=is_series,
main_activity_id=main_activity_id,
limit_contribute_num=limit_contribute_num,
feed_id=feed_id,
)
return response(200, 'MemberActivityInfo Create Success', u'会员活动创建成功', data={
'activity': act.admindetails
})
@check_admin
def activity_signup_list(request, administrator):
activity_id = request.POST.get('activity_id', '')
page = int(request.POST.get('page', 1))
num = int(request.POST.get('num', 20))
query = request.POST.get('query', '')
logs = MemberActivitySignupInfo.objects.filter(activity_id=activity_id, status=True).exclude(fields='[]')
if query:
logs = logs.filter(fields__icontains=query)
count = logs.count()
logs, left = pagination(logs, page, num)
logs = [log.admindata for log in logs]
return response(200, 'Get Member Activity Signup List Success', u'获取会员活动报名列表成功', data={
'logs': logs,
'count': count,
'left': left,
})
|