elog.pre_redpack_send_amount

Brightcells лет %!s(int64=7): %!d(string=назад)
Родитель
Сommit
0ca2425314
3 измененных файлов с 31 добавлено и 0 удалено
  1. 10 0
      api/hb_views.py
  2. 20 0
      logs/migrations/0012_mchinfoencryptloginfo_pre_redpack_send_amount.py
  3. 1 0
      logs/models.py

+ 10 - 0
api/hb_views.py

@@ -2,6 +2,9 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
+import random
6
+from django_we.models import SubscribeUserInfo
7
+
5 8
 from logs.models import RedpackSendLogInfo
6 9
 from miniapp.redpack_views import send_jsapi_hb
7 10
 
@@ -10,6 +13,12 @@ def exec_send_jsapi_hb(user, elog, amount):
10 13
     if elog.redpack_send_num >= 3:
11 14
         return
12 15
 
16
+    if not SubscribeUserInfo.objects.filter(extraid=user.brand_id, unionid=user.unionid, openid=user.openid).exists():
17
+        return
18
+
19
+    pre_amount = elog.pre_redpack_send_amount or elog.redpack_amount or elog.redpack_max_amount
20
+    amount = random.randint(100, pre_amount)
21
+
13 22
     send_jsapi_hb(user.brand_id, user.openid, amount, transfer=False)
14 23
 
15 24
     elog.has_send_redpack = True
@@ -17,6 +26,7 @@ def exec_send_jsapi_hb(user, elog, amount):
17 26
     elog.user_id = user.user_id
18 27
     elog.nickname = user.nickname
19 28
     elog.redpack_send_num += 1
29
+    elog.pre_redpack_send_amount = amount
20 30
     elog.save()
21 31
 
22 32
     RedpackSendLogInfo.objects.create(

+ 20 - 0
logs/migrations/0012_mchinfoencryptloginfo_pre_redpack_send_amount.py

@@ -0,0 +1,20 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.22 on 2019-09-18 09:40
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
+        ('logs', '0011_mchinfoencryptloginfo_redpack_send_num'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='mchinfoencryptloginfo',
17
+            name='pre_redpack_send_amount',
18
+            field=models.IntegerField(default=0, help_text='\u7ea2\u5305\u53d1\u653e\u91d1\u989d\uff0c\u5355\u4f4d\uff1a\u5206', verbose_name='pre_redpack_send_amount'),
19
+        ),
20
+    ]

+ 1 - 0
logs/models.py

@@ -27,6 +27,7 @@ class MchInfoEncryptLogInfo(BaseModelMixin):
27 27
     redpack_send_amount = models.IntegerField(_(u'redpack_send_amount'), default=0, help_text=u'红包发放金额,单位:分)')
28 28
 
29 29
     redpack_send_num = models.IntegerField(_(u'redpack_send_num'), default=0, help_text=u'红包发放个数')
30
+    pre_redpack_send_amount = models.IntegerField(_(u'pre_redpack_send_amount'), default=0, help_text=u'红包发放金额,单位:分')
30 31
 
31 32
     user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识(红包)', db_index=True)
32 33
     nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户昵称')