From aa43a92c7ec9053dbaef92fe5ccb3011b670442c Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 12 七月 2023 11:46:21 +0800 Subject: [PATCH] 更新线上视频奖励模块接口 --- cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java | 135 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 113 insertions(+), 22 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 6b51f47..375e825 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,24 +1,22 @@ 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.*; import com.dsh.other.model.BaseVo; +import com.dsh.other.model.QueryStoreList; import com.dsh.other.service.StoreService; +import com.dsh.other.util.GDMapGeocodingUtil; import com.dsh.other.util.ResultUtil; -import com.dsh.other.util.ToolUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; -/** - * @author zhibing.pu - * @date 2023/6/24 15:42 - */ @RestController @RequestMapping("") public class StoreController { @@ -27,17 +25,115 @@ private StoreService storeService; + @Autowired + private GDMapGeocodingUtil gdMapGeocodingUtil; + + + + + @PostMapping("/base/protocol/storeDetail/courseOfSto") + public StoreDetailOfCourse getCourseOfStore(@RequestBody Integer storeId){ + StoreDetailOfCourse ofCourse = new StoreDetailOfCourse(); + Store store = storeService.getById(storeId); + if (null != store){ + ofCourse.setStoreName(store.getName()); + ofCourse.setStoreAddr(store.getAddress()); + } + return ofCourse; + } + + @PostMapping("/base/protocol/storeDetail/nearbyStore") + public List<StoreInfo> getAllNearbyStoreList(@RequestBody GetAllNearbyStoreList list ){ + String current = list.getLongitude()+","+list.getLatitude(); + List<StoreInfo> storeInfos = new ArrayList<>(); + String cityCode = ""; + try { + Map<String, String> geocode = gdMapGeocodingUtil.geocode(list.getLongitude(), list.getLatitude()); + cityCode = geocode.get("cityCode"); + }catch (Exception e){ + e.printStackTrace(); + } + List<Store> storeList = storeService.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; + } + + /** + * 根据门店坐标与传入坐标,计算距离 + * @param distanceVo + * @return + */ + @PostMapping("/base/protocol/storeDetail/distanceCal") + public long calculateDistance(@RequestBody GetDistanceVo distanceVo){ + String current = distanceVo.getLongitude()+","+distanceVo.getLatitude(); + Store store = storeService.getById(distanceVo.getStoreId()); + String result = store.getLon()+","+store.getLat(); + String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result); + return Long.parseLong(distanceTOKilometer); + } + + + @PostMapping("/base/protocol/storeDetail/storeOfLonLat") + public List<StoreLonLatList> getAllStoreLonLats(@RequestBody GetAllNearbyStoreList list ){ + List<StoreLonLatList> storeInfos = new ArrayList<>(); + try { + Map<String, String> geocode = gdMapGeocodingUtil.geocode(list.getLongitude(), list.getLatitude()); + String cityCode = geocode.get("cityCode"); + List<Store> storeList = storeService.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; + } + + + + + + /** * 获取门店列表 - * @param provinceCode - * @param cityCode * @return */ @ResponseBody @PostMapping("/store/queryStoreList") - public List<Store> queryStoreList(@RequestBody String provinceCode, @RequestBody String cityCode){ + public List<Store> queryStoreList(QueryStoreList queryStoreList){ try { - return storeService.queryStorsList(provinceCode, cityCode); + return storeService.queryStorsList(queryStoreList.getProvinceCode(), queryStoreList.getCityCode()); }catch (Exception e){ e.printStackTrace(); return new ArrayList<>(); @@ -50,18 +146,12 @@ @ResponseBody @PostMapping("/base/store/queryStoreLists") - @ApiOperation(value = "获取门店列表", tags = {"APP-加入玩湃"}) + @ApiOperation(value = "获取门店列表", tags = {"APP-加入玩湃", "APP-课程列表"}) @ApiImplicitParams({ - @ApiImplicitParam(value = "经纬", name = "lon", dataType = "string", required = true), - @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = true), + @ApiImplicitParam(value = "经纬", name = "lon", dataType = "string", required = false), + @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = false), }) - public ResultUtil<List<BaseVo>> queryStoreLists(@RequestBody String lon, @RequestBody String lat){ - if(ToolUtil.isEmpty(lon)){ - return ResultUtil.paranErr("lon"); - } - if(ToolUtil.isEmpty(lat)){ - return ResultUtil.paranErr("lat"); - } + public ResultUtil<List<BaseVo>> queryStoreLists(String lon, String lat){ try { List<BaseVo> baseVos = storeService.queryStoreLists(lon, lat); return ResultUtil.success(baseVos); @@ -79,7 +169,7 @@ */ @ResponseBody @PostMapping("/store/queryStoreListByName") - public List<Store> queryStoreListByName(@RequestBody String name){ + public List<Store> queryStoreListByName(@RequestParam("name") String name){ try { List<Store> stores = storeService.list(new QueryWrapper<Store>().eq("state", 1).like("name", name)); return stores; @@ -105,4 +195,5 @@ return null; } } + } -- Gitblit v1.7.1