From 3faea128cb8fb041c3164e2313a164d305660a62 Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期一, 03 七月 2023 16:16:27 +0800 Subject: [PATCH] 探索玩湃:接口开发 --- cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java | 73 ++++++++++++++++++++++++++++++++++++ 1 files changed, 73 insertions(+), 0 deletions(-) diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java index b75c2ee..f0ce01f 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java @@ -1,14 +1,20 @@ package com.dsh.other.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.other.entity.Store; import com.dsh.other.feignclient.model.StoreDetailOfCourse; +import com.dsh.other.feignclient.model.StoreInfo; +import com.dsh.other.feignclient.model.StoreLonLatList; import com.dsh.other.service.StoreService; +import com.dsh.other.util.GDMapGeocodingUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import java.util.*; @RestController @RequestMapping("/base/protocol") @@ -17,6 +23,9 @@ @Autowired private StoreService stoService; + + @Autowired + private GDMapGeocodingUtil gdMapGeocodingUtil; @PostMapping("/storeDetail/courseOfSto") public StoreDetailOfCourse getCourseOfStore(@RequestBody Integer storeId){ @@ -29,4 +38,68 @@ return ofCourse; } + @PostMapping("/storeDetail/nearbyStore") + public List<StoreInfo> getAllNearbyStoreList(@RequestBody String longitude,@RequestBody String latitude){ + String current = longitude+","+latitude; + List<StoreInfo> storeInfos = new ArrayList<>(); + String cityCode = ""; + try { + Map<String, String> geocode = gdMapGeocodingUtil.geocode(longitude, latitude); + cityCode = geocode.get("cityCode"); + }catch (Exception e){ + e.printStackTrace(); + } + List<Store> storeList = stoService.list(new QueryWrapper<Store>() + .eq("state", 1) + .eq("cityCode",cityCode)); + if (storeList.size() > 0){ + for (Store store : storeList) { + String storeLon = store.getLon(); + String storeLat = store.getLat(); + String result = storeLon+","+storeLat; + String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result); + StoreInfo info = new StoreInfo(); + info.setStoreId(store.getId()); + info.setStoreName(store.getName()); + info.setStoreImg(store.getRealPicture()); + info.setDistance(Long.parseLong(distanceTOKilometer)); + info.setStoreAddr(store.getAddress()); + storeInfos.add(info); + } + Comparator<StoreInfo> distanceComparator = new Comparator<StoreInfo>() { + @Override + public int compare(StoreInfo store1, StoreInfo store2) { + return Long.compare(store1.getDistance(), store2.getDistance()); + } + }; + Collections.sort(storeInfos, distanceComparator); + } + return storeInfos; + } + + + @PostMapping("/storeDetail/storeOfLonLat") + public List<StoreLonLatList> getAllStoreLonLats(@RequestBody String longitude, @RequestBody String latitude){ + List<StoreLonLatList> storeInfos = new ArrayList<>(); + try { + Map<String, String> geocode = gdMapGeocodingUtil.geocode(longitude, latitude); + String cityCode = geocode.get("cityCode"); + List<Store> storeList = stoService.list(new QueryWrapper<Store>() + .eq("cityCode",cityCode)); + if (storeList.size() > 0){ + for (Store store : storeList) { + StoreLonLatList latList = new StoreLonLatList(); + latList.setStoreId(store.getId()); + latList.setLongitude(store.getLon()); + latList.setLatitude(store.getLat()); + storeInfos.add(latList); + } + } + }catch (Exception e){ + e.printStackTrace(); + } + + return storeInfos; + } + } -- Gitblit v1.7.1