@@ -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, |
@@ -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, |
@@ -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 |
@@ -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 |