# -*- coding: utf-8 -*- from __future__ import division import json from django.conf import settings from django.db import transaction from logit import logit from TimeConvert import TimeConvert as tc from account.models import UserInfo from group.models import GroupInfo, GroupUserInfo from utils.admin_utils import is_group_admin, is_group_subadmin from utils.error.errno_utils import GroupStatusCode, GroupUserStatusCode, UserStatusCode from utils.error.response_utils import response from utils.group_photo_utils import get_current_photos from utils.redis.connect import r from utils.redis.rgroup import get_group_info, get_group_users_info, get_group_users_kv_info, set_group_users_info from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_GEO_SUBMIT_DT, TOUR_GUIDE_GROUP_USER_GEO_LIST) from utils.redis.rtourguide import get_tour_guide_own_group from utils.redis.rtouruser import set_tour_user_belong_group @logit def tg_group_admin_list_api(request): """ 旅行团管理员列表 """ group_id = request.POST.get('group_id', '') admin_id = request.POST.get('admin_id', '') # 导游唯一标识 # 权限校验 if not is_group_admin(group_id, admin_id): return response(GroupStatusCode.NOT_GROUP_ADMIN) admins = GroupUserInfo.objects.filter(group_id=group_id, subadmin=True) admins = [admin.admin_info for admin in admins] return response(200, 'Get Tour Guide Group Admin List Success', u'获取旅行团管理员列表成功', { 'group_id': group_id, 'admins': admins, }) @logit def tg_group_admin_recovery_api(request): """ 旅行团管理员权限回收,管理员主动,团成员被动 """ group_id = request.POST.get('group_id', '') admin_id = request.POST.get('admin_id', '') # 导游唯一标识 user_id = request.POST.get('user_id', '') # 权限校验 if not is_group_admin(group_id, admin_id): return response(GroupStatusCode.NOT_GROUP_ADMIN) # 管理员也不允许将自己移除 if admin_id == user_id: return response(GroupStatusCode.ADMIN_CANNOT_HANDLE_SELF) try: subadmin = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, subadmin=True) except GroupUserInfo.DoesNotExist: return response(GroupStatusCode.NOT_GROUP_SUBADMIN) # 权限回收 subadmin.status = False subadmin.save() return response(200, 'Tour Guide Group Admin Right Recovery Success', u'旅行团管理员权限回收成功') @logit def tg_group_admin_waiver_api(request): """ 旅行团管理员权限放弃 """ group_id = request.POST.get('group_id', '') user_id = request.POST.get('user_id', '') try: subadmin = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, subadmin=True) except GroupUserInfo.DoesNotExist: return response(GroupStatusCode.NOT_GROUP_SUBADMIN) # 权限回收 subadmin.status = False subadmin.save() return response(200, 'Tour Guide Group Admin Right Waiver Success', u'旅行团管理员权限放弃成功')