添加接口 admin/member/activity/share/list

FFIB лет %!s(int64=4): %!d(string=назад)
Родитель
Сommit
3794a9fc67
4 измененных файлов с 63 добавлено и 2 удалено
  1. 33 2
      api/admin_views.py
  2. 2 0
      api/urls.py
  3. 24 0
      member/migrations/0024_auto_20201204_1831.py
  4. 4 0
      member/models.py

+ 33 - 2
api/admin_views.py

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

+ 2 - 0
api/urls.py

@@ -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 += [

+ 24 - 0
member/migrations/0024_auto_20201204_1831.py

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

+ 4 - 0
member/models.py

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