拍爱

rgroup.py 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from django.core.serializers.json import DjangoJSONEncoder
  4. from utils.redis.rkeys import GROUP_INFO, GROUP_USERS_INFO, GROUP_PHOTO_THUMB_UP
  5. import json
  6. r = settings.REDIS_CACHE
  7. # 群组信息相关
  8. def set_group_info(group):
  9. """ 设置群组信息 """
  10. group_data = group.data
  11. r.setex(GROUP_INFO % group.group_id, settings.REDIS_EXPIRED_MONTH, json.dumps(group_data, cls=DjangoJSONEncoder))
  12. return group_data
  13. def set_group_info_by_id(group_id):
  14. """ 设置群组信息 """
  15. from group.models import GroupInfo
  16. try:
  17. group = GroupInfo.objects.get(group_id=group_id)
  18. except GroupInfo.DoesNotExist:
  19. return {}
  20. return set_group_info(group)
  21. def get_group_info(group_id):
  22. """ 获取群组信息 """
  23. return json.loads(r.get(GROUP_INFO % group_id) or '{}') or set_group_info_by_id(group_id)
  24. # 群组用户信息相关
  25. def set_group_users_info(group):
  26. """ 设置群组用户信息 """
  27. group_users = group.users(admin=False)
  28. r.setex(GROUP_USERS_INFO % group.group_id, settings.REDIS_EXPIRED_MONTH, json.dumps({
  29. 'group_users': group_users,
  30. 'admin_id': group.admin_id,
  31. }, cls=DjangoJSONEncoder))
  32. return group_users
  33. def set_group_users_info_by_id(group_id):
  34. """ 设置群组用户信息 """
  35. from group.models import GroupInfo
  36. try:
  37. group = GroupInfo.objects.get(group_id=group_id)
  38. except GroupInfo.DoesNotExist:
  39. return {}
  40. return set_group_users_info(group)
  41. def get_group_users_info(group_id, user_id):
  42. """ 获取群组用户信息 """
  43. group_users_data = json.loads(r.get(GROUP_USERS_INFO % group_id) or '{}') or set_group_users_info_by_id(group_id)
  44. group_users, admin_id = group_users_data.get('group_users', {}), group_users_data.get('admin_id', '')
  45. if group_users and user_id != admin_id:
  46. [group_users.pop(k) for k in ['applying_count', 'applying']]
  47. return group_users
  48. # 群组照片相关
  49. def set_group_photo_thumbup_flag(photo_id, user_id):
  50. r.setex(GROUP_PHOTO_THUMB_UP % (photo_id, user_id), settings.REDIS_EXPIRED_MONTH, True)
  51. def del_group_photo_thumbup_flag(photo_id, user_id):
  52. r.delete(GROUP_PHOTO_THUMB_UP % (photo_id, user_id))
  53. def get_group_photo_thumbup_flag(photo_id, user_id):
  54. if r.exists(GROUP_PHOTO_THUMB_UP % (photo_id, user_id)):
  55. return True
  56. else:
  57. from group.models import PhotoThumbUpInfo
  58. if PhotoThumbUpInfo.objects.filter(photo_id=photo_id, user_id=user_id, thumbup=True).exists():
  59. set_group_photo_thumbup_flag(photo_id, user_id)
  60. return True
  61. else:
  62. return False