@@ -0,0 +1,25 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+from __future__ import division |
|
4 |
+ |
|
5 |
+from logs.models import RedpackSendLogInfo |
|
6 |
+from miniapp.redpack_views import send_jsapi_hb |
|
7 |
+ |
|
8 |
+ |
|
9 |
+def exec_send_jsapi_hb(user, elog, amount): |
|
10 |
+ send_jsapi_hb(user.openid, amount, transfer=False) |
|
11 |
+ |
|
12 |
+ elog.has_send_redpack = True |
|
13 |
+ elog.user_id = user.user_id |
|
14 |
+ elog.nickname = user.nickname |
|
15 |
+ elog.save() |
|
16 |
+ |
|
17 |
+ RedpackSendLogInfo.objects.create( |
|
18 |
+ brand_id=user.brand_id, |
|
19 |
+ user_id=user.user_id, |
|
20 |
+ nickname=user.nickname, |
|
21 |
+ phone=user.phone, |
|
22 |
+ sn=elog.sn, |
|
23 |
+ redpack_type=RedpackSendLogInfo.WX_REDPACK, |
|
24 |
+ redpack_amount=amount, |
|
25 |
+ ) |
@@ -12,10 +12,10 @@ from pywe_storage import RedisStorage |
||
12 | 12 |
from TimeConvert import TimeConvert as tc |
13 | 13 |
|
14 | 14 |
from account.models import UserInfo |
15 |
+from api.hb_views import exec_send_jsapi_hb |
|
15 | 16 |
from logs.models import MchInfoEncryptLogInfo |
16 | 17 |
from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, |
17 | 18 |
LatestAppInfo, LatestAppScreenInfo, ModelInfo, OperatorInfo) |
18 |
-from miniapp.redpack_views import send_jsapi_hb |
|
19 | 19 |
from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo |
20 | 20 |
from utils.error.errno_utils import (AdministratorStatusCode, OperatorStatusCode, ProductBrandStatusCode, |
21 | 21 |
ProductModelStatusCode, UserStatusCode) |
@@ -384,12 +384,7 @@ def consumer_info_api(request): |
||
384 | 384 |
if elog and not dupload: |
385 | 385 |
amount = 100 |
386 | 386 |
if user.openid: |
387 |
- send_jsapi_hb(user.openid, amount, transfer=False) |
|
388 |
- |
|
389 |
- elog.has_send_redpack = True |
|
390 |
- elog.user_id = user.user_id |
|
391 |
- elog.nickname = user.nickname |
|
392 |
- elog.save() |
|
387 |
+ exec_send_jsapi_hb(user, elog, amount) |
|
393 | 388 |
else: |
394 | 389 |
r.rpushjson(REDPACK_WAITING_SEND_LIST, { |
395 | 390 |
'sn': serialNo, |
@@ -6,8 +6,8 @@ from django.db import transaction |
||
6 | 6 |
from django_six import CompatibilityBaseCommand, close_old_connections |
7 | 7 |
|
8 | 8 |
from account.models import UserInfo |
9 |
+from api.hb_views import exec_send_jsapi_hb |
|
9 | 10 |
from logs.models import MchInfoEncryptLogInfo |
10 |
-from miniapp.redpack_views import send_jsapi_hb |
|
11 | 11 |
from utils.redis.connect import r |
12 | 12 |
from utils.redis.rkeys import REDPACK_WAITING_SEND_LIST |
13 | 13 |
|
@@ -48,11 +48,6 @@ class Command(CompatibilityBaseCommand): |
||
48 | 48 |
r.rpushjson(REDPACK_WAITING_SEND_LIST, v) |
49 | 49 |
continue |
50 | 50 |
|
51 |
- send_jsapi_hb(user.openid, v.get('amount', 100), transfer=False) |
|
52 |
- |
|
53 |
- elog.has_send_redpack = True |
|
54 |
- elog.user_id = user.user_id |
|
55 |
- elog.nickname = user.nickname |
|
56 |
- elog.save() |
|
51 |
+ exec_send_jsapi_hb(user, elog, v.get('amount', 100)) |
|
57 | 52 |
|
58 | 53 |
close_old_connections() |
@@ -3,7 +3,7 @@ |
||
3 | 3 |
from django.contrib import admin |
4 | 4 |
from django_admin import ReadOnlyModelAdmin |
5 | 5 |
|
6 |
-from logs.models import MchInfoDecryptLogInfo, MchInfoEncryptLogInfo, MchLogInfo |
|
6 |
+from logs.models import MchInfoDecryptLogInfo, MchInfoEncryptLogInfo, MchLogInfo, RedpackSendLogInfo |
|
7 | 7 |
|
8 | 8 |
|
9 | 9 |
class MchInfoEncryptLogInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin): |
@@ -22,6 +22,11 @@ class MchLogInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin): |
||
22 | 22 |
search_fields = ('operator_id', 'app_version') |
23 | 23 |
|
24 | 24 |
|
25 |
+class RedpackSendLogInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin): |
|
26 |
+ list_display = ('brand_id', 'user_id', 'nickname', 'phone', 'sn', 'redpack_type', 'redpack_amount', 'status', 'created_at', 'updated_at') |
|
27 |
+ |
|
28 |
+ |
|
25 | 29 |
admin.site.register(MchInfoDecryptLogInfo, MchInfoDecryptLogInfoAdmin) |
26 | 30 |
admin.site.register(MchInfoEncryptLogInfo, MchInfoEncryptLogInfoAdmin) |
27 | 31 |
admin.site.register(MchLogInfo, MchLogInfoAdmin) |
32 |
+admin.site.register(RedpackSendLogInfo, RedpackSendLogInfoAdmin) |
@@ -0,0 +1,35 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+# Generated by Django 1.11.20 on 2019-04-24 18:16 |
|
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', '0006_auto_20190417_1717'), |
|
12 |
+ ] |
|
13 |
+ |
|
14 |
+ operations = [ |
|
15 |
+ migrations.CreateModel( |
|
16 |
+ name='RedpackSendLogInfo', |
|
17 |
+ fields=[ |
|
18 |
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
19 |
+ ('status', models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status')), |
|
20 |
+ ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')), |
|
21 |
+ ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')), |
|
22 |
+ ('brand_id', models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id')), |
|
23 |
+ ('user_id', models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id')), |
|
24 |
+ ('nickname', models.CharField(blank=True, help_text='\u7528\u6237\u6635\u79f0', max_length=255, null=True, verbose_name='nickname')), |
|
25 |
+ ('phone', models.CharField(blank=True, help_text='\u7528\u6237\u7535\u8bdd', max_length=11, null=True, verbose_name='phone')), |
|
26 |
+ ('sn', models.CharField(blank=True, help_text='\u5e8f\u5217\u53f7', max_length=32, null=True, verbose_name='sn')), |
|
27 |
+ ('redpack_type', models.IntegerField(choices=[(0, '\u5fae\u4fe1\u7ea2\u5305'), (1, '\u4f01\u4e1a\u4ed8\u6b3e')], db_index=True, default=0, help_text='\u7ea2\u5305\u53d1\u653e\u65b9\u5f0f', verbose_name='redpack_type')), |
|
28 |
+ ('redpack_amount', models.IntegerField(default=0, help_text='\u7ea2\u5305\u53d1\u653e\u91d1\u989d', verbose_name='redpack_amount')), |
|
29 |
+ ], |
|
30 |
+ options={ |
|
31 |
+ 'verbose_name': '\u7ea2\u5305\u53d1\u653e\u8bb0\u5f55', |
|
32 |
+ 'verbose_name_plural': '\u7ea2\u5305\u53d1\u653e\u8bb0\u5f55', |
|
33 |
+ }, |
|
34 |
+ ), |
|
35 |
+ ] |
@@ -73,3 +73,31 @@ class MchLogInfo(BaseModelMixin): |
||
73 | 73 |
|
74 | 74 |
def __unicode__(self): |
75 | 75 |
return unicode(self.pk) |
76 |
+ |
|
77 |
+ |
|
78 |
+class RedpackSendLogInfo(BaseModelMixin): |
|
79 |
+ WX_REDPACK = 0 |
|
80 |
+ QY_TRANSFER = 1 |
|
81 |
+ |
|
82 |
+ REDPACK_TYPE_TUPLE = ( |
|
83 |
+ (WX_REDPACK, u'微信红包'), |
|
84 |
+ (QY_TRANSFER, u'企业付款'), |
|
85 |
+ ) |
|
86 |
+ |
|
87 |
+ brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) |
|
88 |
+ |
|
89 |
+ user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True) |
|
90 |
+ nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户昵称') |
|
91 |
+ phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'用户电话') |
|
92 |
+ |
|
93 |
+ sn = models.CharField(_(u'sn'), max_length=32, blank=True, null=True, help_text=u'序列号') |
|
94 |
+ |
|
95 |
+ redpack_type = models.IntegerField(_(u'redpack_type'), default=WX_REDPACK, choices=REDPACK_TYPE_TUPLE, help_text=u'红包发放方式', db_index=True) |
|
96 |
+ redpack_amount = models.IntegerField(_(u'redpack_amount'), default=0, help_text=u'红包发放金额') |
|
97 |
+ |
|
98 |
+ class Meta: |
|
99 |
+ verbose_name = _(u'红包发放记录') |
|
100 |
+ verbose_name_plural = _(u'红包发放记录') |
|
101 |
+ |
|
102 |
+ def __unicode__(self): |
|
103 |
+ return unicode(self.pk) |