拍爱

views.py 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. import json
  4. from django.core.serializers.json import DjangoJSONEncoder
  5. from logit import logit
  6. from TimeConvert import TimeConvert as tc
  7. from utils.error.errno_utils import GroupUserStatusCode
  8. from utils.error.response_utils import response
  9. from utils.redis.connect import r
  10. from utils.redis.rkeys import (TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_GEO_SUBMIT_DT,
  11. TOUR_GUIDE_GROUP_USER_GEO_LIST)
  12. from utils.redis.rtouruser import get_tour_user_belong_group
  13. @logit
  14. def geo_submit_api(request):
  15. user_id = request.POST.get('user_id', '')
  16. longitude = request.POST.get('lon', '') # 经度
  17. latitude = request.POST.get('lat', '') # 纬度
  18. # 获取用户当前所处旅行团
  19. group_id = get_tour_user_belong_group(user_id)
  20. if not group_id:
  21. return response(GroupUserStatusCode.USER_HAS_NOT_JOIN_GROUP)
  22. r.pipeline().geoadd(
  23. TOUR_GUIDE_GROUP_GEO_INFO % group_id, longitude, latitude, user_id
  24. ).hset(
  25. TOUR_GUIDE_GROUP_GEO_SUBMIT_DT % group_id, user_id, tc.utc_string(format='%Y-%m-%dT%H:%M:%SZ')
  26. ).execute()
  27. session_id = r.get(TOUR_GUIDE_GROUP_CUR_SESSION % group_id)
  28. r.rpush(TOUR_GUIDE_GROUP_USER_GEO_LIST % (group_id, session_id, user_id), json.dumps({
  29. 'lon': longitude,
  30. 'lat': latitude,
  31. 'current_time': tc.utc_datetime(ms=False),
  32. }, cls=DjangoJSONEncoder))
  33. return response(200, 'Geo Info Submit Success', u'地理位置信息上传成功')