add admin/query_usercoupons

FFIB %!s(int64=5) %!d(string=hace) años
padre
commit
59d2b7b88d
Se han modificado 3 ficheros con 64 adiciones y 0 borrados
  1. 29 0
      api/admin_views.py
  2. 1 0
      api/urls.py
  3. 34 0
      coupon/models.py

+ 29 - 0
api/admin_views.py

@@ -19,6 +19,7 @@ from django.utils.timezone import utc
19 19
 from account.models import UserInfo
20 20
 from integral.models import SaleclerkSubmitLogInfo
21 21
 from logs.models import MchInfoEncryptLogInfo
22
+from coupon.models import UserCouponInfo
22 23
 from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, SaleclerkInfo
23 24
 from statistic.models import (ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo,
24 25
                               ModelSaleStatisticInfo)
@@ -141,6 +142,34 @@ def userinfo(request):
141 142
 
142 143
 
143 144
 @logit
145
+def query_usercoupons(request):
146
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
147
+    admin_id = request.POST.get('admin_id', '')
148
+    user_id = request.POST.get('user_id', '')
149
+
150
+    if brand_id != settings.KODO_DEFAULT_BRAND_ID:
151
+        return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
152
+
153
+    # 校验用户是否存在
154
+    try:
155
+        user = UserInfo.objects.get(user_id=user_id)
156
+    except UserInfo.DoesNotExist:
157
+        return response(UserStatusCode.USER_NOT_FOUND)
158
+
159
+    try:
160
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
161
+    except AdministratorInfo.DoesNotExist:
162
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
163
+
164
+    coupons = UserCouponInfo.objects.filter(brand_id=administrator.brand_id, user_id=user_id, status=True).order_by('-created_at')
165
+    coupons = [coupon.admindata for coupon in coupons]
166
+    print coupons
167
+
168
+    return response(200, 'User Coupon Success', u'用户劵列表获取成功', data={
169
+        'coupons': coupons,
170
+    })
171
+
172
+@logit
144 173
 def query_usergoods(request):
145 174
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
146 175
     admin_id = request.POST.get('admin_id', '')

+ 1 - 0
api/urls.py

@@ -297,6 +297,7 @@ urlpatterns += [
297 297
 
298 298
     url(r'^admin/userinfo$', admin_views.userinfo, name='userinfo'),
299 299
     url(r'^admin/query_usergoods$', admin_views.query_usergoods, name='query_usergoods'),
300
+    url(r'^admin/query_usercoupons$', admin_views.query_usercoupons, name='query_usercoupons'),
300 301
     url(r'^admin/query_userinfo$', admin_views.query_userinfo, name='query_userinfo'),
301 302
     url(r'^admin/userinfo_update$', admin_views.userinfo_update, name='userinfo_update'),
302 303
 

+ 34 - 0
coupon/models.py

@@ -117,6 +117,16 @@ class UserCouponInfo(BaseModelMixin):
117 117
         if not self.expire_at:
118 118
             return False
119 119
         return tc.utc_datetime() > self.expire_at
120
+    
121
+    @property
122
+    def coupon_source(self):
123
+        if self.coupon_from == 'INTEGRAL_MALL':
124
+            return '积分商城'.encode('utf-8')
125
+        elif self.coupon_from == 'MEMBER_BENEFITS':
126
+            return '会员权益'.encode('utf-8')
127
+        elif self.coupon_from == 'PROMOTION':
128
+            return self.activity_name
129
+        return ''
120 130
 
121 131
     @property
122 132
     def data(self):
@@ -138,5 +148,29 @@ class UserCouponInfo(BaseModelMixin):
138 148
             'has_expired': self.has_expired,
139 149
             'has_used': self.has_used,
140 150
             'admin_id': self.admin_id,
151
+            'used_at': self.used_at
152
+        }
153
+    
154
+    @property
155
+    def admindata(self):
156
+        return {
157
+            'user_coupon_id': self.user_coupon_id,
158
+            'coupon_id': self.coupon_id,
159
+            'user_id': self.user_id,
160
+            'coupon_title': self.coupon_title,
161
+            'coupon_value': self.coupon_value,
162
+            'coupon_image_url': self.coupon_image_url,
163
+            'is_coupon_admin_writeoff': self.is_coupon_admin_writeoff,
164
+            'active_at': tc.local_string(utc_dt=self.active_at, format='%Y-%m-%d'),
165
+            'expire_at': tc.local_string(utc_dt=self.expire_at, format='%Y-%m-%d'),
166
+            'coupon_valid_period': self.coupon_valid_period,
167
+            'coupon_limit_model_ids': self.coupon_limit_model_ids,
168
+            'has_actived': self.has_actived,
169
+            'has_expired': self.has_expired,
170
+            'has_used': self.has_used,
171
+            'admin_id': self.admin_id,
141 172
             'used_at': self.used_at,
173
+            'coupon_from': self.activity_name if self.coupon_from == 'PROMOTION' else self.coupon_from,
174
+            'clerk_name': self.clerk_name,
175
+            'distributor_name': self.distributor_name,
142 176
         }