支持扫描小程序码分享得积分

FFIB 2 年 前
コミット
1635e7d88d
共有3 個のファイルを変更した36 個の追加12 個の削除を含む
  1. 17 11
      api/member_views.py
  2. 18 0
      member/migrations/0053_alter_memberactivitygroupshareinfo_unique_together.py
  3. 1 1
      member/models.py

+ 17 - 11
api/member_views.py

@@ -464,7 +464,11 @@ def activity_signin(request):
464 464
 
465 465
 def get_group_share_info_integral(activity_id, share_user_id, open_gid, group_share_integral, group_share_max_integral):
466 466
     # 校验该分享人是否已领取该群积分
467
-    has_integral = MemberActivityGroupShareInfo.objects.filter(activity_id=activity_id, share_user_id=share_user_id, open_gid=open_gid, is_integral=True).exists()
467
+    if open_gid:
468
+        has_integral = MemberActivityGroupShareInfo.objects.filter(activity_id=activity_id, share_user_id=share_user_id, open_gid=open_gid, is_integral=True).exists()
469
+    else:
470
+        has_integral = MemberActivityGroupShareInfo.objects.filter(activity_id=activity_id, share_user_id=share_user_id, is_integral=True).exists()
471
+
468 472
     if has_integral:
469 473
         return False, 0
470 474
     # 校验该分享人是否已领取该活动积分上限
@@ -485,20 +489,22 @@ def activity_group_share(request):
485 489
     iv = request.POST.get('iv', '')
486 490
     encryptedData = request.POST.get('encryptedData', '')
487 491
 
488
-    wxcfg = WECHAT.get('MINIAPP', {})
492
+    open_gid = None
493
+    if iv and encryptedData:
494
+        wxcfg = WECHAT.get('MINIAPP', {})
489 495
 
490
-    appid = wxcfg.get('appID')
491
-    secret = wxcfg.get('appsecret')
496
+        appid = wxcfg.get('appID')
497
+        secret = wxcfg.get('appsecret')
492 498
 
493
-    # {
494
-    #     "openGId": "OPENGID"
495
-    # }
496
-    shareinfo = get_shareinfo(appid=appid, secret=secret, unid=click_user_id, session_key=None, encryptedData=encryptedData, iv=iv, storage=RedisStorage(r))
499
+        # {
500
+        #     "openGId": "OPENGID"
501
+        # }
502
+        shareinfo = get_shareinfo(appid=appid, secret=secret, unid=click_user_id, session_key=None, encryptedData=encryptedData, iv=iv, storage=RedisStorage(r))
497 503
 
498
-    open_gid = shareinfo.get('openGId')
504
+        open_gid = shareinfo.get('openGId')
499 505
 
500
-    if not open_gid:
501
-        return response()
506
+        if not open_gid:
507
+            return response()
502 508
 
503 509
     try:
504 510
         user = UserInfo.objects.select_for_update().get(user_id=share_user_id, status=True)

+ 18 - 0
member/migrations/0053_alter_memberactivitygroupshareinfo_unique_together.py

@@ -0,0 +1,18 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 3.2.16 on 2022-11-11 04:42
3
+
4
+from django.db import migrations
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('member', '0052_auto_20221107_2238'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AlterUniqueTogether(
15
+            name='memberactivitygroupshareinfo',
16
+            unique_together={('activity_id', 'share_user_id', 'click_user_id', 'brand_id')},
17
+        ),
18
+    ]

+ 1 - 1
member/models.py

@@ -711,7 +711,7 @@ class MemberActivityGroupShareInfo(BaseModelMixin, BrandInfoMixin):
711 711
         verbose_name_plural = _(u'会员活动群组分享信息')
712 712
 
713 713
         unique_together = (
714
-            ('activity_id', 'share_user_id', 'click_user_id', 'open_gid', 'brand_id'),
714
+            ('activity_id', 'share_user_id', 'click_user_id', 'brand_id'),
715 715
         )
716 716
 
717 717
     def __unicode__(self):