|  |  | @@ -102,10 +102,16 @@ def tg_group_create_api(request): | 
            
            
              | 102 | 102 |      }) | 
            
            
              | 103 | 103 |   | 
            
            
              | 104 | 104 |   | 
            
            
              | 105 |  | -def set_geo_submit_flag(uinfo, geo_dt): | 
            
            
              |  | 105 | +def set_geo_submit_flag(uinfo, geo_at, gather_at): | 
            
            
              | 106 | 106 |      uinfo['geo_submited'] = False | 
            
            
              | 107 |  | -    if geo_dt: | 
            
            
              | 108 |  | -        pass | 
            
            
              |  | 107 | +    if geo_at and gather_at: | 
            
            
              |  | 108 | +        current_dt = tc.utc_datetime() | 
            
            
              |  | 109 | +        delta_seconds = tc.total_seconds(gather_at - current_dt) | 
            
            
              |  | 110 | +        # 距离集合时间超过30分钟是5分钟,15分钟到30分钟是3分钟,15分钟以内是1分钟 | 
            
            
              |  | 111 | +        for delta, gdt in [(1800, 300), (900, 180), (0, 60)]: | 
            
            
              |  | 112 | +            if delta_seconds > delta: | 
            
            
              |  | 113 | +                uinfo['geo_submited'] = tc.total_seconds(current_dt - geo_at) <= gdt | 
            
            
              |  | 114 | +                break | 
            
            
              | 109 | 115 |      return uinfo | 
            
            
              | 110 | 116 |   | 
            
            
              | 111 | 117 |   | 
            
            
            
            
              |  |  | @@ -115,13 +121,21 @@ def tg_group_detail_api(request): | 
            
            
              | 115 | 121 |      group_id = request.POST.get('group_id', '') | 
            
            
              | 116 | 122 |      user_id = request.POST.get('user_id', '') | 
            
            
              | 117 | 123 |   | 
            
            
              |  | 124 | +    # GEO last submit datetimes | 
            
            
              | 118 | 125 |      geo_dts = r.hgetall(TOUR_GUIDE_GROUP_GEO_SUBMIT_DT % group_id) | 
            
            
              | 119 | 126 |   | 
            
            
              |  | 127 | +    group_info = get_group_info(group_id) | 
            
            
              |  | 128 | +    # Gather datetime | 
            
            
              |  | 129 | +    gather_at = group_info.get('gather_at', '') | 
            
            
              |  | 130 | +    gather_at = tc.utc_string_to_utc_datetime(gather_at, format='%Y-%m-%dT%H:%M:%SZ') if isinstance(gather_at, basestring) else gather_at | 
            
            
              |  | 131 | +    if gather_at and tc.utc_datetime() > gather_at: | 
            
            
              |  | 132 | +        gather_at = '' | 
            
            
              |  | 133 | + | 
            
            
              | 120 | 134 |      group_users_info = get_group_users_info(group_id, user_id) | 
            
            
              | 121 | 135 |      # Remove tourguide | 
            
            
              | 122 | 136 |      group_passed_users = [uinfo for uinfo in group_users_info['passed'] if not uinfo['subadmin']] | 
            
            
              | 123 | 137 |      # GEO Submited Flag | 
            
            
              | 124 |  | -    group_passed_users = [set_geo_submit_flag(uinfo, geo_dts.get(uinfo['user_id'], '')) for uinfo in group_passed_users] | 
            
            
              |  | 138 | +    group_passed_users = [set_geo_submit_flag(uinfo, tc.utc_string_to_utc_datetime(geo_dts.get(uinfo['user_id'], '')), gather_at) for uinfo in group_passed_users] | 
            
            
              | 125 | 139 |      group_users_info['passed'] = group_passed_users | 
            
            
              | 126 | 140 |      # Update passed count | 
            
            
              | 127 | 141 |      group_users_info['passed_count'] = len(group_passed_users) | 
            
            
            
            
              |  |  | @@ -130,7 +144,7 @@ def tg_group_detail_api(request): | 
            
            
              | 130 | 144 |   | 
            
            
              | 131 | 145 |      return response(200, 'Get Tour Guide Group Detail Info Success', u'获取旅行团详情成功', { | 
            
            
              | 132 | 146 |          'group_id': group_id, | 
            
            
              | 133 |  | -        'group': get_group_info(group_id), | 
            
            
              |  | 147 | +        'group': group_info, | 
            
            
              | 134 | 148 |          'users': group_users_info, | 
            
            
              | 135 | 149 |      }) | 
            
            
              | 136 | 150 |   |