="lines-code">
return response(200, data={
'nickname': user.final_nickname,
@@ -213,7 +236,7 @@ def good_exchange(request):
'final_integral': user.final_integral,
'shots_num': user.shots_num,
'level': user.level,
- 'good': good.data(user_id),
+ 'goods': goods,
})
@@ -36,46 +36,70 @@ class Command(CompatibilityBaseCommand): |
||
| 36 | 36 |
|
| 37 | 37 |
logger.info(v) |
| 38 | 38 |
|
| 39 |
- brand_id = v.get('brand_id', 0)
|
|
| 40 |
- user_id = v.get('user_id', 0)
|
|
| 39 |
+ brand_id = v.get('brand_id', '')
|
|
| 40 |
+ user_id = v.get('user_id', '')
|
|
| 41 |
+ coupon_id = v.get('coupon_id', '')
|
|
| 41 | 42 |
|
| 42 | 43 |
with transaction.atomic(): |
| 43 | 44 |
try: |
| 44 | 45 |
user = UserInfo.objects.get(user_id=user_id) |
| 45 | 46 |
except UserInfo.DoesNotExist: |
| 46 | 47 |
continue |
| 47 |
- rights = RightInfo.objects.filter(is_send_coupon=True, status=True) |
|
| 48 |
- for right in rights: |
|
| 49 |
- if user.level == UserInfo.MEMBER_LRC: |
|
| 50 |
- coupon_id = right.coupon_level1_id |
|
| 51 |
- elif user.level == UserInfo.MEMBER_SILVER: |
|
| 52 |
- coupon_id = right.coupon_level2_id |
|
| 53 |
- elif user.level == UserInfo.MEMBER_SILVER: |
|
| 54 |
- coupon_id = right.coupon_level3_id |
|
| 55 |
- elif user.level == UserInfo.MEMBER_SILVER: |
|
| 56 |
- coupon_id = right.coupon_level4_id |
|
| 57 |
- else: |
|
| 58 |
- coupon_id = right.coupon_level5_id |
|
| 59 |
- |
|
| 48 |
+ if coupon_id: |
|
| 49 |
+ # 发放商城兑换券 |
|
| 60 | 50 |
try: |
| 61 | 51 |
coupon = UserCouponInfo.objects.get(coupon_id=coupon_id) |
| 62 | 52 |
except UserCouponInfo.DoesNotExist: |
| 63 | 53 |
continue |
| 64 | 54 |
|
| 65 |
- for _ in xrange(right.coupon_num): |
|
| 66 |
- UserCouponInfo.objects.create( |
|
| 67 |
- brand_id=coupon.brand_id, |
|
| 68 |
- brand_name=coupon.brand_name, |
|
| 69 |
- coupon_id=coupon_id, |
|
| 70 |
- user_id=user_id, |
|
| 71 |
- coupon_title=coupon.coupon_title, |
|
| 72 |
- coupon_detail=coupon.coupon_detail, |
|
| 73 |
- coupon_value=coupon.coupon_value, |
|
| 74 |
- coupon_image=coupon.coupon_image, |
|
| 75 |
- active_at=tc.utc_datetime(), |
|
| 76 |
- expire_at=tc.utc_datetime(days=365), |
|
| 77 |
- coupon_valid_period=coupon.coupon_valid_period, |
|
| 78 |
- coupon_limit_brand_ids=coupon.coupon_limit_brand_ids, |
|
| 79 |
- ) |
|
| 55 |
+ UserCouponInfo.objects.create( |
|
| 56 |
+ brand_id=coupon.brand_id, |
|
| 57 |
+ brand_name=coupon.brand_name, |
|
| 58 |
+ coupon_id=coupon_id, |
|
| 59 |
+ user_id=user_id, |
|
| 60 |
+ coupon_title=coupon.coupon_title, |
|
| 61 |
+ coupon_detail=coupon.coupon_detail, |
|
| 62 |
+ coupon_value=coupon.coupon_value, |
|
| 63 |
+ coupon_image=coupon.coupon_image, |
|
| 64 |
+ active_at=tc.utc_datetime(), |
|
| 65 |
+ expire_at=tc.utc_datetime(days=365), |
|
| 66 |
+ coupon_valid_period=coupon.coupon_valid_period, |
|
| 67 |
+ coupon_limit_brand_ids=coupon.coupon_limit_brand_ids, |
|
| 68 |
+ ) |
|
| 69 |
+ else: |
|
| 70 |
+ # 发放会员权益 |
|
| 71 |
+ rights = RightInfo.objects.filter(is_send_coupon=True, status=True) |
|
| 72 |
+ for right in rights: |
|
| 73 |
+ if user.level == UserInfo.MEMBER_LRC: |
|
| 74 |
+ coupon_id = right.coupon_level1_id |
|
| 75 |
+ elif user.level == UserInfo.MEMBER_SILVER: |
|
| 76 |
+ coupon_id = right.coupon_level2_id |
|
| 77 |
+ elif user.level == UserInfo.MEMBER_SILVER: |
|
| 78 |
+ coupon_id = right.coupon_level3_id |
|
| 79 |
+ elif user.level == UserInfo.MEMBER_SILVER: |
|
| 80 |
+ coupon_id = right.coupon_level4_id |
|
| 81 |
+ else: |
|
| 82 |
+ coupon_id = right.coupon_level5_id |
|
| 83 |
+ |
|
| 84 |
+ try: |
|
| 85 |
+ coupon = UserCouponInfo.objects.get(coupon_id=coupon_id) |
|
| 86 |
+ except UserCouponInfo.DoesNotExist: |
|
| 87 |
+ continue |
|
| 88 |
+ |
|
| 89 |
+ for _ in xrange(right.coupon_num): |
|
| 90 |
+ UserCouponInfo.objects.create( |
|
| 91 |
+ brand_id=coupon.brand_id, |
|
| 92 |
+ brand_name=coupon.brand_name, |
|
| 93 |
+ coupon_id=coupon_id, |
|
| 94 |
+ user_id=user_id, |
|
| 95 |
+ coupon_title=coupon.coupon_title, |
|
| 96 |
+ coupon_detail=coupon.coupon_detail, |
|
| 97 |
+ coupon_value=coupon.coupon_value, |
|
| 98 |
+ coupon_image=coupon.coupon_image, |
|
| 99 |
+ active_at=tc.utc_datetime(), |
|
| 100 |
+ expire_at=tc.utc_datetime(days=365), |
|
| 101 |
+ coupon_valid_period=coupon.coupon_valid_period, |
|
| 102 |
+ coupon_limit_brand_ids=coupon.coupon_limit_brand_ids, |
|
| 103 |
+ ) |
|
| 80 | 104 |
|
| 81 | 105 |
close_old_connections() |
@@ -4,7 +4,7 @@ import monetary |
||
| 4 | 4 |
from django.conf import settings |
| 5 | 5 |
from django.contrib import admin |
| 6 | 6 |
from django.contrib.auth.hashers import make_password |
| 7 |
-from django_admin import AdvancedActionsModelAdmin, AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin |
|
| 7 |
+from django_admin import AdvancedActionsModelAdmin, AdvancedExportExcelModelAdmin, DeleteModelAdmin, ReadOnlyModelAdmin |
|
| 8 | 8 |
from django_models_ext import ProvinceShortModelMixin |
| 9 | 9 |
from pysnippets.strsnippets import strip |
| 10 | 10 |
|
@@ -63,7 +63,7 @@ class BrandInfoAdmin(admin.ModelAdmin): |
||
| 63 | 63 |
OperatorInfo.objects.filter(brand_id=obj.brand_id).update(brand_domain=obj.brand_domain) |
| 64 | 64 |
|
| 65 | 65 |
|
| 66 |
-class ModelInfoAdmin(admin.ModelAdmin): |
|
| 66 |
+class ModelInfoAdmin(DeleteModelAdmin, admin.ModelAdmin): |
|
| 67 | 67 |
list_display = ('brand_id', 'brand_name', 'jancode', 'model_id', 'model_name', 'model_uni_name', 'model_full_name', 'model_descr', 'category', 'warehouse', 'image', 'url', 'image2', 'factory_yuan', 'integral', 'position', 'display', 'status', 'created_at', 'updated_at')
|
| 68 | 68 |
list_filter = ('brand_name', 'category', 'warehouse', 'shot_type_id', 'display', 'status')
|
| 69 | 69 |
readonly_fields = ('brand_name', 'factory_fee')
|
@@ -1,6 +1,7 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 | 2 |
|
| 3 | 3 |
from django.contrib import admin |
| 4 |
+from django_admin import DeleteModelAdmin |
|
| 4 | 5 |
|
| 5 | 6 |
from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityInfo, MemberActivitySigninInfo, |
| 6 | 7 |
MemberActivitySignupInfo, RightInfo, ShotTypeInfo) |
@@ -32,7 +33,7 @@ class RightInfoAdmin(admin.ModelAdmin): |
||
| 32 | 33 |
list_filter = ('right_type', 'is_send_coupon', 'status')
|
| 33 | 34 |
|
| 34 | 35 |
|
| 35 |
-class ShotTypeInfoAdmin(admin.ModelAdmin): |
|
| 36 |
+class ShotTypeInfoAdmin(DeleteModelAdmin, admin.ModelAdmin): |
|
| 36 | 37 |
list_display = ('shot_type_id', 'shot_type_name', 'position', 'status', 'created_at', 'updated_at')
|
| 37 | 38 |
|
| 38 | 39 |
def save_model(self, request, obj, form, change): |
@@ -2,7 +2,7 @@ Django==1.11.26 |
||
| 2 | 2 |
django-admin==2.0.0 |
| 3 | 3 |
django-cors-headers==3.0.2 |
| 4 | 4 |
django-curtail-uuid==1.0.4 |
| 5 |
-django-detect==1.0.16 |
|
| 5 |
+django-detect==1.0.17 |
|
| 6 | 6 |
django-file-md5==1.0.3 |
| 7 | 7 |
django-file-upload==1.1.1 |
| 8 | 8 |
django-ip==1.0.2 |
@@ -76,3 +76,4 @@ SUBSCRIBE_USERINFO_LIST = 'subscribe:userinfo:%s' |
||
| 76 | 76 |
|
| 77 | 77 |
MEMBER_SHOT_DATA = 'kodo:member:shot:data' |
| 78 | 78 |
MEMBER_SEND_COUPON_LIST = 'kodo:member:send:coupon:list' |
| 79 |
+MEMBER_UPGRADE_INFO = 'kodo:member:upgrade:info:%s:%s' # brand_id, user_id |