4733affcd0238L32">32
-            type_unread_messages = SystemMessageInfo.objects.filter(
33
-                src=SystemMessageInfo.PAIAI_USER,
34
-                status=True,
35
-            ).exclude(
36
-                pk__in=list(set(read_message_ids + deleted_message_ids)),
37
-            )
30
+            type_unread_messages = system_unread_messages(user_id, SystemMessageInfo.PAIAI_USER)
38 31
         else:
39 32
             type_unread_messages = UserMessageInfo.objects.filter(
40 33
                 to_uid=user_id,
@@ -63,13 +56,7 @@ def message_type_list_api(request, msg_type):
63 56
     num = int(request.POST.get('num', 0) or request.GET.get('num', 0) or settings.MESSAGE_NUM_PER_PAGE)
64 57
 
65 58
     if msg_type == UserMessageInfo.SYSTEM:
66
-        deleted_message_ids = get_system_message_delete_info(user_id)
67
-        type_messages = SystemMessageInfo.objects.filter(
68
-            src=SystemMessageInfo.PAIAI_USER,
69
-            status=True,
70
-        ).exclude(
71
-            pk__in=deleted_message_ids,
72
-        )
59
+        type_messages = system_messages(user_id, SystemMessageInfo.PAIAI_USER)
73 60
     else:
74 61
         type_messages = UserMessageInfo.objects.filter(
75 62
             to_uid=user_id,
@@ -114,7 +101,7 @@ def message_type_read_api(request, msg_type=None):
114 101
         if _all == 'true':  # 系统消息全部读取
115 102
             for msg in SystemMessageInfo.objects.filter(src=SystemMessageInfo.PAIAI_USER, status=True):
116 103
                 SystemMessageReadInfo.objects.get_or_create(user_id=user_id, msg_id=msg.pk)
117
-        get_system_message_read_info(user_id)
104
+        set_system_message_read_info(user_id)
118 105
     else:
119 106
         if pk > 0:  # 用户(点赞/评论)消息单个读取
120 107
             UserMessageInfo.objects.filter(pk=pk, to_uid=user_id).update(read=True)

+ 43 - 35
pay/views.py

@@ -15,7 +15,7 @@ from photo.models import PhotosInfo
15 15
 from utils.error.errno_utils import GroupPhotoStatusCode, OrderStatusCode, UserStatusCode, WithdrawStatusCode
16 16
 from utils.error.response_utils import response
17 17
 from utils.page_utils import pagination
18
-from utils.redis.rkeys import LENSMAN_PHOTO_PRICE
18
+from utils.redis.rkeys import LENSMAN_PHOTO_PRICE, TODAY_INCOME, TOTAL_INCOME
19 19
 from utils.redis.rorder import set_lensman_order_record
20 20
 
21 21
 
@@ -124,40 +124,48 @@ def order_paid_success(order):
124 124
 
125 125
     set_lensman_order_record(porder)
126 126
 
127
-    if order.to_lid:
128
-        try:
129
-            lensman = LensmanInfo.objects.select_for_update().filter(lensman_id=order.to_lid)[0]
130
-        except IndexError:
131
-            return
132
-
133
-        lensman.balance += order.total_fee
134
-        lensman.save()
135
-
136
-        LensmanIncomeExpensesInfo.objects.create(
137
-            lensman_id=order.to_lid,
138
-            photo_id=order.photo_id,
139
-            type=LensmanIncomeExpensesInfo.INCOME,
140
-            amount=order.total_fee,
141
-            balance=lensman.balance,
142
-            remark=u'图片购买',
143
-        )
144
-    elif order.to_uid:
145
-        try:
146
-            user = UserInfo.objects.select_for_update().filter(user_id=order.to_uid)[0]
147
-        except IndexError:
148
-            return
149
-
150
-        user.balance += order.total_fee
151
-        user.save()
152
-
153
-        UserIncomeExpensesInfo.objects.create(
154
-            user_id=order.user_id,
155
-            photo_id=order.photo_id,
156
-            type=UserIncomeExpensesInfo.INCOME,
157
-            amount=order.total_fee,
158
-            balance=user.balance,
159
-            remark=u'图片购买',
160
-        )
127
+    # Lensman ==> User
128
+    # if order.to_lid:
129
+    #     try:
130
+    #         lensman = LensmanInfo.objects.select_for_update().filter(lensman_id=order.to_lid)[0]
131
+    #     except IndexError:
132
+    #         return
133
+    #
134
+    #     lensman.balance += order.total_fee
135
+    #     lensman.save()
136
+    #
137
+    #     LensmanIncomeExpensesInfo.objects.create(
138
+    #         lensman_id=order.to_lid,
139
+    #         photo_id=order.photo_id,
140
+    #         type=LensmanIncomeExpensesInfo.INCOME,
141
+    #         amount=order.total_fee,
142
+    #         balance=lensman.balance,
143
+    #         remark=u'图片购买',
144
+    #     )
145
+    # elif order.to_uid:
146
+
147
+    to_uid = order.to_uid
148
+    total_fee = order.total_fee
149
+
150
+    try:
151
+        user = UserInfo.objects.select_for_update().filter(user_id=to_uid)[0]
152
+    except IndexError:
153
+        return
154
+
155
+    user.balance += order.total_fee
156
+    user.save()
157
+
158
+    r.incr(TOTAL_INCOME % to_uid, total_fee)
159
+    r.incr(TODAY_INCOME % (to_uid, tc.local_string(format='%Y%m%d')), total_fee)
160
+
161
+    UserIncomeExpensesInfo.objects.create(
162
+        user_id=to_uid,
163
+        photo_id=order.photo_id,
164
+        type=UserIncomeExpensesInfo.INCOME,
165
+        amount=total_fee,
166
+        balance=user.balance,
167
+        remark=u'图片购买',
168
+    )
161 169
 
162 170
 
163 171
 def order_paid_fail(order):

+ 1 - 1
utils/error/response_utils.py

@@ -16,4 +16,4 @@ def response_data(status_code, message=None, description=None, data={}):
16 16
 
17 17
 def response(status_code, message=None, description=None, data={}):
18 18
     message, description = (status_code.message, status_code.description) if isinstance(status_code, StatusCodeField) else (message, description)
19
-    return JsonResponse(response_data(status_code, message, description, data))
19
+    return JsonResponse(response_data(status_code, message, description, data), safe=False)

+ 17 - 0
utils/message_utils.py

@@ -0,0 +1,17 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from message.models import SystemMessageInfo
4
+from utils.redis.rmessage import get_system_message_delete_info, get_system_message_read_info
5
+
6
+
7
+def system_messages(user_id, src=SystemMessageInfo.PAIAI_USER):
8
+    """ Not Deleted """
9
+    deleted_message_ids = get_system_message_delete_info(user_id)
10
+    return SystemMessageInfo.objects.filter(src=src, status=True).exclude(pk__in=deleted_message_ids)
11
+
12
+
13
+def system_unread_messages(user_id, src):
14
+    """ Not Deleted & Read """
15
+    read_message_ids = get_system_message_read_info(user_id)
16
+    deleted_message_ids = get_system_message_delete_info(user_id)
17
+    return SystemMessageInfo.objects.filter(src=src, status=True).exclude(pk__in=list(set(read_message_ids + deleted_message_ids)))

+ 6 - 0
utils/redis/rkeys.py

@@ -30,6 +30,12 @@ LENSMAN_PHOTO_PRICE = 'lensman:photo:price:%s:%s:%s'  # STRING,摄影师照片
30 30
 LENSMAN_PHOTO_HAGGLE_TIMES = 'lensman:photo:haggle:times:%s:%s:%s'  # STRING,摄影师照片砍价次数,photo_id、user_id、photo_type
31 31
 LENSMAN_PHOTO_ORDER_RECORD = 'lensman:photo:order:record:%s:%s'  # STRING,摄影师照片购买记录,photo_id、user_id
32 32
 
33
+# 摄影师简报相关
34
+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')
38
+
33 39
 # 系统消息相关
34 40
 SYSTEM_MESSAGE_READ_INFO = 'system:message:read:info:%s'  # STRING,系统消息读取信息,user_id
35 41
 SYSTEM_MESSAGE_DELETED_INFO = 'system:message:deleted:info:%s'  # STRING,系统消息删除信息,user_id

Kodo/kodo - Gogs: Go Git Service

1 Commits (1683c24802a3d83f7a8e8df9adddbba3846a056d)

Auteur SHA1 Bericht Datum
  Brightcells feebb32686 Add pc website 9 jaren geleden