@@ -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 |