|
# -*- 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'旅行团管理员权限放弃成功')
|