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