@@ -804,7 +804,6 @@ def member_activity_list(request): |
||
| 804 | 804 |
count = logs.count() |
| 805 | 805 |
logs, left = pagination(logs, page, num) |
| 806 | 806 |
logs = [log.admindata for log in logs] |
| 807 |
- print logs |
|
| 808 | 807 |
return response(200, 'Get Member Activity Record Success', u'获取会员活动成功', data={
|
| 809 | 808 |
'logs': logs, |
| 810 | 809 |
'left': left, |
@@ -937,4 +936,36 @@ def member_activity_create(request): |
||
| 937 | 936 |
activity_state=activity_state |
| 938 | 937 |
) |
| 939 | 938 |
|
| 940 |
- return response(200, 'MemberActivityInfo Create Success', u'会员活动创建成功') |
|
| 939 |
+ return response(200, 'MemberActivityInfo Create Success', u'会员活动创建成功') |
|
| 940 |
+ |
|
| 941 |
+def member_activity_share_list(request): |
|
| 942 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
| 943 |
+ admin_id = request.POST.get('admin_id', '')
|
|
| 944 |
+ activity_id = request.POST.get('activity_id', '')
|
|
| 945 |
+ page = int(request.POST.get('page', 1))
|
|
| 946 |
+ num = int(request.POST.get('num', 20))
|
|
| 947 |
+ |
|
| 948 |
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID: |
|
| 949 |
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH) |
|
| 950 |
+ |
|
| 951 |
+ try: |
|
| 952 |
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) |
|
| 953 |
+ except AdministratorInfo.DoesNotExist: |
|
| 954 |
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) |
|
| 955 |
+ |
|
| 956 |
+ logs = MemberActivityGroupShareInfo.objects.filter(activity_id=activity_id, status=True) |
|
| 957 |
+ |
|
| 958 |
+ total_integral = logs.aggregate(Sum('integral'))['integral__sum']
|
|
| 959 |
+ |
|
| 960 |
+ logs = logs.values('share_user_id').annotate(integral_sum=Sum('integral'), group_count=Count('open_gid'), user_count=Count('click_user_id')).order_by('-user_count')
|
|
| 961 |
+ |
|
| 962 |
+ count = logs.count() |
|
| 963 |
+ logs, left = pagination(logs, page, num) |
|
| 964 |
+ |
|
| 965 |
+ return response(200, 'Get Member Activity Record Success', u'获取会员活动成功', data={
|
|
| 966 |
+ 'logs': list(logs), |
|
| 967 |
+ 'count': count, |
|
| 968 |
+ 'left': left, |
|
| 969 |
+ 'total_integral': total_integral |
|
| 970 |
+ }) |
|
| 971 |
+ |
@@ -331,6 +331,8 @@ urlpatterns += [ |
||
| 331 | 331 |
url(r'^admin/member/activity/details$', admin_views.member_activity_details, name='member_activity_details'), |
| 332 | 332 |
url(r'^admin/member/activity/update$', admin_views.member_activity_update, name='member_activity_update'), |
| 333 | 333 |
url(r'^admin/member/activity/create$', admin_views.member_activity_create, name='member_activity_create'), |
| 334 |
+ url(r'^admin/member/activity/share/list$', admin_views.member_activity_share_list, name='member_activity_share_list'), |
|
| 335 |
+ |
|
| 334 | 336 |
] |
| 335 | 337 |
|
| 336 | 338 |
urlpatterns += [ |
@@ -0,0 +1,24 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+# Generated by Django 1.11.26 on 2020-12-04 10:31 |
|
| 3 |
+from __future__ import unicode_literals |
|
| 4 |
+ |
|
| 5 |
+from django.db import migrations, models |
|
| 6 |
+ |
|
| 7 |
+ |
|
| 8 |
+class Migration(migrations.Migration): |
|
| 9 |
+ |
|
| 10 |
+ dependencies = [ |
|
| 11 |
+ ('member', '0023_memberactivityinfo_activity_state'),
|
|
| 12 |
+ ] |
|
| 13 |
+ |
|
| 14 |
+ operations = [ |
|
| 15 |
+ migrations.AlterField( |
|
| 16 |
+ model_name='memberactivityinfo', |
|
| 17 |
+ name='activity_state', |
|
| 18 |
+ field=models.IntegerField(choices=[(0, '\u8349\u7a3f'), (1, '\u5df2\u53d1\u5e03'), (2, '\u4e0b\u7ebf')], db_index=True, default=0, help_text='\u6d3b\u52a8\u72b6\u6001', verbose_name='activity_state'), |
|
| 19 |
+ ), |
|
| 20 |
+ migrations.AlterUniqueTogether( |
|
| 21 |
+ name='memberactivitygroupshareinfo', |
|
| 22 |
+ unique_together=set([('activity_id', 'share_user_id', 'click_user_id', 'open_gid', 'brand_id')]),
|
|
| 23 |
+ ), |
|
| 24 |
+ ] |
@@ -540,6 +540,10 @@ class MemberActivityGroupShareInfo(BaseModelMixin): |
||
| 540 | 540 |
class Meta: |
| 541 | 541 |
verbose_name = _(u'会员活动群组分享信息') |
| 542 | 542 |
verbose_name_plural = _(u'会员活动群组分享信息') |
| 543 |
+ |
|
| 544 |
+ unique_together = ( |
|
| 545 |
+ ('activity_id', 'share_user_id', 'click_user_id', 'open_gid', 'brand_id'),
|
|
| 546 |
+ ) |
|
| 543 | 547 |
|
| 544 | 548 |
def __unicode__(self): |
| 545 | 549 |
return '%d' % self.pk |