@@ -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( |
@@ -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 |
+ ] |
@@ -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'用户昵称') |