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))
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))