@@ -13,7 +13,7 @@ from TimeConvert import TimeConvert as tc  | 
            ||
| 13 | 13 | 
                 | 
            
| 14 | 14 | 
                from account.models import UserInfo  | 
            
| 15 | 15 | 
                from group.models import GroupInfo, GroupUserInfo  | 
            
| 16 | 
                -from utils.admin_utils import is_group_admin, is_group_subadmin  | 
            |
| 16 | 
                +from utils.admin_utils import have_active_group, is_group_admin, is_group_subadmin  | 
            |
| 17 | 17 | 
                from utils.error.errno_utils import GroupStatusCode, GroupUserStatusCode, TokenStatusCode, UserStatusCode  | 
            
| 18 | 18 | 
                from utils.error.response_utils import response  | 
            
| 19 | 19 | 
                from utils.redis.connect import r  | 
            
                @@ -45,13 +45,7 @@ def tg_group_create_api(request):  | 
            ||
| 45 | 45 | 
                return response(GroupStatusCode.NOT_GROUP_ADMIN)  | 
            
| 46 | 46 | 
                 | 
            
| 47 | 47 | 
                # 旅行团校验  | 
            
| 48 | 
                - if GroupInfo.objects.filter(  | 
            |
| 49 | 
                - # admin_id=user_id,  | 
            |
| 50 | 
                - group_id=get_tour_guide_own_group(user_id),  | 
            |
| 51 | 
                - group_closed=False,  | 
            |
| 52 | 
                - status=True,  | 
            |
| 53 | 
                - ended_at__gt=tc.utc_datetime(),  | 
            |
| 54 | 
                - ).exists():  | 
            |
| 48 | 
                + if have_active_group(user_id):  | 
            |
| 55 | 49 | 
                return response(GroupStatusCode.ONLY_ONE_ACTIVE_GROUP_ALLOWED)  | 
            
| 56 | 50 | 
                 | 
            
| 57 | 51 | 
                # 群组唯一标识  | 
            
                @@ -313,8 +307,8 @@ def tg_group_transfer_api(request):  | 
            ||
| 313 | 307 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 314 | 308 | 
                     token = request.POST.get('token', '')
               | 
            
| 315 | 309 | 
                 | 
            
| 316 | 
                - # 被转移用户是否已经有群  | 
            |
| 317 | 
                - if get_tour_guide_own_group(user_id):  | 
            |
| 310 | 
                + # 旅行团校验  | 
            |
| 311 | 
                + if have_active_group(user_id):  | 
            |
| 318 | 312 | 
                return response(GroupStatusCode.ONLY_ONE_ACTIVE_GROUP_ALLOWED)  | 
            
| 319 | 313 | 
                 | 
            
| 320 | 314 | 
                # 获取旅行团唯一标识  | 
            
                @@ -1,6 +1,8 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                -from group.models import GroupUserInfo  | 
            |
| 3 | 
                +from TimeConvert import TimeConvert as tc  | 
            |
| 4 | 
                +  | 
            |
| 5 | 
                +from group.models import GroupInfo, GroupUserInfo  | 
            |
| 4 | 6 | 
                 | 
            
| 5 | 7 | 
                 | 
            
| 6 | 8 | 
                def is_group_admin(group_id, admin_id):  | 
            
                @@ -9,3 +11,9 @@ def is_group_admin(group_id, admin_id):  | 
            ||
| 9 | 11 | 
                 | 
            
| 10 | 12 | 
                def is_group_subadmin(group_id, admin_id):  | 
            
| 11 | 13 | 
                return GroupUserInfo.objects.filter(group_id=group_id, user_id=admin_id, subadmin=True, status=True).exists()  | 
            
| 14 | 
                +  | 
            |
| 15 | 
                +  | 
            |
| 16 | 
                +def have_active_group(user_id):  | 
            |
| 17 | 
                + groups = GroupUserInfo.objects.filter(user_id=user_id, subadmin=True, status=True)  | 
            |
| 18 | 
                + groupids = [group.group_id for group in groups]  | 
            |
| 19 | 
                + return GroupInfo.objects.filter(group_id_in=groupids, group_closed=False, status=True, ended_at__gt=tc.utc_datetime()).exists()  | 
            
                @@ -15,3 +15,8 @@ def set_tour_guide_own_group(user_id, group_id):  | 
            ||
| 15 | 15 | 
                def get_tour_guide_own_group(user_id):  | 
            
| 16 | 16 | 
                """ 获取导游拥有的旅行团 """  | 
            
| 17 | 17 | 
                return r.get(TOUR_GUIDE_GROUP_USER_OWN % user_id)  | 
            
| 18 | 
                +  | 
            |
| 19 | 
                +  | 
            |
| 20 | 
                +def del_tour_guide_own_group(user_id):  | 
            |
| 21 | 
                + """ 删除导游拥有的旅行团 """  | 
            |
| 22 | 
                + return r.delete(TOUR_GUIDE_GROUP_USER_OWN % user_id)  |