add GROUP_PHOTO_WATCHER_SET

Brightcells 9 anos atrás
pai
commit
86aa86bbba
4 arquivos alterados com 41 adições e 59 exclusões
  1. 19 55
      group/views.py
  2. 15 3
      utils/redis/retrieve.py
  3. 6 1
      utils/redis/rgroup.py
  4. 1 0
      utils/redis/rkeys.py

+ 19 - 55
group/views.py

@@ -25,7 +25,7 @@ from utils.error.response_utils import response
25 25
 from utils.page_utils import pagination
26 26
 from utils.redis.rgroup import (del_group_photo_thumbup_flag, get_group_info, get_group_photo_comment_list,
27 27
                                 get_group_photo_data, get_group_photo_thumbup_flag, get_group_photo_thumbup_list,
28
-                                get_group_users_info, set_group_info, set_group_photo_data,
28
+                                get_group_photo_watchers, get_group_users_info, set_group_info, set_group_photo_data,
29 29
                                 set_group_photo_thumbup_flag, set_group_users_info)
30 30
 from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_APPLYING_SET, GROUP_USERS_DELETED_SET,
31 31
                                GROUP_USERS_PASSED_SET, GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET,
@@ -683,43 +683,25 @@ def comment_submit_api(request):
683 683
                 msg_content=comment,
684 684
             )
685 685
 
686
-    # 群组照片评论列表
687
-    photo_comments = get_group_photo_comment_list(photo_id)
688
-
689
-    # 群组照片点赞列表
690
-    photo_thumbups = get_group_photo_thumbup_list(photo_id)
691
-
692
-    # 给所有评论/点赞者发送提醒
693
-    for commenter in photo_comments:
694
-        UserMessageInfo.objects.create(
695
-            from_uid=user_id,
696
-            from_nickname=group_user.nickname,
697
-            from_avatar=group_user.avatar,
698
-            to_uid=commenter['user_id'],
699
-            group_id=group_photo.group_id,
700
-            photo_id=group_photo.pk,
701
-            msg_type=UserMessageInfo.COMMENT,
702
-            msg_title=u'评论',
703
-            msg_content=comment,
704
-        )
705
-    for thumber in photo_thumbups:
706
-        UserMessageInfo.objects.create(
707
-            from_uid=user_id,
708
-            from_nickname=group_user.nickname,
709
-            from_avatar=group_user.avatar,
710
-            to_uid=thumber['user_id'],
711
-            group_id=group_photo.group_id,
712
-            photo_id=group_photo.pk,
713
-            msg_type=UserMessageInfo.COMMENT,
714
-            msg_title=u'评论',
715
-            msg_content=comment,
716
-        )
686
+        # 给所有关注者(评论/点赞)发送提醒
687
+        for watcher in get_group_photo_watchers(photo_id):
688
+            UserMessageInfo.objects.create(
689
+                from_uid=user_id,
690
+                from_nickname=group_user.nickname,
691
+                from_avatar=group_user.avatar,
692
+                to_uid=watcher,
693
+                group_id=group_photo.group_id,
694
+                photo_id=group_photo.pk,
695
+                msg_type=UserMessageInfo.COMMENT,
696
+                msg_title=u'评论',
697
+                msg_content=comment,
698
+            )
717 699
 
718 700
     return JsonResponse({
719 701
         'status': 200,
720 702
         'message': u'评论成功',
721 703
         'data': {
722
-            'comments': photo_comments,
704
+            'comments': get_group_photo_comment_list(photo_id),
723 705
         }
724 706
     })
725 707
 
@@ -784,31 +766,13 @@ def thumbup_submit_api(request):
784 766
             msg_content=u'点赞',
785 767
         )
786 768
 
787
-    # 群组照片评论列表
788
-    photo_comments = get_group_photo_comment_list(photo_id)
789
-
790
-    # 群组照片点赞列表
791
-    photo_thumbups = get_group_photo_thumbup_list(photo_id)
792
-
793
-    # 给所有评论/点赞者发送提醒
794
-    for commenter in photo_comments:
795
-        UserMessageInfo.objects.create(
796
-            from_uid=user_id,
797
-            from_nickname=group_user.nickname,
798
-            from_avatar=group_user.avatar,
799
-            to_uid=commenter['user_id'],
800
-            group_id=group_photo.group_id,
801
-            photo_id=group_photo.pk,
802
-            msg_type=UserMessageInfo.THUMBUP,
803
-            msg_title=u'点赞',
804
-            msg_content=u'点赞',
805
-        )
806
-    for thumber in photo_thumbups:
769
+    # 给所有关注者(评论/点赞)发送提醒
770
+    for watcher in get_group_photo_watchers(photo_id):
807 771
         UserMessageInfo.objects.create(
808 772
             from_uid=user_id,
809 773
             from_nickname=group_user.nickname,
810 774
             from_avatar=group_user.avatar,
811
-            to_uid=thumber['user_id'],
775
+            to_uid=watcher,
812 776
             group_id=group_photo.group_id,
813 777
             photo_id=group_photo.pk,
814 778
             msg_type=UserMessageInfo.THUMBUP,
@@ -821,7 +785,7 @@ def thumbup_submit_api(request):
821 785
         'message': u'点赞提交成功',
822 786
         'data': {
823 787
             'thumbup': True,
824
-            'thumbups': photo_thumbups,
788
+            'thumbups': get_group_photo_thumbup_list(photo_id),
825 789
         }
826 790
     })
