@@ -17,8 +17,9 @@ from account.models import UserInfo |
||
17 | 17 |
from coupon.models import UserCouponInfo |
18 | 18 |
from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityContributionInfo, MemberActivityGroupShareInfo, |
19 | 19 |
MemberActivityInfo, MemberActivitySigninInfo, MemberActivitySignupInfo, RightInfo) |
20 |
-from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode, |
|
21 |
- MemberRightStatusCode, UserStatusCode) |
|
20 |
+from utils.error.errno_utils import (MemberActivityContributionStatusCode, MemberActivityStatusCode, |
|
21 |
+ MemberCouponStatusCode, MemberGoodStatusCode, MemberRightStatusCode, |
|
22 |
+ UserStatusCode) |
|
22 | 23 |
from utils.redis.connect import r |
23 | 24 |
from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO |
24 | 25 |
from utils.redis.rshot import get_member_shot_data |
@@ -362,7 +363,7 @@ def activity_list(request): |
||
362 | 363 |
def activity_detail(request): |
363 | 364 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
364 | 365 |
user_id = request.POST.get('user_id', '') |
365 |
- activity_id = request.POST.get('activity_id') |
|
366 |
+ activity_id = request.POST.get('activity_id', '') |
|
366 | 367 |
|
367 | 368 |
try: |
368 | 369 |
act = MemberActivityInfo.objects.get(activity_id=activity_id, status=True) |
@@ -378,7 +379,7 @@ def activity_detail(request): |
||
378 | 379 |
def activity_signup(request): |
379 | 380 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
380 | 381 |
user_id = request.POST.get('user_id', '') |
381 |
- activity_id = request.POST.get('activity_id') |
|
382 |
+ activity_id = request.POST.get('activity_id', '') |
|
382 | 383 |
name = request.POST.get('name', '') |
383 | 384 |
phone = request.POST.get('phone', '') |
384 | 385 |
|
@@ -406,7 +407,7 @@ def activity_signup(request): |
||
406 | 407 |
def activity_signin(request): |
407 | 408 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
408 | 409 |
user_id = request.POST.get('user_id', '') |
409 |
- activity_id = request.POST.get('activity_id') |
|
410 |
+ activity_id = request.POST.get('activity_id', '') |
|
410 | 411 |
|
411 | 412 |
# 校验用户是否存在 |
412 | 413 |
try: |
@@ -451,7 +452,7 @@ def activity_group_share(request): |
||
451 | 452 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
452 | 453 |
share_user_id = request.POST.get('share_user_id', '') |
453 | 454 |
click_user_id = request.POST.get('click_user_id', '') |
454 |
- activity_id = request.POST.get('activity_id') |
|
455 |
+ activity_id = request.POST.get('activity_id', '') |
|
455 | 456 |
|
456 | 457 |
iv = request.POST.get('iv', '') |
457 | 458 |
encryptedData = request.POST.get('encryptedData', '') |
@@ -514,11 +515,12 @@ def activity_group_share(request): |
||
514 | 515 |
def activity_contribute(request): |
515 | 516 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
516 | 517 |
user_id = request.POST.get('user_id', '') |
517 |
- activity_id = request.POST.get('activity_id') |
|
518 |
+ activity_id = request.POST.get('activity_id', '') |
|
518 | 519 |
content_type = get_query_value(request, 'content_type', val_cast_type='int') |
519 | 520 |
title = request.POST.get('title', '') |
520 | 521 |
content = request.POST.get('content', '') |
521 | 522 |
images = get_query_value(request, 'images', val_cast_type='listjson') |
523 |
+ video_url = request.POST.get('video_url', '') |
|
522 | 524 |
|
523 | 525 |
# 校验用户是否存在 |
524 | 526 |
try: |
@@ -534,8 +536,46 @@ def activity_contribute(request): |
||
534 | 536 |
title=title, |
535 | 537 |
content=content, |
536 | 538 |
images=images, |
539 |
+ video_url=video_url, |
|
537 | 540 |
) |
538 | 541 |
|
539 | 542 |
return response(data={ |
540 | 543 |
'contribution': contribution.data, |
541 | 544 |
}) |
545 |
+ |
|
546 |
+ |
|
547 |
+@logit |
|
548 |
+def activity_contribute_list(request): |
|
549 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
|
550 |
+ user_id = request.POST.get('user_id', '') |
|
551 |
+ activity_id = request.POST.get('activity_id', '') |
|
552 |
+ content_type = get_query_value(request, 'content_type', val_cast_type='int') |
|
553 |
+ page = request.POST.get('page', 1) |
|
554 |
+ num = request.POST.get('num', 20) |
|
555 |
+ |
|
556 |
+ contributions = MemberActivityContributionInfo.objects.filter(content_type=content_type, status=True) |
|
557 |
+ if user_id: |
|
558 |
+ contributions = contributions.filter(user_id=user_id) |
|
559 |
+ if activity_id: |
|
560 |
+ contributions = contributions.filter(activity_id=activity_id) |
|
561 |
+ contributions = contributions.order_by('-pk') |
|
562 |
+ contributions, left = pagination(contributions, page, num) |
|
563 |
+ contributions = [contribution.data for contribution in contributions] |
|
564 |
+ |
|
565 |
+ return response(data={ |
|
566 |
+ 'contributions': contributions, |
|
567 |
+ 'left': left, |
|
568 |
+ }) |
|
569 |
+ |
|
570 |
+ |
|
571 |
+@logit |
|
572 |
+def activity_contribute_detail(request): |
|
573 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
|
574 |
+ contribution_id = request.POST.get('contribution_id', '') |
|
575 |
+ |
|
576 |
+ try: |
|
577 |
+ contribution = MemberActivityContributionInfo.objects.get(contribution_id=contribution_id, status=True) |
|
578 |
+ except MemberActivityContributionInfo.DoesNotExist: |
|
579 |
+ return response(MemberActivityContributionStatusCode.ACTIVITY_CONTRIBUTION_NOT_FOUND) |
|
580 |
+ |
|
581 |
+ return response(data=contribution.data) |
@@ -229,6 +229,8 @@ urlpatterns += [ |
||
229 | 229 |
url(r'^member/activity/group_share$', member_views.activity_group_share, name='member_activity_group_share'), |
230 | 230 |
|
231 | 231 |
url(r'^member/activity/contribute$', member_views.activity_contribute, name='member_activity_contribute'), |
232 |
+ url(r'^member/activity/contribute/list$', member_views.activity_contribute_list, name='member_activity_contribute_list'), |
|
233 |
+ url(r'^member/activity/contribute/detail$', member_views.activity_contribute_detail, name='member_activity_contribute_detail'), |
|
232 | 234 |
|
233 | 235 |
url(r'^rights$', member_views.rights, name='rights'), |
234 | 236 |
url(r'^right/detail$', member_views.right_detail, name='right_detail'), |
@@ -99,7 +99,7 @@ class MemberActivityGroupShareInfoAdmin(admin.ModelAdmin): |
||
99 | 99 |
|
100 | 100 |
|
101 | 101 |
class MemberActivityContributionInfoAdmin(admin.ModelAdmin): |
102 |
- list_display = ('contribution_id', 'activity_id', 'content_type', 'title', 'content', 'images', 'status', 'created_at', 'updated_at') |
|
102 |
+ list_display = ('contribution_id', 'activity_id', 'content_type', 'title', 'content', 'images', 'video_url', 'status', 'created_at', 'updated_at') |
|
103 | 103 |
list_filter = ('activity_id', 'content_type', 'status') |
104 | 104 |
|
105 | 105 |
|
@@ -0,0 +1,19 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+# Generated by Django 3.2.16 on 2022-10-23 07:10 |
|
3 |
+ |
|
4 |
+from django.db import migrations, models |
|
5 |
+ |
|
6 |
+ |
|
7 |
+class Migration(migrations.Migration): |
|
8 |
+ |
|
9 |
+ dependencies = [ |
|
10 |
+ ('member', '0035_memberactivitycontributioninfo'), |
|
11 |
+ ] |
|
12 |
+ |
|
13 |
+ operations = [ |
|
14 |
+ migrations.AddField( |
|
15 |
+ model_name='memberactivitycontributioninfo', |
|
16 |
+ name='video_url', |
|
17 |
+ field=models.CharField(blank=True, help_text='视频链接', max_length=255, null=True, verbose_name='video_url'), |
|
18 |
+ ), |
|
19 |
+ ] |
@@ -692,6 +692,7 @@ class MemberActivityContributionInfo(BaseModelMixin): |
||
692 | 692 |
# 'height': 100, |
693 | 693 |
# }] |
694 | 694 |
images = JSONField(_(u'images'), default=[], help_text=u'图片列表') |
695 |
+ video_url = models.CharField(_(u'video_url'), max_length=255, blank=True, null=True, help_text=u'视频链接') |
|
695 | 696 |
|
696 | 697 |
class Meta: |
697 | 698 |
verbose_name = _(u'会员活动投稿信息') |
@@ -711,4 +712,5 @@ class MemberActivityContributionInfo(BaseModelMixin): |
||
711 | 712 |
'title': self.title, |
712 | 713 |
'content': self.content, |
713 | 714 |
'images': self.images, |
715 |
+ 'video_url': self.video_url or '', |
|
714 | 716 |
} |
@@ -95,6 +95,11 @@ class MemberActivityStatusCode(BaseStatusCode): |
||
95 | 95 |
ACTIVITY_NOT_FOUND = StatusCodeField(503701, 'Activity Not Found', description=u'活动不存在') |
96 | 96 |
|
97 | 97 |
|
98 |
+class MemberActivityContributionStatusCode(BaseStatusCode): |
|
99 |
+ """ 会员活动投稿相关错误码 5038xx """ |
|
100 |
+ ACTIVITY_CONTRIBUTION_NOT_FOUND = StatusCodeField(503801, 'Activity Contribution Not Found', description=u'活动投稿不存在') |
|
101 |
+ |
|
102 |
+ |
|
98 | 103 |
class MemberCouponStatusCode(BaseStatusCode): |
99 | 104 |
""" 会员优惠券相关错误码 5040xx """ |
100 | 105 |
USER_COUPON_NOT_FOUND = StatusCodeField(504001, 'User Coupon Not Found', description=u'用户优惠券不存在') |