| @@ -2,12 +2,14 @@ | ||
| 2 | 2 |  | 
| 3 | 3 | from __future__ import division | 
| 4 | 4 |  | 
| 5 | +import json | |
| 5 | 6 | import os | 
| 6 | 7 |  | 
| 7 | 8 | import shortuuid | 
| 8 | 9 | from curtail_uuid import CurtailUUID | 
| 9 | 10 | from django.conf import settings | 
| 10 | 11 | from django.core.files.storage import default_storage | 
| 12 | +from django.core.serializers.json import DjangoJSONEncoder | |
| 11 | 13 | from logit import logit | 
| 12 | 14 | from TimeConvert import TimeConvert as tc | 
| 13 | 15 |  | 
| @@ -16,7 +18,7 @@ from group.models import GroupInfo, GroupUserInfo | ||
| 16 | 18 | from utils.error.errno_utils import GroupStatusCode, UserStatusCode | 
| 17 | 19 | from utils.error.response_utils import response | 
| 18 | 20 | from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_info, set_group_users_info | 
| 19 | -from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_SESSION | |
| 21 | +from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION | |
| 20 | 22 | from utils.redis.rtourguide import set_tour_guide_own_group | 
| 21 | 23 |  | 
| 22 | 24 |  | 
| @@ -240,6 +242,10 @@ def tg_group_gather_start_api(request): | ||
| 240 | 242 | set_group_info(group) | 
| 241 | 243 |  | 
| 242 | 244 | # 更新Session | 
| 243 | - r.set(TOUR_GUIDE_GROUP_CUR_SESSION, shortuuid.uuid()) | |
| 245 | +    r.pipeline().set(TOUR_GUIDE_GROUP_CUR_SESSION % group_id, shortuuid.uuid()).set(TOUR_GUIDE_GROUP_CUR_GATHER_INFO % group_id, json.dumps({ | |
| 246 | + 'gather_at': gather_at, | |
| 247 | + 'gather_lon': gather_lon, | |
| 248 | + 'gather_lat': gather_lat, | |
| 249 | + }, cls=DjangoJSONEncoder)).execute() | |
| 244 | 250 |  | 
| 245 | 251 | return response(200, u'Set Tour Guide Group Gather Info Success', u'设置旅行团集合信息成功') | 
| @@ -15,8 +15,8 @@ from utils.error.response_utils import response | ||
| 15 | 15 | from utils.group_photo_utils import get_current_photos | 
| 16 | 16 | from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_users_info | 
| 17 | 17 | from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, | 
| 18 | - GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, TOUR_GUIDE_GROUP_CUR_SESSION, | |
| 19 | - TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_USER_GEO_LIST) | |
| 18 | + GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, TOUR_GUIDE_GROUP_CUR_GATHER_INFO, | |
| 19 | + TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_USER_GEO_LIST) | |
| 20 | 20 | from utils.redis.rtourguide import get_tour_guide_own_group | 
| 21 | 21 |  | 
| 22 | 22 |  | 
| @@ -152,9 +152,12 @@ def tgu_group_user_locations_api(request): | ||
| 152 | 152 | if not GroupUserInfo.objects.filter(group_id=group_id, user_id=admin_id, subadmin=True, status=True).exists(): | 
| 153 | 153 | return response(GroupStatusCode.NO_LOCATION_PERMISSION) | 
| 154 | 154 |  | 
| 155 | + # 获取集合经纬度 | |
| 156 | +    gather_info = json.loads(r.get(TOUR_GUIDE_GROUP_CUR_GATHER_INFO % group_id) or '{}') | |
| 157 | + | |
| 155 | 158 |      return response(200, 'Get Tour Guide Group All User Location Success', u'获取旅行团用户地理位置信息成功', { | 
| 156 | 159 | 'group_id': group_id, | 
| 157 | - 'locations': r.georadius(TOUR_GUIDE_GROUP_GEO_INFO % group_id, 0, 0, '+inf', unit='m', withdist=True, withcoord=True, sort='ASC') | |
| 160 | +        'locations': r.georadius(TOUR_GUIDE_GROUP_GEO_INFO % group_id, gather_info.get('gather_lon', 0), gather_info.get('gather_lat', 0), '+inf', unit='m', withdist=True, withcoord=True, sort='ASC') | |
| 158 | 161 | # 'locations': [['x', 0.33, (2.68220901489e-06, 1.26736058093e-06)]] | 
| 159 | 162 | }) | 
| 160 | 163 |  | 
| @@ -9,6 +9,7 @@ PROFILE_INFO = 'profile:info:%s' # STRING,用户信息,user_id | ||
| 9 | 9 | # 导游相关 | 
| 10 | 10 | TOUR_GUIDE_GROUP_GEO_INFO = 'tour:guide:group:geo:info:%s' # ZSET,旅游团地理位置信息,group_id | 
| 11 | 11 | TOUR_GUIDE_GROUP_CUR_SESSION = 'tour:guide:group:cur:session:%s' # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新 | 
| 12 | +TOUR_GUIDE_GROUP_CUR_GATHER_INFO = 'tour:guide:group:cur:gather:info:%s' # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新 | |
| 12 | 13 | TOUR_GUIDE_GROUP_USER_GEO_LIST = 'tour:guide:group:user:geo:list:%s:%s:%s' # LIST,旅游团当前用户地理位置列表,group_id、session_id、user_id | 
| 13 | 14 |  | 
| 14 | 15 | TOUR_GUIDE_GROUP_USER_OWN = 'tour:guide:group:user:own:%s' # STRING,导游当前拥有的旅行团,user_id,导游创建旅行团的时候更新 |