@@ -8,6 +8,11 @@ from pai2.basemodels import CreateUpdateMixin |
||
8 | 8 |
|
9 | 9 |
from utils.url_utils import img_url |
10 | 10 |
|
11 |
+from utils.redis.rgroup import get_group_photo_thumbup_flag |
|
12 |
+ |
|
13 |
+ |
|
14 |
+r = settings.REDIS_CACHE |
|
15 |
+ |
|
11 | 16 |
|
12 | 17 |
class GroupInfo(CreateUpdateMixin): |
13 | 18 |
APP_GROUP = 0 |
@@ -160,8 +165,7 @@ class GroupPhotoInfo(CreateUpdateMixin): |
||
160 | 165 |
def photo_thumbnail_url(self): |
161 | 166 |
return img_url(self.photo_thumbnail_path) |
162 | 167 |
|
163 |
- @property |
|
164 |
- def photo_info(self): |
|
168 |
+ def photo_info(self, user_id): |
|
165 | 169 |
try: |
166 | 170 |
group = GroupInfo.objects.get(group_id=self.group_id) |
167 | 171 |
except GroupInfo.DoesNotExist: |
@@ -171,6 +175,7 @@ class GroupPhotoInfo(CreateUpdateMixin): |
||
171 | 175 |
'group_name': group and group.group_name, |
172 | 176 |
'group_default_avatar': group and group.group_default_avatar, |
173 | 177 |
'group_avatar': group and group.group_avatar_url, |
178 |
+ 'group_from': group and group.group_from, |
|
174 | 179 |
'photo_id': self.pk, |
175 | 180 |
'photo_url': self.photo_url, |
176 | 181 |
'photo_w': self.photo_w, |
@@ -182,6 +187,7 @@ class GroupPhotoInfo(CreateUpdateMixin): |
||
182 | 187 |
'nickname': self.nickname, |
183 | 188 |
'avatar': self.avatar, |
184 | 189 |
'comment_num': self.comment_num, |
190 |
+ 'thumbup': get_group_photo_thumbup_flag(self.pk, user_id), |
|
185 | 191 |
'thumbup_num': self.thumbup_num, |
186 | 192 |
'photo_from': self.photo_from, |
187 | 193 |
'created_at': self.created_at.replace(microsecond=0), |
@@ -26,6 +26,7 @@ from utils.redis.rkeys import ( |
||
26 | 26 |
) |
27 | 27 |
from utils.redis.rkeys import GROUP_LAST_PHOTO_PK |
28 | 28 |
from utils.redis.rgroup import set_group_info, get_group_info, set_group_users_info, get_group_users_info |
29 |
+from utils.redis.rgroup import set_group_photo_thumbup_flag, del_group_photo_thumbup_flag, get_group_photo_thumbup_flag |
|
29 | 30 |
|
30 | 31 |
from utils.sql.raw import PAI2_HOME_API |
31 | 32 |
|
@@ -590,7 +591,7 @@ def flyimg_upload_api(request): |
||
590 | 591 |
'message': u'飞图上传成功', |
591 | 592 |
'data': { |
592 | 593 |
'current_id': latest_photo and latest_photo.pk or current_id, |
593 |
- 'photos': [photo.photo_info for photo in group_photos], |
|
594 |
+ 'photos': [photo.photo_info(user_id) for photo in group_photos], |
|
594 | 595 |
} |
595 | 596 |
}) |
596 | 597 |
|
@@ -696,6 +697,9 @@ def thumbup_submit_api(request): |
||
696 | 697 |
photo_thumbup.thumbup = True |
697 | 698 |
photo_thumbup.save() |
698 | 699 |
|
700 |
+ # Redis 群组照片点赞数据缓存 |
|
701 |
+ set_group_photo_thumbup_flag(photo_id, user_id) |
|
702 |
+ |
|
699 | 703 |
# 群组照片点赞数更新 |
700 | 704 |
group_photo.thumbup_num += 1 |
701 | 705 |
group_photo.save() |
@@ -793,6 +797,9 @@ def thumbup_cancel_api(request): |
||
793 | 797 |
photo_thumbup.thumbup = False |
794 | 798 |
photo_thumbup.save() |
795 | 799 |
|
800 |
+ # Redis 群组照片点赞数据移除 |
|
801 |
+ del_group_photo_thumbup_flag(photo_id, user_id) |
|
802 |
+ |
|
796 | 803 |
# 群组照片点赞数更新 |
797 | 804 |
group_photo.thumbup_num -= 1 |
798 | 805 |
group_photo.save() |
@@ -872,6 +879,8 @@ def pai2_home_api(request): |
||
872 | 879 |
'created_at': row[18], |
873 | 880 |
} for row in rows] |
874 | 881 |
|
882 |
+ [row.update({'thumbup': get_group_photo_thumbup_flag(row['photo_id'], user_id)}) for row in rows] |
|
883 |
+ |
|
875 | 884 |
return JsonResponse({ |
876 | 885 |
'status': 200, |
877 | 886 |
'message': u'获取首页列表成功', |
@@ -241,7 +241,7 @@ def session_detail_api(request, session): |
||
241 | 241 |
# 'count': photos.count(), |
242 | 242 |
# 'photos': [p.detail for p in photos], |
243 | 243 |
'current_id': latest_photo and latest_photo.pk or current_id, |
244 |
- 'photos': [photo.photo_info for photo in group_photos], |
|
244 |
+ 'photos': [photo.photo_info(user_id) for photo in group_photos], |
|
245 | 245 |
'group_id': group_id, |
246 | 246 |
'group': group_info, |
247 | 247 |
'user_id': user_id, |
@@ -3,7 +3,7 @@ |
||
3 | 3 |
from django.conf import settings |
4 | 4 |
from django.core.serializers.json import DjangoJSONEncoder |
5 | 5 |
|
6 |
-from utils.redis.rkeys import GROUP_INFO, GROUP_USERS_INFO, GROUP_LAST_PHOTO_PK |
|
6 |
+from utils.redis.rkeys import GROUP_INFO, GROUP_USERS_INFO, GROUP_PHOTO_THUMB_UP |
|
7 | 7 |
|
8 | 8 |
import json |
9 | 9 |
|
@@ -66,3 +66,26 @@ def get_group_users_info(group_id, user_id): |
||
66 | 66 |
if group_users and user_id != admin_id: |
67 | 67 |
[group_users.pop(k) for k in ['applying_count', 'applying']] |
68 | 68 |
return group_users |
69 |
+ |
|
70 |
+ |
|
71 |
+# 群组照片相关 |
|
72 |
+ |
|
73 |
+ |
|
74 |
+def set_group_photo_thumbup_flag(photo_id, user_id): |
|
75 |
+ r.set(GROUP_PHOTO_THUMB_UP % (photo_id, user_id)) |
|
76 |
+ |
|
77 |
+ |
|
78 |
+def del_group_photo_thumbup_flag(photo_id, user_id): |
|
79 |
+ r.delete(GROUP_PHOTO_THUMB_UP % (photo_id, user_id)) |
|
80 |
+ |
|
81 |
+ |
|
82 |
+def get_group_photo_thumbup_flag(photo_id, user_id): |
|
83 |
+ if r.exists(GROUP_PHOTO_THUMB_UP % (photo_id, user_id)): |
|
84 |
+ return True |
|
85 |
+ else: |
|
86 |
+ from group.models import PhotoThumbUpInfo |
|
87 |
+ if PhotoThumbUpInfo.objects.filter(photo_id=photo_id, user_id=user_id).exists(): |
|
88 |
+ set_group_photo_thumbup_flag(photo_id, user_id) |
|
89 |
+ return True |
|
90 |
+ else: |
|
91 |
+ return False |
@@ -15,6 +15,7 @@ GROUP_USERS_DELETED_SET = 'group:users:deleted:set:%s' # SET,群组用户移 |
||
15 | 15 |
GROUP_USERS_QUIT_SET = 'group:users:quit:set:%s' # SET,群组用户退出集合,group_id |
16 | 16 |
|
17 | 17 |
# 群组照片相关 |
18 |
+GROUP_PHOTO_THUMB_UP = 'group:photo:thumb:up:%s:%s' # STRING,群组照片用户点赞记录,photo_id、user_id |
|
18 | 19 |
GROUP_LAST_PHOTO_PK = 'group:last:photo:pk:%s' # STRING,群组最后一张照片PK,group_id |
19 | 20 |
|
20 | 21 |
# 系统消息相关 |