拍爱

rgroup.py 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. # -*- coding: utf-8 -*-
  2. import json
  3. from django.conf import settings
  4. from django.core.serializers.json import DjangoJSONEncoder
  5. from utils.redis.rkeys import (GROUP_INFO, GROUP_PHOTO_COMMENT_LIST, GROUP_PHOTO_DATA, GROUP_PHOTO_THUMB_UP,
  6. GROUP_PHOTO_THUMB_UP_LIST, GROUP_PHOTO_WATCHER_SET, GROUP_USERS_INFO)
  7. r = settings.REDIS_CACHE
  8. # 群组信息相关
  9. def set_group_info(group):
  10. """ 设置群组信息 """
  11. group_data = group.data
  12. r.setex(GROUP_INFO % group.group_id, settings.REDIS_EXPIRED_MONTH, json.dumps(group_data, cls=DjangoJSONEncoder))
  13. return group_data
  14. def set_group_info_by_id(group_id):
  15. """ 设置群组信息 """
  16. from group.models import GroupInfo
  17. try:
  18. group = GroupInfo.objects.get(group_id=group_id)
  19. except GroupInfo.DoesNotExist:
  20. return {}
  21. return set_group_info(group)
  22. def get_group_info(group_id):
  23. """ 获取群组信息 """
  24. return json.loads(r.get(GROUP_INFO % group_id) or '{}') or set_group_info_by_id(group_id)
  25. # 群组用户信息相关
  26. def set_group_users_info(group):
  27. """ 设置群组用户信息 """
  28. group_users = group.users(admin=False)
  29. group_users_data = {
  30. 'group_users': group_users,
  31. 'admin_id': group.admin_id,
  32. }
  33. r.setex(GROUP_USERS_INFO % group.group_id, settings.REDIS_EXPIRED_MONTH, json.dumps(group_users_data, cls=DjangoJSONEncoder))
  34. return group_users_data
  35. def set_group_users_info_by_id(group_id):
  36. """ 设置群组用户信息 """
  37. from group.models import GroupInfo
  38. try:
  39. group = GroupInfo.objects.get(group_id=group_id)
  40. except GroupInfo.DoesNotExist:
  41. return {}
  42. return set_group_users_info(group)
  43. def get_group_users_info(group_id, user_id):
  44. """ 获取群组用户信息 """
  45. group_users_data = json.loads(r.get(GROUP_USERS_INFO % group_id) or '{}') or set_group_users_info_by_id(group_id)
  46. group_users, admin_id = group_users_data.get('group_users', {}), group_users_data.get('admin_id', '')
  47. if group_users and user_id != admin_id:
  48. [group_users.pop(k) for k in ['applying_count', 'applying']]
  49. return group_users
  50. # 群组照片相关
  51. def set_group_photo_data(group_id):
  52. """ 设置群组照片数据信息 """
  53. from group.models import GroupPhotoInfo
  54. group_photos = GroupPhotoInfo.objects.filter(group_id=group_id, status=True)
  55. group_photos = [photo.photo_data for photo in group_photos]
  56. r.set(GROUP_PHOTO_DATA % group_id, json.dumps(group_photos))
  57. return group_photos
  58. def get_group_photo_data(group_id):
  59. """ 获取群组照片数据信息 """
  60. return json.loads(r.get(GROUP_PHOTO_DATA % group_id) or '[]') or set_group_photo_data(group_id)
  61. def set_group_photo_thumbup_flag(photo_id, user_id):
  62. """ 设置群组照片用户点赞标识信息 """
  63. r.setex(GROUP_PHOTO_THUMB_UP % (photo_id, user_id), settings.REDIS_EXPIRED_MONTH, True)
  64. def del_group_photo_thumbup_flag(photo_id, user_id):
  65. """ 删除群组照片用户点赞标识信息 """
  66. r.delete(GROUP_PHOTO_THUMB_UP % (photo_id, user_id))
  67. def get_group_photo_thumbup_flag(photo_id, user_id):
  68. """ 获取群组照片用户点赞标识信息 """
  69. if r.exists(GROUP_PHOTO_THUMB_UP % (photo_id, user_id)):
  70. return True
  71. else:
  72. from group.models import PhotoThumbUpInfo
  73. if PhotoThumbUpInfo.objects.filter(photo_id=photo_id, user_id=user_id, thumbup=True).exists():
  74. set_group_photo_thumbup_flag(photo_id, user_id)
  75. return True
  76. else:
  77. return False
  78. def set_group_photo_comment_list(photo_id):
  79. """ 设置群组照片用户评论列表 """
  80. from group.models import PhotoCommentInfo
  81. photo_comments = PhotoCommentInfo.objects.filter(photo_id=photo_id)
  82. photo_comments = [comment.comment_info for comment in photo_comments]
  83. r.set(GROUP_PHOTO_COMMENT_LIST % photo_id, json.dumps(photo_comments, cls=DjangoJSONEncoder))
  84. return photo_comments
  85. def get_group_photo_comment_list(photo_id):
  86. """ 获取群组照片用户评论列表 """
  87. return json.loads(r.get(GROUP_PHOTO_COMMENT_LIST % photo_id) or '[]') or set_group_photo_comment_list(photo_id)
  88. def set_group_photo_thumbup_list(photo_id):
  89. """ 设置群组照片用户点赞列表 """
  90. from group.models import PhotoThumbUpInfo
  91. photo_thumbups = PhotoThumbUpInfo.objects.filter(photo_id=photo_id, thumbup=True)
  92. photo_thumbups = [thumbup.thumbup_info for thumbup in photo_thumbups]
  93. r.set(GROUP_PHOTO_THUMB_UP_LIST % photo_id, json.dumps(photo_thumbups, cls=DjangoJSONEncoder))
  94. return photo_thumbups
  95. def get_group_photo_thumbup_list(photo_id):
  96. """ 获取群组照片用户点赞列表 """
  97. return json.loads(r.get(GROUP_PHOTO_THUMB_UP_LIST % photo_id) or '[]') or set_group_photo_thumbup_list(photo_id)
  98. def get_group_photo_watchers(photo_id):
  99. """ 获取群组照片用户关注列表 """
  100. return r.smembers(GROUP_PHOTO_WATCHER_SET % photo_id)