|  | # -*- coding: utf-8 -*-
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
 |