@@ -382,6 +382,7 @@ def activity_signup(request): |
||
382 | 382 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
383 | 383 |
user_id = request.POST.get('user_id', '') |
384 | 384 |
activity_id = request.POST.get('activity_id', '') |
385 |
+ avatar = request.POST.get('avatar', '') |
|
385 | 386 |
name = request.POST.get('name', '') |
386 | 387 |
phone = request.POST.get('phone', '') |
387 | 388 |
|
@@ -393,9 +394,12 @@ def activity_signup(request): |
||
393 | 394 |
MemberActivitySignupInfo.objects.update_or_create(user_id=user_id, activity_id=activity_id, defaults={ |
394 | 395 |
'title': act.title, |
395 | 396 |
'name': name, |
397 |
+ 'avatar': avatar, |
|
396 | 398 |
'phone': phone, |
397 | 399 |
}) |
398 | 400 |
|
401 |
+ MemberActivityContributionInfo.objects.filter(user_id=user_id, activity_id=activity_id).update(user_name=name, user_avatar=avatar) |
|
402 |
+ |
|
399 | 403 |
# TODO: 立即推送模版消息(报名成功,时间,地点) |
400 | 404 |
# TODO: 延迟(活动当天)推送模版消息(时间,地点) |
401 | 405 |
|
@@ -405,6 +409,26 @@ def activity_signup(request): |
||
405 | 409 |
|
406 | 410 |
|
407 | 411 |
@logit |
412 |
+def activity_signup_info(request): |
|
413 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
|
414 |
+ user_id = request.POST.get('user_id', '') |
|
415 |
+ activity_id = request.POST.get('activity_id', '') |
|
416 |
+ |
|
417 |
+ try: |
|
418 |
+ signup_info = MemberActivitySignupInfo.objects.get(user_id=user_id, activity_id=activity_id, status=True) |
|
419 |
+ contribution = MemberActivityContributionInfo.objects.get(user_id=user_id, activity_id=activity_id, content_type=0, status=True) |
|
420 |
+ except MemberActivitySigninInfo.DoesNotExist: |
|
421 |
+ return response() |
|
422 |
+ except MemberActivityContributionInfo.DoesNotExist: |
|
423 |
+ return response() |
|
424 |
+ |
|
425 |
+ return response(data={ |
|
426 |
+ 'signup_info': signup_info.data, |
|
427 |
+ 'contribution': contribution.data |
|
428 |
+ }) |
|
429 |
+ |
|
430 |
+ |
|
431 |
+@logit |
|
408 | 432 |
@transaction.atomic |
409 | 433 |
def activity_signin(request): |
410 | 434 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
@@ -530,6 +554,11 @@ def activity_contribute(request): |
||
530 | 554 |
except UserInfo.DoesNotExist: |
531 | 555 |
return response(UserStatusCode.USER_NOT_FOUND) |
532 | 556 |
|
557 |
+ try: |
|
558 |
+ signup_info = MemberActivitySignupInfo.objects.get(user_id=user_id, activity_id=activity_id, status=True) |
|
559 |
+ except: |
|
560 |
+ signup_info = NULL |
|
561 |
+ |
|
533 | 562 |
contribution = MemberActivityContributionInfo.objects.create( |
534 | 563 |
brand_id=brand_id, |
535 | 564 |
user_id=user_id, |
@@ -539,6 +568,8 @@ def activity_contribute(request): |
||
539 | 568 |
content=content, |
540 | 569 |
images=images, |
541 | 570 |
video_url=video_url, |
571 |
+ user_name=signup_info.name if signup_info else '', |
|
572 |
+ user_avatar=signup_info.avatar if signup_info else '' |
|
542 | 573 |
) |
543 | 574 |
|
544 | 575 |
return response(data={ |
@@ -0,0 +1,18 @@ |
||
1 |
+# Generated by Django 3.2.8 on 2022-10-26 06:02 |
|
2 |
+ |
|
3 |
+from django.db import migrations, models |
|
4 |
+ |
|
5 |
+ |
|
6 |
+class Migration(migrations.Migration): |
|
7 |
+ |
|
8 |
+ dependencies = [ |
|
9 |
+ ('coupon', '0016_auto_20201202_1203'), |
|
10 |
+ ] |
|
11 |
+ |
|
12 |
+ operations = [ |
|
13 |
+ migrations.AlterField( |
|
14 |
+ model_name='usercouponinfo', |
|
15 |
+ name='coupon_from', |
|
16 |
+ field=models.CharField(blank=True, db_index=True, default='MEMBER_BENEFITS', help_text='劵来源', max_length=32, null=True, verbose_name='coupon_from'), |
|
17 |
+ ), |
|
18 |
+ ] |
@@ -0,0 +1,28 @@ |
||
1 |
+# Generated by Django 3.2.8 on 2022-10-26 06:02 |
|
2 |
+ |
|
3 |
+from django.db import migrations, models |
|
4 |
+ |
|
5 |
+ |
|
6 |
+class Migration(migrations.Migration): |
|
7 |
+ |
|
8 |
+ dependencies = [ |
|
9 |
+ ('member', '0043_auto_20221026_0221'), |
|
10 |
+ ] |
|
11 |
+ |
|
12 |
+ operations = [ |
|
13 |
+ migrations.AddField( |
|
14 |
+ model_name='memberactivitycontributioninfo', |
|
15 |
+ name='user_avatar', |
|
16 |
+ field=models.CharField(blank=True, help_text='用户头像', max_length=255, null=True, verbose_name='avatar'), |
|
17 |
+ ), |
|
18 |
+ migrations.AddField( |
|
19 |
+ model_name='memberactivitycontributioninfo', |
|
20 |
+ name='user_name', |
|
21 |
+ field=models.CharField(blank=True, help_text='用户名称', max_length=255, null=True, verbose_name='name'), |
|
22 |
+ ), |
|
23 |
+ migrations.AddField( |
|
24 |
+ model_name='memberactivitysignupinfo', |
|
25 |
+ name='avatar', |
|
26 |
+ field=models.CharField(blank=True, help_text='头像', max_length=255, null=True, verbose_name='avatar'), |
|
27 |
+ ), |
|
28 |
+ ] |
@@ -567,6 +567,7 @@ class MemberActivitySignupInfo(BaseModelMixin, BrandInfoMixin): |
||
567 | 567 |
|
568 | 568 |
title = models.CharField(_(u'title'), max_length=255, blank=True, null=True, help_text=u'活动名称') |
569 | 569 |
|
570 |
+ avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'头像') |
|
570 | 571 |
name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'姓名') |
571 | 572 |
phone = models.CharField(_(u'phone'), max_length=255, blank=True, null=True, help_text=u'电话') |
572 | 573 |
|
@@ -588,6 +589,7 @@ class MemberActivitySignupInfo(BaseModelMixin, BrandInfoMixin): |
||
588 | 589 |
'user_id': self.user_id, |
589 | 590 |
'activity_id': self.activity_id, |
590 | 591 |
'title': self.title, |
592 |
+ 'avatar': self.avatar, |
|
591 | 593 |
'name': self.name, |
592 | 594 |
'phone': self.phone, |
593 | 595 |
} |
@@ -666,6 +668,8 @@ class MemberActivityContributionInfo(BaseModelMixin, BrandInfoMixin): |
||
666 | 668 |
# 传参图片列表(默认第一张为封面图,包括图片url、宽、高)、标题、内容(纯文本)。 |
667 | 669 |
title = models.CharField(_(u'title'), max_length=255, blank=True, null=True, help_text=u'标题') |
668 | 670 |
content = models.TextField(_(u'content'), blank=True, null=True, help_text=u'内容') |
671 |
+ user_avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'用户头像') |
|
672 |
+ user_name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'用户名称') |
|
669 | 673 |
# content_rich_text = RichTextField(_(u'content_rich_text'), blank=True, default='', help_text=u'内容') |
670 | 674 |
# [{ |
671 | 675 |
# 'image_url': '', |
@@ -697,6 +701,8 @@ class MemberActivityContributionInfo(BaseModelMixin, BrandInfoMixin): |
||
697 | 701 |
'content_type_str': dict(MemberActivityContributionInfo.CONTENT_TYPE).get(self.content_type), |
698 | 702 |
'title': self.title, |
699 | 703 |
'content': self.content, |
704 |
+ 'user_name': self.user_name, |
|
705 |
+ 'user_avatar': self.user_avatar, |
|
700 | 706 |
'images': self.images, |
701 | 707 |
'video_url': self.video_url or '', |
702 | 708 |
'audit_status': self.audit_status, |