| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | # -*- coding: utf-8 -*- | 
| 2 | 2 |  | 
| 3 | -from django.conf.urls import url | |
| 3 | +from django.conf.urls import include, url | |
| 4 | 4 | from django_file_upload import views as file_views | 
| 5 | 5 |  | 
| 6 | 6 | from api import (admin_views, clerk_views, complement_views, distributor_views, encrypt_views, express_views, log_views, | 
| @@ -373,3 +373,7 @@ urlpatterns += [ | ||
| 373 | 373 | urlpatterns += [ | 
| 374 | 374 | url(r'^tencentcloud/faceid/eidtoken$', tencentcloud_views.get_faceid_eid_token, name='tencentcloud_get_faceid_eid_token'), | 
| 375 | 375 | ] | 
| 376 | + | |
| 377 | +urlpatterns += [ | |
| 378 | +    url(r'^', include(('member.urls', 'member'), namespace='member')), | |
| 379 | +] | 
| @@ -0,0 +1,52 @@ | ||
| 1 | +# -*- coding: utf-8 -*- | |
| 2 | + | |
| 3 | +from django.conf import settings | |
| 4 | +from django_logit import logit | |
| 5 | +from django_response import response | |
| 6 | +from paginator import pagination | |
| 7 | + | |
| 8 | +from member.models import MemberActivityInfo | |
| 9 | +from utils.error.errno_utils import MemberActivityStatusCode | |
| 10 | + | |
| 11 | + | |
| 12 | +@logit | |
| 13 | +def activity_home(request): | |
| 14 | +    brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID | |
| 15 | +    user_id = request.POST.get('user_id', '') | |
| 16 | +    banners = MemberActivityInfo.objects.filter(activity_state=1, is_slider=True, status=True).order_by('-date') | |
| 17 | + | |
| 18 | + banners = [act.data(user_id) for act in banners] | |
| 19 | + | |
| 20 | +    return response(data={ | |
| 21 | + 'banners': banners, | |
| 22 | + }) | |
| 23 | + | |
| 24 | + | |
| 25 | +@logit | |
| 26 | +def activity_list(request): | |
| 27 | +    brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID | |
| 28 | +    user_id = request.POST.get('user_id', '') | |
| 29 | +    activity_section = request.POST.get('activity_section', 3) | |
| 30 | + | |
| 31 | +    activitys = MemberActivityInfo.objects.filter(activity_state=1, activity_section=activity_section, status=True).order_by('-date') | |
| 32 | + activitys = [act.data(user_id) for act in activitys] | |
| 33 | + | |
| 34 | +    return response(data={ | |
| 35 | + 'activitys': activitys, | |
| 36 | + }) | |
| 37 | + | |
| 38 | + | |
| 39 | +@logit | |
| 40 | +def activity_detail(request): | |
| 41 | +    brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID | |
| 42 | +    user_id = request.POST.get('user_id', '') | |
| 43 | +    activity_id = request.POST.get('activity_id', '') | |
| 44 | + | |
| 45 | + try: | |
| 46 | + act = MemberActivityInfo.objects.get(activity_id=activity_id, status=True) | |
| 47 | + except MemberActivityInfo.DoesNotExist: | |
| 48 | + return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) | |
| 49 | + | |
| 50 | +    return response(data={ | |
| 51 | + 'activity': act.details(user_id), | |
| 52 | + }) | 
| @@ -470,6 +470,10 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): | ||
| 470 | 470 | return qiniu_file_url(self.image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.image) | 
| 471 | 471 |  | 
| 472 | 472 | @property | 
| 473 | + def post_kv_image_url(self): | |
| 474 | + return qiniu_file_url(self.poster_kv_img.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.poster_kv_img) | |
| 475 | + | |
| 476 | + @property | |
| 473 | 477 | def final_state(self): | 
| 474 | 478 | if not self.date: | 
| 475 | 479 | return u'报名中' | 
| @@ -541,7 +545,7 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): | ||
| 541 | 545 | 'is_signup': self.is_signup, | 
| 542 | 546 | 'share_integral': self.group_share_integral, | 
| 543 | 547 | 'share_max_integral': self.group_share_max_integral, | 
| 544 | - 'poster_kv_img_url': self.final_poster_kv_img_url, | |
| 548 | + 'poster_kv_img_url': self.post_kv_image_url, | |
| 545 | 549 | 'poster_content': self.poster_content, | 
| 546 | 550 | 'contribution_content_placeholder': self.contribution_content_placeholder, | 
| 547 | 551 | } | 
| @@ -0,0 +1,12 @@ | ||
| 1 | +# -*- coding: utf-8 -*- | |
| 2 | + | |
| 3 | +from django.conf.urls import url | |
| 4 | + | |
| 5 | +from member import activity_mp_views | |
| 6 | + | |
| 7 | +# activity | |
| 8 | +urlpatterns = [ | |
| 9 | + url(r'^member/activity/home$', activity_mp_views.activity_home, name='mp_member_activity_home'), # 获取会员活动首页 | |
| 10 | + url(r'^member/activity/list$', activity_mp_views.activity_list, name='mp_member_activity_list'), # 获取会员分区活动列表 | |
| 11 | + url(r'^member/activity/detail$', activity_mp_views.activity_detail, name='mp_member_activity_detail'), # 获取会员分区活动列表 | |
| 12 | +] | 
| @@ -0,0 +1,8 @@ | ||
| 1 | +# -*- coding: utf-8 -*- | |
| 2 | + | |
| 3 | +from django.conf.urls import include, url | |
| 4 | + | |
| 5 | + | |
| 6 | +urlpatterns = [ | |
| 7 | +    url(r'^mp', include(('member.mp_urls', 'member'), namespace='mp_member')), | |
| 8 | +] |