123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- from django.conf import settings
- from django.core.serializers.json import DjangoJSONEncoder
- from utils.redis.rkeys import GROUP_INFO, GROUP_USERS_INFO, GROUP_LAST_PHOTO_PK
- import json
- r = settings.REDIS_CACHE
- def set_group_info(group):
- """ 设置群组信息 """
- group_data = group.data
- r.set(GROUP_INFO % group.group_id, json.dumps(group_data, cls=DjangoJSONEncoder))
- return group_data
- def set_group_info_by_id(group_id):
- """ 设置群组信息 """
- from group.models import GroupInfo
- try:
- group = GroupInfo.objects.get(group_id=group_id)
- except GroupInfo.DoesNotExist:
- return {}
- return set_group_info(group)
- def get_group_info(group_id):
- """ 获取群组信息 """
- return json.loads(r.get(GROUP_INFO % group_id) or '{}') or set_group_info_by_id(group_id)
- def set_group_users_info(group):
- """ 设置群组用户信息 """
- group_users = group.users(admin=False)
- r.set(GROUP_USERS_INFO % group.group_id, json.dumps({
- 'group_users': group_users,
- 'admin_id': group.admin_id,
- }, cls=DjangoJSONEncoder))
- return group_users
- def set_group_users_info_by_id(group_id):
- """ 设置群组用户信息 """
- from group.models import GroupInfo
- try:
- group = GroupInfo.objects.get(group_id=group_id)
- except GroupInfo.DoesNotExist:
- return {}
- return set_group_users_info(group)
- def get_group_users_info(group_id, user_id):
- """ 获取群组用户信息 """
- group_users_data = json.loads(r.get(GROUP_USERS_INFO % group_id) or '{}') or set_group_users_info_by_id(group_id)
- group_users, admin_id = group_users_data.get('group_users', {}), group_users_data.get('admin_id', '')
- if group_users and user_id != admin_id:
- [group_users.pop(k) for k in ['applying_count', 'applying']]
- return group_users
|