@@ -3,6 +3,6 @@ |
||
3 | 3 |
|
4 | 4 |
[settings] |
5 | 5 |
indent=' ' |
6 |
-line_length=200 |
|
6 |
+line_length=120 |
|
7 | 7 |
lines_after_imports=2 |
8 | 8 |
skip=migrations |
@@ -4,7 +4,8 @@ from curtail_uuid import CurtailUUID |
||
4 | 4 |
from django.contrib import admin |
5 | 5 |
from django.contrib.auth.hashers import make_password |
6 | 6 |
|
7 |
-from account.models import LensmanIncomeExpensesInfo, LensmanInfo, LensmanLoginLogInfo, UserIncomeExpensesInfo, UserInfo, UserLoginLogInfo |
|
7 |
+from account.models import (LensmanIncomeExpensesInfo, LensmanInfo, LensmanLoginLogInfo, UserIncomeExpensesInfo, |
|
8 |
+ UserInfo, UserLoginLogInfo) |
|
8 | 9 |
|
9 | 10 |
|
10 | 11 |
class LensmanInfoAdmin(admin.ModelAdmin): |
@@ -32,10 +32,11 @@ urlpatterns += [ |
||
32 | 32 |
url(r'^g/join$', group_views.group_join_api, name='group_join_api'), # 申请加群 |
33 | 33 |
url(r'^g/lock$', group_views.group_lock_api, name='group_lock_api'), # 群组锁定 |
34 | 34 |
url(r'^g/unlock$', group_views.group_unlock_api, name='group_unlock_api'), # 群组解锁 |
35 |
- url(r'^g/remove$', group_views.group_remove_api, name='group_remove_api'), # 成员移除,管理员主动,群成员被动 |
|
35 |
+ url(r'^g/remove$', group_views.group_remove_api, name='group_remove_api'), # 成员移除, 管理员主动, 群成员被动 |
|
36 | 36 |
url(r'^g/quit$', group_views.group_quit_api, name='group_quit_api'), # 成员退出,群成员主动 |
37 | 37 |
# url(r'^g/pass$', group_views.group_pass_api, name='group_pass_api'), # 申请通过 |
38 | 38 |
# url(r'^g/refuse$', group_views.group_refuse_api, name='group_refuse_api'), # 申请拒绝 |
39 |
+ url(r'^g/data$', group_views.group_data_api, name='group_data_api'), # 群组数据, 评论数, 点赞数 |
|
39 | 40 |
] |
40 | 41 |
|
41 | 42 |
# 飞图相关 |
@@ -2,7 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from django.contrib import admin |
4 | 4 |
|
5 |
-from group.models import GroupInfo, GroupPhotoInfo, GroupPhotoOrderInfo, GroupUserInfo, PhotoCommentInfo, PhotoThumbUpInfo |
|
5 |
+from group.models import (GroupInfo, GroupPhotoInfo, GroupPhotoOrderInfo, GroupUserInfo, PhotoCommentInfo, |
|
6 |
+ PhotoThumbUpInfo) |
|
6 | 7 |
|
7 | 8 |
|
8 | 9 |
class GroupInfoAdmin(admin.ModelAdmin): |
@@ -182,6 +182,14 @@ class GroupPhotoInfo(CreateUpdateMixin): |
||
182 | 182 |
def photo_thumbnail2_url(self): |
183 | 183 |
return img_url(self.photo_thumbnail2_path) |
184 | 184 |
|
185 |
+ @property |
|
186 |
+ def photo_data(self): |
|
187 |
+ return { |
|
188 |
+ 'photo_id': self.pk, |
|
189 |
+ 'comment_num': self.comment_num, |
|
190 |
+ 'thumbup_num': self.thumbup_num, |
|
191 |
+ } |
|
192 |
+ |
|
185 | 193 |
def photo_info(self, user_id): |
186 | 194 |
try: |
187 | 195 |
group = GroupInfo.objects.get(group_id=self.group_id) |
@@ -20,8 +20,11 @@ from message.models import UserMessageInfo |
||
20 | 20 |
from utils.error.errno_utils import GroupPhotoStatusCode, GroupStatusCode, GroupUserStatusCode, UserStatusCode |
21 | 21 |
from utils.error.response_utils import response |
22 | 22 |
from utils.page_utils import pagination |
23 |
-from utils.redis.rgroup import del_group_photo_thumbup_flag, get_group_info, get_group_photo_thumbup_flag, get_group_users_info, set_group_info, set_group_photo_thumbup_flag, set_group_users_info |
|
24 |
-from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_APPLYING_SET, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, |
|
23 |
+from utils.redis.rgroup import (del_group_photo_thumbup_flag, get_group_info, get_group_photo_data, |
|
24 |
+ get_group_photo_thumbup_flag, get_group_users_info, set_group_info, |
|
25 |
+ set_group_photo_data, set_group_photo_thumbup_flag, set_group_users_info) |
|
26 |
+from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_APPLYING_SET, GROUP_USERS_DELETED_SET, |
|
27 |
+ GROUP_USERS_PASSED_SET, GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, |
|
25 | 28 |
LENSMAN_PHOTO_HAGGLE_TIMES, LENSMAN_PHOTO_PRICE) |
26 | 29 |
from utils.redis.rorder import get_lensman_order_record |
27 | 30 |
from utils.sql.raw import PAI2_HOME_API |
@@ -511,6 +514,23 @@ def group_refuse_api(request): |
||
511 | 514 |
}) |
512 | 515 |
|
513 | 516 |
|
517 |
+def group_data_api(request): |
|
518 |
+ """ |
|
519 |
+ 群组数据, 评论数, 点赞数 |
|
520 |
+ :param request: |
|
521 |
+ :return: |
|
522 |
+ """ |
|
523 |
+ group_id = request.POST.get('group_id', '') |
|
524 |
+ |
|
525 |
+ return JsonResponse({ |
|
526 |
+ 'status': 200, |
|
527 |
+ 'message': u'获取群组数据成功', |
|
528 |
+ 'data': { |
|
529 |
+ 'photo_datas': get_group_photo_data(group_id), |
|
530 |
+ } |
|
531 |
+ }) |
|
532 |
+ |
|
533 |
+ |
|
514 | 534 |
def flyimg_upload_api(request): |
515 | 535 |
""" |
516 | 536 |
飞图上传/飞图列表 |
@@ -637,6 +657,9 @@ def comment_submit_api(request): |
||
637 | 657 |
comment=comment, |
638 | 658 |
) |
639 | 659 |
|
660 |
+ # Redis 群组照片数据缓存 |
|
661 |
+ set_group_photo_data(group_id) |
|
662 |
+ |
|
640 | 663 |
# 群组照片评论数更新 |
641 | 664 |
group_photo.comment_num += 1 |
642 | 665 |
group_photo.save() |
@@ -708,6 +731,9 @@ def thumbup_submit_api(request): |
||
708 | 731 |
# Redis 群组照片点赞数据缓存 |
709 | 732 |
set_group_photo_thumbup_flag(photo_id, user_id) |
710 | 733 |
|
734 |
+ # Redis 群组照片数据缓存 |
|
735 |
+ set_group_photo_data(group_id) |
|
736 |
+ |
|
711 | 737 |
# 群组照片点赞数更新 |
712 | 738 |
group_photo.thumbup_num += 1 |
713 | 739 |
group_photo.save() |
@@ -808,6 +834,9 @@ def thumbup_cancel_api(request): |
||
808 | 834 |
# Redis 群组照片点赞数据移除 |
809 | 835 |
del_group_photo_thumbup_flag(photo_id, user_id) |
810 | 836 |
|
837 |
+ # Redis 群组照片数据缓存 |
|
838 |
+ set_group_photo_data(group_id) |
|
839 |
+ |
|
811 | 840 |
# 群组照片点赞数更新 |
812 | 841 |
group_photo.thumbup_num -= 1 |
813 | 842 |
group_photo.save() |
@@ -8,7 +8,8 @@ from message.models import SystemMessageDeleteInfo, SystemMessageInfo, SystemMes |
||
8 | 8 |
from utils.error.errno_utils import MessageStatusCode, UserStatusCode |
9 | 9 |
from utils.error.response_utils import response |
10 | 10 |
from utils.page_utils import pagination |
11 |
-from utils.redis.rmessage import get_system_message_delete_info, get_system_message_read_info, set_system_message_delete_info, set_system_message_read_info |
|
11 |
+from utils.redis.rmessage import (get_system_message_delete_info, get_system_message_read_info, |
|
12 |
+ set_system_message_delete_info, set_system_message_read_info) |
|
12 | 13 |
|
13 | 14 |
|
14 | 15 |
def message_list_api(request): |
@@ -1,19 +1,31 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+import json |
|
4 |
+ |
|
3 | 5 |
from django.conf import settings |
4 | 6 |
|
5 | 7 |
from group.models import GroupInfo, GroupPhotoInfo, GroupUserInfo |
6 |
-from utils.redis.rkeys import GROUP_LAST_PHOTO_PK, GROUP_USERS_APPLYING_SET, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, GROUP_USERS_REFUSED_SET |
|
8 |
+from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_PHOTO_DATA, GROUP_USERS_APPLYING_SET, GROUP_USERS_DELETED_SET, |
|
9 |
+ GROUP_USERS_PASSED_SET, GROUP_USERS_REFUSED_SET) |
|
7 | 10 |
|
8 | 11 |
|
9 | 12 |
r = settings.REDIS_CACHE |
10 | 13 |
|
11 | 14 |
|
15 |
+def retrieve_group_data(): |
|
16 |
+ """ 群组数据 """ |
|
17 |
+ groups = GroupInfo.objects.filter(status=True) |
|
18 |
+ for group in groups: |
|
19 |
+ group_photos = GroupPhotoInfo.objects.filter(group_id=group.group_id, status=True) |
|
20 |
+ group_photos = [photo.photo_data for photo in group_photos] |
|
21 |
+ r.set(GROUP_PHOTO_DATA % group.group_id, json.dumps(group_photos)) |
|
22 |
+ |
|
23 |
+ |
|
12 | 24 |
def retrieve_last_pk(): |
13 | 25 |
""" 群组最后一张照片PK """ |
14 | 26 |
groups = GroupInfo.objects.filter(status=True) |
15 | 27 |
for group in groups: |
16 |
- group_photo = GroupPhotoInfo.objects.filter(group_id=group.group_id).last() |
|
28 |
+ group_photo = GroupPhotoInfo.objects.filter(group_id=group.group_id, status=True).last() |
|
17 | 29 |
r.set(GROUP_LAST_PHOTO_PK % group.group_id, group_photo and group_photo.pk or -1) |
18 | 30 |
|
19 | 31 |
|
@@ -33,5 +45,6 @@ def retrieve_group_user_status(): |
||
33 | 45 |
|
34 | 46 |
|
35 | 47 |
def retrieve_redis_data(): |
48 |
+ retrieve_group_data() |
|
36 | 49 |
retrieve_last_pk() |
37 | 50 |
retrieve_group_user_status() |
@@ -5,7 +5,7 @@ import json |
||
5 | 5 |
from django.conf import settings |
6 | 6 |
from django.core.serializers.json import DjangoJSONEncoder |
7 | 7 |
|
8 |
-from utils.redis.rkeys import GROUP_INFO, GROUP_PHOTO_THUMB_UP, GROUP_USERS_INFO |
|
8 |
+from utils.redis.rkeys import GROUP_INFO, GROUP_PHOTO_DATA, GROUP_PHOTO_THUMB_UP, GROUP_USERS_INFO |
|
9 | 9 |
|
10 | 10 |
|
11 | 11 |
r = settings.REDIS_CACHE |
@@ -71,15 +71,32 @@ def get_group_users_info(group_id, user_id): |
||
71 | 71 |
# 群组照片相关 |
72 | 72 |
|
73 | 73 |
|
74 |
+def set_group_photo_data(group_id): |
|
75 |
+ """ 设置群组照片数据信息 """ |
|
76 |
+ from group.models import GroupPhotoInfo |
|
77 |
+ group_photos = GroupPhotoInfo.objects.filter(group_id=group_id, status=True) |
|
78 |
+ group_photos = [photo.photo_data for photo in group_photos] |
|
79 |
+ r.set(GROUP_PHOTO_DATA % group_id, json.dumps(group_photos)) |
|
80 |
+ return group_photos |
|
81 |
+ |
|
82 |
+ |
|
83 |
+def get_group_photo_data(group_id): |
|
84 |
+ """ 获取群组照片数据信息 """ |
|
85 |
+ return json.loads(r.get(GROUP_PHOTO_DATA % group_id) or '[]') or set_group_photo_data(group_id) |
|
86 |
+ |
|
87 |
+ |
|
74 | 88 |
def set_group_photo_thumbup_flag(photo_id, user_id): |
89 |
+ """ 设置群组照片用户点赞标识信息 """ |
|
75 | 90 |
r.setex(GROUP_PHOTO_THUMB_UP % (photo_id, user_id), settings.REDIS_EXPIRED_MONTH, True) |
76 | 91 |
|
77 | 92 |
|
78 | 93 |
def del_group_photo_thumbup_flag(photo_id, user_id): |
94 |
+ """ 删除群组照片用户点赞标识信息 """ |
|
79 | 95 |
r.delete(GROUP_PHOTO_THUMB_UP % (photo_id, user_id)) |
80 | 96 |
|
81 | 97 |
|
82 | 98 |
def get_group_photo_thumbup_flag(photo_id, user_id): |
99 |
+ """ 获取群组照片用户点赞标识信息 """ |
|
83 | 100 |
if r.exists(GROUP_PHOTO_THUMB_UP % (photo_id, user_id)): |
84 | 101 |
return True |
85 | 102 |
else: |
@@ -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_DATA = 'group:photo:data:%s' # STRING,群组数据记录,photo_id |
|
18 | 19 |
GROUP_PHOTO_THUMB_UP = 'group:photo:thumb:up:%s:%s' # STRING,群组照片用户点赞记录,photo_id、user_id |
19 | 20 |
GROUP_LAST_PHOTO_PK = 'group:last:photo:pk:%s' # STRING,群组最后一张照片PK,group_id |
20 | 21 |
|