Esempio n. 1
0
 def list(self,
          user_id={"atype": int, "adef": 0}):
     """获取单个用户的消息列表"""
     message_t = MessageModel.table()
     cond = message_t.user_id == user_id
     message_list = MessageModel.objectlist()
     message_list.find(cond)
     return self._response(PyobjectList(Error.success, message_list))
Esempio n. 2
0
 def search(self,
            latitude={"atype": float, "adef": 0},
            longitude={"atype": float, "adef": 0},
            category_id={"atype": int, "adef": 0},
            distance={"atype": int, "adef": 1000},
 ):
     """
         查找消息
     """
     cond = {}
     if category_id:
         cond["category_id"] = category_id
     message_list = mongo.message.find({"loc": SON([("$near", [longitude, latitude]), ("$maxDistance", distance)])})
     data = []
     for message in message_list:
         message_id = message["id"]
         message_t = MessageModel.table()
         message_obj = MessageModel.object()
         cond = message_t.id == message_id
         if not message_obj.find(cond):
             continue
         message_info = {}
         message_info["id"] = message_obj.id
         message_info["user_id"] = message_obj.user_id
         message_info["latitude"] = message_obj.latitude
         message_info["longitude"] = message_obj.longitude
         message_info["content"] = message_obj.content
         message_info["with_sku_id"] = message_obj.with_sku_id
         message_info["with_sku_type"] = message_obj.with_sku_type
         message_info["category_id"] = message_obj.category_id
         message_info["tags"] = message_obj.tags
         message_info["create_on"] = to_utf8(message_obj.create_on)
         message_info["nice"] = message_obj.nice
         point_user = (longitude, latitude)
         point_message = (message_info["longitude"], message_info["latitude"])
         message_info["distance"] = calculate_distance(point_user, point_message)
         data.append(message_info)
     return self._response(PyobjectList(Error.success, data))