@@ -23,9 +23,9 @@ from utils.error.errno_utils import LensmanStatusCode, OrderStatusCode, UserStat |
||
23 | 23 |
from utils.error.response_utils import response |
24 | 24 |
from utils.message_utils import system_messages |
25 | 25 |
from utils.page_utils import pagination |
26 |
+from utils.redis.rbrief import set_brief_info |
|
26 | 27 |
from utils.redis.rgroup import get_group_info, set_group_info |
27 |
-from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, TODAY_INCOME, TODAY_UPLOAD_PHOTO_AMOUNT, TOTAL_INCOME, WEEK_INCOME, |
|
28 |
- WEEK_SOLD) |
|
28 |
+from utils.redis.rkeys import GROUP_LAST_PHOTO_PK, TODAY_INCOME, TODAY_UPLOAD_PHOTO_AMOUNT, WEEK_INCOME, WEEK_SOLD |
|
29 | 29 |
from utils.redis.rorder import set_lensman_order_record |
30 | 30 |
from utils.redis.rprice import get_lensman_price_fixed, set_lensman_price_fixed |
31 | 31 |
from utils.thumbnail_utils import make_thumbnail |
@@ -302,14 +302,14 @@ def lensman_origin_photo_upload_api(request): |
||
302 | 302 |
|
303 | 303 |
# 原图已删除, 处理退款逻辑 |
304 | 304 |
if deleted and order.photo_status == OrderInfo.WANTED: |
305 |
- # 用户增加余额 |
|
305 |
+ # 用户余额增加 |
|
306 | 306 |
try: |
307 | 307 |
from_user = UserInfo.objects.select_for_update().get(user_id=order.from_uid) |
308 | 308 |
except UserInfo.DoesNotExist: |
309 | 309 |
pass |
310 | 310 |
|
311 | 311 |
if from_user: |
312 |
- # 增加余额 |
|
312 |
+ # 余额增加 |
|
313 | 313 |
from_user.balance += order.total_fee |
314 | 314 |
from_user.save() |
315 | 315 |
# 余额记录 |
@@ -324,14 +324,14 @@ def lensman_origin_photo_upload_api(request): |
||
324 | 324 |
remark=u'高清图购买退款', |
325 | 325 |
) |
326 | 326 |
|
327 |
- # 摄影师减少余额 |
|
327 |
+ # 摄影师余额减少 |
|
328 | 328 |
try: |
329 | 329 |
to_user = UserInfo.objects.select_for_update().get(user_id=order.to_uid) |
330 | 330 |
except UserInfo.DoesNotExist: |
331 | 331 |
pass |
332 | 332 |
|
333 | 333 |
if to_user: |
334 |
- # 减少余额 |
|
334 |
+ # 余额减少 |
|
335 | 335 |
to_user.freeze_balance -= order.total_fee |
336 | 336 |
to_user.save() |
337 | 337 |
# 余额记录 |
@@ -346,20 +346,6 @@ def lensman_origin_photo_upload_api(request): |
||
346 | 346 |
remark=u'高清图购买退款', |
347 | 347 |
) |
348 | 348 |
|
349 |
- # Redis 数值更新 |
|
350 |
- ymd = tc.local_string(tc.to_local_datetime(order.created_at), format='%Y%m%d') |
|
351 |
- week = Week.withdate(order.created_at) |
|
352 |
- |
|
353 |
- # 总收入 |
|
354 |
- r.decr_limit(TOTAL_INCOME % (order.to_uid, order.photo_type), order.total_fee, limit=0) |
|
355 |
- # 周收入 |
|
356 |
- r.decr_limit(WEEK_INCOME % (order.to_uid, order.photo_type, week), order.total_fee, limit=0) |
|
357 |
- # 日收入 |
|
358 |
- r.decr_limit(TODAY_INCOME % (order.to_uid, order.photo_type, ymd), order.total_fee, limit=0) |
|
359 |
- |
|
360 |
- # 周售出 |
|
361 |
- r.decr_limit(WEEK_SOLD % (order.to_uid, order.photo_type, week), limit=0) |
|
362 |
- |
|
363 | 349 |
# 更新订单状态 |
364 | 350 |
order.photo_status = OrderInfo.DELETED |
365 | 351 |
order.reback_status = True |
@@ -404,10 +390,12 @@ def lensman_origin_photo_upload_api(request): |
||
404 | 390 |
pass |
405 | 391 |
|
406 | 392 |
if to_user: |
407 |
- # 减少余额 |
|
393 |
+ # 余额解冻 |
|
408 | 394 |
to_user.balance += order.total_fee |
409 | 395 |
to_user.freeze_balance -= order.total_fee |
410 | 396 |
to_user.save() |
397 |
+ # Redis 数值更新 |
|
398 |
+ set_brief_info(order.to_uid, order.photo_type, order.total_fee, dt=order.created_at) |
|
411 | 399 |
# 余额记录 |
412 | 400 |
UserIncomeExpensesInfo.objects.create( |
413 | 401 |
user_id=order.to_uid, |
@@ -4,7 +4,6 @@ import xmltodict |
||
4 | 4 |
from django.conf import settings |
5 | 5 |
from django.db import transaction |
6 | 6 |
from django.shortcuts import HttpResponse |
7 |
-from isoweek import Week |
|
8 | 7 |
from logit import logit |
9 | 8 |
from TimeConvert import TimeConvert as tc |
10 | 9 |
from wechatpy import WeChatPay, WeChatPayException |
@@ -16,7 +15,7 @@ from photo.models import PhotosInfo |
||
16 | 15 |
from utils.error.errno_utils import GroupPhotoStatusCode, OrderStatusCode, UserStatusCode, WithdrawStatusCode |
17 | 16 |
from utils.error.response_utils import response |
18 | 17 |
from utils.page_utils import pagination |
19 |
-from utils.redis.rkeys import LENSMAN_PHOTO_PRICE, TODAY_INCOME, TOTAL_INCOME, WEEK_INCOME, WEEK_SOLD |
|
18 |
+from utils.redis.rbrief import set_brief_info |
|
20 | 19 |
from utils.redis.rorder import set_lensman_order_record |
21 | 20 |
|
22 | 21 |
|
@@ -143,37 +142,27 @@ def order_paid_success(order): |
||
143 | 142 |
return |
144 | 143 |
|
145 | 144 |
if order.photo_type == OrderInfo.NOMARK: |
145 |
+ # 余额增加 |
|
146 | 146 |
amount, freeze_amount = total_fee, 0 |
147 | 147 |
user.balance += amount |
148 |
+ # Redis 数值更新 |
|
149 |
+ set_brief_info(to_uid, order.photo_type, total_fee) |
|
150 |
+ # 余额记录 |
|
151 |
+ UserIncomeExpensesInfo.objects.create( |
|
152 |
+ user_id=to_uid, |
|
153 |
+ photo_id=order.photo_id, |
|
154 |
+ type=UserIncomeExpensesInfo.INCOME, |
|
155 |
+ amount=amount, |
|
156 |
+ balance=user.balance, |
|
157 |
+ freeze_amount=freeze_amount, |
|
158 |
+ freeze_balance=user.freeze_balance, |
|
159 |
+ remark=u'图片购买', |
|
160 |
+ ) |
|
148 | 161 |
elif order.photo_type == OrderInfo.ORIGIN: |
149 | 162 |
amount, freeze_amount = 0, total_fee |
150 | 163 |
user.freeze_balance += freeze_amount |
151 | 164 |
user.save() |
152 | 165 |
|
153 |
- ymd = tc.local_string(format='%Y%m%d') |
|
154 |
- week = Week.thisweek().isoformat() |
|
155 |
- |
|
156 |
- # 总收入 |
|
157 |
- r.incr(TOTAL_INCOME % (to_uid, order.photo_type), total_fee) |
|
158 |
- # 周收入 |
|
159 |
- r.incr(WEEK_INCOME % (to_uid, order.photo_type, week), total_fee) |
|
160 |
- # 日收入 |
|
161 |
- r.incr(TODAY_INCOME % (to_uid, order.photo_type, ymd), total_fee) |
|
162 |
- |
|
163 |
- # 周售出 |
|
164 |
- r.incr(WEEK_SOLD % (to_uid, order.photo_type, week)) |
|
165 |
- |
|
166 |
- UserIncomeExpensesInfo.objects.create( |
|
167 |
- user_id=to_uid, |
|
168 |
- photo_id=order.photo_id, |
|
169 |
- type=UserIncomeExpensesInfo.INCOME, |
|
170 |
- amount=amount, |
|
171 |
- balance=user.balance, |
|
172 |
- freeze_amount=freeze_amount, |
|
173 |
- freeze_balance=user.freeze_balance, |
|
174 |
- remark=u'图片购买', |
|
175 |
- ) |
|
176 |
- |
|
177 | 166 |
|
178 | 167 |
def order_paid_fail(order): |
179 | 168 |
if order.pay_status == OrderInfo.FAIL: |
@@ -0,0 +1,28 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+from django.conf import settings |
|
4 |
+from isoweek import Week |
|
5 |
+from TimeConvert import TimeConvert as tc |
|
6 |
+ |
|
7 |
+from utils.redis.rkeys import TODAY_INCOME, TOTAL_INCOME, WEEK_INCOME, WEEK_SOLD |
|
8 |
+ |
|
9 |
+ |
|
10 |
+r = settings.REDIS_CACHE |
|
11 |
+ |
|
12 |
+ |
|
13 |
+# 简报相关 |
|
14 |
+ |
|
15 |
+ |
|
16 |
+def set_brief_info(uid, ptype, fee, dt=None): |
|
17 |
+ """ 更新简报信息 """ |
|
18 |
+ ymd, week = (tc.local_string(tc.to_local_datetime(dt), format='%Y%m%d'), Week.withdate(dt)) if dt else (tc.local_string(format='%Y%m%d'), Week.thisweek().isoformat()) |
|
19 |
+ |
|
20 |
+ # 总收入 |
|
21 |
+ r.incr(TOTAL_INCOME % (uid, ptype), fee) |
|
22 |
+ # 周收入 |
|
23 |
+ r.incr(WEEK_INCOME % (uid, ptype, week), fee) |
|
24 |
+ # 日收入 |
|
25 |
+ r.incr(TODAY_INCOME % (uid, ptype, ymd), fee) |
|
26 |
+ |
|
27 |
+ # 周售出 |
|
28 |
+ r.incr(WEEK_SOLD % (uid, ptype, week)) |