|
@@ -0,0 +1,97 @@
|
|
|
+package com.zhentao.hotel.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.zhentao.hotel.domain.Hotels;
|
|
|
+import com.zhentao.hotel.dto.HotelDto;
|
|
|
+import com.zhentao.hotel.service.HotelsService;
|
|
|
+import com.zhentao.hotel.mapper.HotelsMapper;
|
|
|
+import com.zhentao.vo.Result;
|
|
|
+import org.elasticsearch.action.search.SearchRequest;
|
|
|
+import org.elasticsearch.action.search.SearchResponse;
|
|
|
+import org.elasticsearch.client.RequestOptions;
|
|
|
+import org.elasticsearch.client.RestHighLevelClient;
|
|
|
+import org.elasticsearch.index.query.BoolQueryBuilder;
|
|
|
+import org.elasticsearch.index.query.QueryBuilders;
|
|
|
+import org.elasticsearch.search.SearchHit;
|
|
|
+import org.elasticsearch.search.SearchHits;
|
|
|
+import org.elasticsearch.search.builder.SearchSourceBuilder;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+* @author 86183
|
|
|
+* @description 针对表【Hotels(酒店数据表,存储酒店的基本信息、联系方式、分类信息、设施与服务、价格信息、评价与评分等)】的数据库操作Service实现
|
|
|
+* @createDate 2025-05-21 11:42:24
|
|
|
+*/
|
|
|
+@Service
|
|
|
+public class HotelsServiceImpl extends ServiceImpl<HotelsMapper, Hotels>
|
|
|
+ implements HotelsService{
|
|
|
+ @Autowired
|
|
|
+ private RestHighLevelClient restHighLevelClient;
|
|
|
+ @Override
|
|
|
+ public Result findAll(HotelDto hotelDto) {
|
|
|
+// 查询所有酒店的信息
|
|
|
+ QueryWrapper<Hotels> queryWrapper=new QueryWrapper<>();
|
|
|
+// 根据分类ID
|
|
|
+ queryWrapper.eq("sort_id",hotelDto.getId());
|
|
|
+// 根据详细地址
|
|
|
+ queryWrapper.like("hotelName",hotelDto.getHotelName());
|
|
|
+ List<Hotels> list = this.list(queryWrapper);
|
|
|
+ return Result.OK(list,"查询成功");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+// @Override
|
|
|
+// public Result findAll(HotelDto hotelDto) {
|
|
|
+// // 创建ES查询请求
|
|
|
+// SearchRequest searchRequest = new SearchRequest("hotel_index"); // 假设索引名为hotel_index
|
|
|
+// SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
|
|
|
+//
|
|
|
+// // 构建查询条件
|
|
|
+// BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
|
|
|
+// if (hotelDto.getId() != null) {
|
|
|
+// boolQuery.must(QueryBuilders.termQuery("sort_id", hotelDto.getId()));
|
|
|
+// }
|
|
|
+// if (hotelDto.getHotelName() != null) {
|
|
|
+// boolQuery.must(QueryBuilders.matchQuery("hotelName", hotelDto.getHotelName()));
|
|
|
+// }
|
|
|
+// sourceBuilder.query(boolQuery);
|
|
|
+//
|
|
|
+// // 设置查询请求的源
|
|
|
+// searchRequest.source(sourceBuilder);
|
|
|
+//
|
|
|
+// // 执行查询
|
|
|
+// try {
|
|
|
+// SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
|
|
|
+// SearchHits hits = searchResponse.getHits();
|
|
|
+//
|
|
|
+// // 处理查询结果
|
|
|
+// List<Hotels> list = new ArrayList<>();
|
|
|
+// for (SearchHit hit : hits) {
|
|
|
+// // 将ES查询结果转换为Hotels对象
|
|
|
+// Hotels hotel = new Hotels();
|
|
|
+// hotel.setHotelid(Long.valueOf(hit.getId()));
|
|
|
+// Map<String, Object> sourceAsMap = hit.getSourceAsMap();
|
|
|
+// hotel.setHotelname((String) sourceAsMap.get("hotelName"));
|
|
|
+// // 其他字段的映射...
|
|
|
+// list.add(hotel);
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 返回结果
|
|
|
+// return Result.OK(list, "查询成功");
|
|
|
+// } catch (IOException e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// return Result.error(400,"查询失败");
|
|
|
+// }
|
|
|
+// }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|