update lensman_brief_api

Brightcells 8 ans auparavant
Parent
Commettre
05faf3c5db
4 fichiers modifiés avec 32 ajouts et 7 suppressions
  1. 11 2
      group/lensman_views.py
  2. 13 2
      pay/views.py
  3. 1 0
      requirements.txt
  4. 7 3
      utils/redis/rkeys.py

+ 11 - 2
group/lensman_views.py

@@ -14,6 +14,7 @@ from TimeConvert import TimeConvert as tc
14 14
 
15 15
 from account.models import LensmanInfo, UserInfo
16 16
 from group.models import GroupInfo, GroupPhotoInfo, GroupUserInfo
17
+from isoweek import Week
17 18
 from message.models import SystemMessageInfo
18 19
 from pay.models import OrderInfo
19 20
 from photo.models import PhotosInfo
@@ -22,7 +23,7 @@ from utils.error.response_utils import response
22 23
 from utils.message_utils import system_messages
23 24
 from utils.page_utils import pagination
24 25
 from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_info, set_group_users_info
25
-from utils.redis.rkeys import GROUP_LAST_PHOTO_PK, TODAY_INCOME, TODAY_UPLOAD_PHOTO_AMOUNT
26
+from utils.redis.rkeys import GROUP_LAST_PHOTO_PK, TODAY_INCOME, TODAY_UPLOAD_PHOTO_AMOUNT, WEEK_INCOME, WEEK_SOLD
26 27
 from utils.thumbnail_utils import make_thumbnail
27 28
 from utils.watermark_utils import watermark_wrap
28 29
 
@@ -257,9 +258,16 @@ def lensman_brief_api(request):
257 258
     user_id = request.POST.get('user_id', '')
258 259
 
259 260
     ymd = tc.local_string(format='%Y%m%d')
261
+    week = Week.thisweek().isoformat()
260 262
 
263
+    # 周收入
264
+    week_income = int(r.get(WEEK_INCOME % (user_id, week)) or 0)
265
+    # 日收入
261 266
     today_income = int(r.get(TODAY_INCOME % (user_id, ymd)) or 0)
267
+    # 日上传
262 268
     today_upload = int(r.get(TODAY_UPLOAD_PHOTO_AMOUNT % (user_id, ymd)) or 0)
269
+    # 周售出
270
+    week_sold = int(r.get(WEEK_SOLD % (OrderInfo.ORIGIN, user_id, ymd)) or 0)
263 271
 
264 272
     # 摄影师端系统消息
265 273
     systems = system_messages(user_id, SystemMessageInfo.PAIAI_LENSMAN)
@@ -272,9 +280,10 @@ def lensman_brief_api(request):
272 280
     orders = [order.data(user_id) for order in orders]
273 281
 
274 282
     return response(200, 'Get Lensman Brief Success', u'获取摄影师简报成功', {
283
+        'week_income': week_income,
275 284
         'today_income': today_income,
276 285
         'today_upload': today_upload,
277
-        'avg_income': int(today_income / (today_upload + 1)),
286
+        'week_sold': week_sold,
278 287
         'messages': {
279 288
             'system': systems,
280 289
             'orders': orders,

+ 13 - 2
pay/views.py

@@ -10,12 +10,13 @@ from wechatpy import WeChatPay, WeChatPayException
10 10
 
11 11
 from account.models import UserIncomeExpensesInfo, UserInfo
12 12
 from group.models import GroupPhotoInfo, GroupPhotoOrderInfo
13
+from isoweek import Week
13 14
 from pay.models import OrderInfo
14 15
 from photo.models import PhotosInfo
15 16
 from utils.error.errno_utils import GroupPhotoStatusCode, OrderStatusCode, UserStatusCode, WithdrawStatusCode
16 17
 from utils.error.response_utils import response
17 18
 from utils.page_utils import pagination
18
-from utils.redis.rkeys import LENSMAN_PHOTO_PRICE, TODAY_INCOME, TOTAL_INCOME
19
+from utils.redis.rkeys import LENSMAN_PHOTO_PRICE, TODAY_INCOME, TOTAL_INCOME, WEEK_INCOME, WEEK_SOLD
19 20
 from utils.redis.rorder import set_lensman_order_record
20 21
 
21 22
 
@@ -133,8 +134,18 @@ def order_paid_success(order):
133 134
     user.balance += order.total_fee
134 135
     user.save()
135 136
 
137
+    ymd = tc.local_string(format='%Y%m%d')
138
+    week = Week.thisweek().isoformat()
139
+
140
+    # 总收入
136 141
     r.incr(TOTAL_INCOME % to_uid, total_fee)
137
-    r.incr(TODAY_INCOME % (to_uid, tc.local_string(format='%Y%m%d')), total_fee)
142
+    # 周收入
143
+    r.incr(WEEK_INCOME % (to_uid, week), total_fee)
144
+    # 日收入
145
+    r.incr(TODAY_INCOME % (to_uid, ymd), total_fee)
146
+
147
+    # 周售出
148
+    r.incr(WEEK_SOLD % (order.photo_type, to_uid, week))
138 149
 
139 150
     UserIncomeExpensesInfo.objects.create(
140 151
         user_id=to_uid,

+ 1 - 0
requirements.txt

@@ -18,6 +18,7 @@ hiredis==0.2.0
18 18
 ipdb==0.8.1
19 19
 ipython==4.0.0
20 20
 jsonfield==1.0.3
21
+isoweek==1.3.0
21 22
 kkconst==1.1.2
22 23
 mock==2.0.0
23 24
 pep8==1.6.2

+ 7 - 3
utils/redis/rkeys.py

@@ -31,10 +31,14 @@ LENSMAN_PHOTO_HAGGLE_TIMES = 'lensman:photo:haggle:times:%s:%s:%s'  # STRING,
31 31
 LENSMAN_PHOTO_ORDER_RECORD = 'lensman:photo:order:record:%s:%s'  # STRING,摄影师照片购买记录,photo_id、user_id
32 32
 
33 33
 # 摄影师简报相关
34
+# 收入
34 35
 TOTAL_INCOME = 'total:income:%s'  # STRING,总收入,user_id
35
-TODAY_INCOME = 'today:income:%s:%s'  # STRING,今日收入,user_id、tc.local_string(format='%Y%m%d')
36
-
37
-TODAY_UPLOAD_PHOTO_AMOUNT = 'today:upload:photo:amount:%s:%s'  # STRING,今日上传照片数量,user_id、tc.local_string(format='%Y%m%d')
36
+WEEK_INCOME = 'week:income:%s:%s'  # STRING,周收入,user_id、Week.thisweek().isoformat()
37
+TODAY_INCOME = 'today:income:%s:%s'  # STRING,日收入,user_id、tc.local_string(format='%Y%m%d')
38
+# 上传
39
+TODAY_UPLOAD_PHOTO_AMOUNT = 'today:upload:photo:amount:%s:%s'  # STRING,日上传照片数量,user_id、tc.local_string(format='%Y%m%d')
40
+# 售出
41
+WEEK_SOLD = 'week:sold:%s:%s:%s'  # STRING,周售出,photo_type、user_id、Week.thisweek().isoformat()
38 42
 
39 43
 # 系统消息相关
40 44
 SYSTEM_MESSAGE_READ_INFO = 'system:message:read:info:%s'  # STRING,系统消息读取信息,user_id