827 791
 

+ 15 - 3
utils/redis/retrieve.py

@@ -4,10 +4,10 @@ import json
4 4
 
5 5
 from django.conf import settings
6 6
 
7
-from group.models import GroupInfo, GroupPhotoInfo, GroupUserInfo
7
+from group.models import GroupInfo, GroupPhotoInfo, GroupUserInfo, PhotoCommentInfo, PhotoThumbUpInfo
8 8
 from utils.redis.rgroup import set_group_photo_data, set_group_users_info
9
-from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_APPLYING_SET, GROUP_USERS_DELETED_SET,
10
-                               GROUP_USERS_PASSED_SET, GROUP_USERS_REFUSED_SET)
9
+from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_PHOTO_WATCHER_SET, GROUP_USERS_APPLYING_SET,
10
+                               GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, GROUP_USERS_REFUSED_SET)
11 11
 
12 12
 
13 13
 r = settings.REDIS_CACHE
@@ -46,7 +46,19 @@ def retrieve_group_user_status():
46 46
             r.sadd(GROUP_USERS_REFUSED_SET % group_id, user_id)
47 47
 
48 48
 
49
+def retrieve_group_photo_watchers():
50
+    group_photos = GroupPhotoInfo.objects.filter(status=True)
51
+    for group_photo in group_photos:
52
+        photo_comments = PhotoCommentInfo.objects.filter(photo_id=group_photo.pk)
53
+        for photo_comment in photo_comments:
54
+            r.sadd(GROUP_PHOTO_WATCHER_SET % group_photo.pk, photo_comment.user_id)
55
+        photo_thumbups = PhotoThumbUpInfo.objects.filter(photo_id=group_photo.pk)
56
+        for photo_thumbup in photo_thumbups:
57
+            r.sadd(GROUP_PHOTO_WATCHER_SET % group_photo.pk, photo_thumbup.user_id)
58
+
59
+
49 60
 def retrieve_redis_data():
50 61
     retrieve_group_data()
51 62
     retrieve_last_pk()
52 63
     retrieve_group_user_status()
64
+    retrieve_group_photo_watchers()

+ 6 - 1
utils/redis/rgroup.py

@@ -6,7 +6,7 @@ from django.conf import settings
6 6
 from django.core.serializers.json import DjangoJSONEncoder
7 7
 
8 8
 from utils.redis.rkeys import (GROUP_INFO, GROUP_PHOTO_COMMENT_LIST, GROUP_PHOTO_DATA, GROUP_PHOTO_THUMB_UP,
9
-                               GROUP_PHOTO_THUMB_UP_LIST, GROUP_USERS_INFO)
9
+                               GROUP_PHOTO_THUMB_UP_LIST, GROUP_PHOTO_WATCHER_SET, GROUP_USERS_INFO)
10 10
 
11 11
 
12 12
 r = settings.REDIS_CACHE
@@ -135,3 +135,8 @@ def set_group_photo_thumbup_list(photo_id):
135 135
 def get_group_photo_thumbup_list(photo_id):
136 136
     """ 获取群组照片用户点赞列表 """
137 137
     return json.loads(r.get(GROUP_PHOTO_THUMB_UP_LIST % photo_id) or '[]') or set_group_photo_thumbup_list(photo_id)
138
+
139
+
140
+def get_group_photo_watchers(photo_id):
141
+    """ 获取群组照片用户关注列表 """
142
+    return r.smembers(GROUP_PHOTO_WATCHER_SET % photo_id)

+ 1 - 0
utils/redis/rkeys.py

@@ -19,6 +19,7 @@ GROUP_PHOTO_DATA = 'group:photo:data:%s'  # STRING,群组数据记录,photo_
19 19
 GROUP_PHOTO_THUMB_UP = 'group:photo:thumb:up:%s:%s'  # STRING,群组照片用户点赞记录,photo_id、user_id
20 20
 GROUP_PHOTO_COMMENT_LIST = 'group:photo:comment:list:%s'  # STRING,群组照片用户评论列表,photo_id
21 21
 GROUP_PHOTO_THUMB_UP_LIST = 'group:photo:thumb:up:list:%s'  # STRING,群组照片用户点赞列表,photo_id
22
+GROUP_PHOTO_WATCHER_SET = 'group:photo:watcher:set:%s'  # SET,群组照片用户关注集合,photo_id,关注即评论点赞
22 23
 GROUP_LAST_PHOTO_PK = 'group:last:photo:pk:%s'  # STRING,群组最后一张照片PK,group_id
23 24
 
24 25
 # 摄影师照片相关