add api group_data_api

Brightcells %!s(int64=9) %!d(string=hace) años
padre
commit
afcdf74a49
Se han modificado 10 ficheros con 82 adiciones y 10 borrados
  1. 1 1
      .isort.cfg
  2. 2 1
      account/admin.py
  3. 2 1
      api/urls.py
  4. 2 1
      group/admin.py
  5. 8 0
      group/models.py
  6. 31 2
      group/views.py
  7. 2 1
      message/views.py
  8. 15 2
      utils/redis/retrieve.py
  9. 18 1
      utils/redis/rgroup.py
  10. 1 0
      utils/redis/rkeys.py

+ 1 - 1
.isort.cfg

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

+ 2 - 1
account/admin.py

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

+ 2 - 1
api/urls.py

@@ -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 - 1
group/admin.py

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

+ 8 - 0
group/models.py

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

+ 31 - 2
group/views.py

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

+ 2 - 1
message/views.py

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

+ 15 - 2
utils/redis/retrieve.py

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

+ 18 - 1
utils/redis/rgroup.py

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

+ 1 - 0
utils/redis/rkeys.py

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