New file |
| | |
| | | package com.oying.modules.pc.search.rest; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.oying.utils.R; |
| | | import com.oying.modules.pc.search.domain.dto.NearbyStoreQueryCriteria; |
| | | import com.oying.modules.pc.search.domain.dto.StoreSearchDto; |
| | | import com.oying.modules.pc.search.view.StoreSearchView; |
| | | import com.oying.modules.pc.search.service.StoreSearchService; |
| | | import com.oying.utils.PageResult; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.Collections; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 店铺 |
| | | * |
| | | * @author lzp |
| | | * @date 2025-04-22 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/api/pc/search") |
| | | @RequiredArgsConstructor |
| | | public class StoreSearchController { |
| | | |
| | | private final StoreSearchService storeSearchService; |
| | | |
| | | /** |
| | | * 查询最近的店铺 |
| | | */ |
| | | @GetMapping("/near") |
| | | public R<PageResult<StoreSearchView>> list(NearbyStoreQueryCriteria criteria) { |
| | | return R.success(toStoreSearchVo(storeSearchService.findNearStores(criteria))); |
| | | } |
| | | |
| | | private PageResult<StoreSearchView> toStoreSearchVo(PageResult<StoreSearchDto> resources) { |
| | | PageResult<StoreSearchView> t = new PageResult<>(); |
| | | t.setTotalElements(resources.getTotalElements()); |
| | | if (CollUtil.isNotEmpty(resources.getContent())) { |
| | | t.setContent(resources.getContent().stream().map(storeSearchDto -> { |
| | | StoreSearchView searchView = new StoreSearchView(); |
| | | searchView.setStoreId(storeSearchDto.getStoreId()); |
| | | searchView.setStoreName(storeSearchDto.getStoreName()); |
| | | searchView.setStoreLogoUrl(""); // 获取obs |
| | | searchView.setDistance(storeSearchDto.getDistance()); |
| | | searchView.setRecommendedProducts(Collections.emptyList()); |
| | | return searchView; |
| | | }).collect(Collectors.toList())); |
| | | } |
| | | if (CollUtil.isEmpty(t.getContent())) { |
| | | t.setContent(Collections.emptyList()); |
| | | } |
| | | return t; |
| | | } |
| | | } |