From a830a73fd10a21e3793c79a35be4e532de124c6f Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期二, 17 十月 2023 17:25:16 +0800 Subject: [PATCH] 10.17.1 --- cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java | 384 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 374 insertions(+), 10 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..1ed5022 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,27 +1,90 @@ package com.dsh.other.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.service.StoreService; +import com.dsh.other.entity.TBackRecord; +import com.dsh.other.entity.TStoreOther; +import com.dsh.other.entity.TStoreOtherConfigTrue; +import com.dsh.other.feignclient.model.*; +import com.dsh.other.model.*; +import com.dsh.other.service.*; +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.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.*; +import java.util.stream.Collectors; @RestController -@RequestMapping("/base/protocol") +@RequestMapping("") public class StoreController { @Autowired - private StoreService stoService; + private StoreService storeService; - @PostMapping("/storeDetail/courseOfSto") + @Autowired + private GDMapGeocodingUtil gdMapGeocodingUtil; + + @Autowired + private TStoreOtherService tStoreOtherService; + + @Autowired + private TBackRecordService backRecordService; + + /** + * 根据城市管理员id获取门店 + */ + @RequestMapping("base/site/getStoreByCityManagerId") + public Object getStoreByCityManagerId(@RequestBody Integer id){ + return storeService.getStoreByCityManagerId(id); + } + /** + * 根据员工id获取门店 + */ + @RequestMapping("base/site/getStoreByStoreStaffId") + public Object getStoreByStoreStaffId(@RequestBody Integer id){ + return storeService.getStoreByStoreStaffId(id); + } + + /** + * 根据门店id获取门店信息 + */ + @RequestMapping("base/site/getStoreById") + public Store getStoreById(@RequestBody Integer id){ + return storeService.getOne(new QueryWrapper<Store>().eq("id",id)); + } + /** + * 选择市区 展示全部门店 + */ + @RequestMapping("base/store/getStore") + public List<Store> getStore(@RequestBody String city){ + return storeService.list(new QueryWrapper<Store>().eq("city",city)); + } + + /** + * 根据所选门店 查询经营时间 + * @param oneId + * @return + */ + @RequestMapping("base/store/getTime") + public Store getTime(@RequestBody String oneId){ + return storeService.getOne(new QueryWrapper<Store>().eq("name",oneId)); + } + + + + @PostMapping("/base/protocol/storeDetail/courseOfSto") public StoreDetailOfCourse getCourseOfStore(@RequestBody Integer storeId){ StoreDetailOfCourse ofCourse = new StoreDetailOfCourse(); - Store store = stoService.getById(storeId); + Store store = storeService.getById(storeId); if (null != store){ ofCourse.setStoreName(store.getName()); ofCourse.setStoreAddr(store.getAddress()); @@ -29,4 +92,305 @@ return ofCourse; } + @PostMapping("/base/protocol/storeDetail/nearbyStore") + public List<StoreInfo> getAllNearbyStoreList(@RequestBody GetAllNearbyStoreList list ){ + List<StoreInfo> storeInfos = new ArrayList<>(); + if (ToolUtil.isEmpty(list.getLongitude()) && ToolUtil.isEmpty(list.getLatitude())){ + return storeInfos; + } + String current = list.getLongitude()+","+list.getLatitude(); + 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); + long l = 0; + try { + l = Long.parseLong(distanceTOKilometer); + }catch (Exception e){ + l = 0; + } + StoreInfo info = new StoreInfo(); + info.setStoreId(store.getId()); + info.setStoreName(store.getName()); + info.setStoreImg(store.getRealPicture()); + info.setDistance(l); + info.setStoreAddr(store.getAddress()); + info.setLatitude(storeLat); + info.setLongitude(storeLon); + 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 String calculateDistance(@RequestBody GetDistanceVo distanceVo){ + String current = distanceVo.getLongitude()+","+distanceVo.getLatitude(); + Store store = storeService.getById(distanceVo.getStoreId()); + String result = store.getLon()+","+store.getLat(); + return gdMapGeocodingUtil.getDistanceTOKilometer(current, result); + } + + + @PostMapping("/base/protocol/storeDetail/citycodeLoLa") + public List<StoreDetailList> getQueryStoreList(@RequestBody StoreOfCitycodeResp citycodeResp){ + List<StoreDetailList> detailLists = new ArrayList<>(); + List<Store> list = storeService.list(new QueryWrapper<Store>() + .eq("state",1 ) + .eq("cityCode",citycodeResp.getCityCode())); + if (list.size() > 0 ){ + if (ToolUtil.isEmpty(citycodeResp.getLongitude()) && ToolUtil.isEmpty(citycodeResp.getLatitude())){ + return detailLists; + } + for (Store store : list) { + String current = citycodeResp.getLongitude() +","+citycodeResp.getLatitude(); + String result = store.getLon()+","+store.getLat(); + String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result); + long l = Long.parseLong(distanceTOKilometer); +// 取5公里范围内的门店 + if ( l > 5){ + continue; + } + StoreDetailList detailList = new StoreDetailList(); + detailList.setStoreId(store.getId()); + detailList.setStoreImg(store.getCoverDrawing()); + detailList.setStoreName(store.getName()); + detailList.setStoreAddress(store.getAddress()); + detailList.setStorePhone(store.getPhone()); + detailList.setStoreDistance(l); + detailList.setStoreTime(store.getStartTime() + "-" + store.getEndTime()); + detailList.setStoreInfo(store.getIntroduce()); + detailLists.add(detailList); + } + } + return detailLists; + } + + + + + + + /** + * 获取门店列表 + * @return + */ + @ResponseBody + @PostMapping("/store/queryStoreList") + public List<Store> queryStoreList(QueryStoreList queryStoreList){ + try { + return storeService.queryStorsList(queryStoreList.getProvinceCode(), queryStoreList.getCityCode()); + }catch (Exception e){ + e.printStackTrace(); + return new ArrayList<>(); + } + } + + + /** + * 获取门店列表 + * @return + */ + @ResponseBody + @PostMapping("/store/queryStoreByIds") + public List<Store> queryStoreByIds(@RequestBody List<Integer> ids){ + try { + return storeService.list(new LambdaQueryWrapper<Store>() + .in(Store::getId,ids)); + }catch (Exception e){ + e.printStackTrace(); + return new ArrayList<>(); + } + } + + + + + @ResponseBody + @PostMapping("/base/store/queryStoreLists") + @ApiOperation(value = "获取门店列表", tags = {"APP-加入玩湃", "APP-课程列表", "用户—预约场地"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "经纬", name = "lon", dataType = "string", required = false), + @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = false), + }) + public ResultUtil<List<BaseVo>> queryStoreLists(String lon, String lat){ + try { + List<BaseVo> baseVos = storeService.queryStoreLists(lon, lat); + return ResultUtil.success(baseVos); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + /** + * 根据门店模糊搜索店铺 + * @param name + * @return + */ + @ResponseBody + @PostMapping("/store/queryStoreListByName") + public List<Store> queryStoreListByName(@RequestBody String name){ + try { + List<Store> stores = storeService.list(new QueryWrapper<Store>().eq("state", 1).like("name", name)); + return stores; + }catch (Exception e){ + e.printStackTrace(); + return new ArrayList<>(); + } + } + + + /** + * 根据门店 + * @param id + * @return + */ + @ResponseBody + @PostMapping("/store/queryStoreById") + public Store queryStoreById(@RequestBody Integer id){ + try { + return storeService.getById(id); + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } + + + @PostMapping("/store/addBackRecord") + public void addBackRecord(@RequestBody String s){ + TBackRecord tBackRecord = new TBackRecord(); + String[] split = s.split("_"); + tBackRecord.setMoney(Double.valueOf(split[0])); + tBackRecord.setUserId(Integer.valueOf(split[1])); + tBackRecord.setTime(new Date()); + backRecordService.save(tBackRecord); + } + + + + + @ResponseBody + @PostMapping("/base/store/queryStoreFreeBenefit") + @ApiOperation(value = "获取门店免费福利", tags = {"APP-免费福利"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "门店id", name = "id", dataType = "int", required = true), + }) + public ResultUtil<StoreFreeBenefitVo> queryStoreFreeBenefit(Integer id){ + try { + Store store = storeService.getById(id); + StoreFreeBenefitVo storeFreeBenefitVo = new StoreFreeBenefitVo(); + storeFreeBenefitVo.setPhone(store.getPhone()); + storeFreeBenefitVo.setImg(store.getWelfarePicture()); + return ResultUtil.success(storeFreeBenefitVo); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + @Autowired + private TStoreOtherConfigTrueService tStoreOtherConfigTrueService; + @ResponseBody + @PostMapping("/base/store/queryIndexSet") + @ApiOperation(value = "获取门店首页设置 2.0", tags = {"APP-免费福利"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "门店id", name = "id", dataType = "int", required = true), + }) + public ResultUtil<List<TStoreOtherConfigTrue>> queryIndexSet(Integer id){ + try { + List<TStoreOtherConfigTrue> tStoreOtherConfigTrues = new ArrayList<>(); + + List<TStoreOther> list = tStoreOtherService.list(new LambdaQueryWrapper<TStoreOther>().eq(TStoreOther::getStoreId, id).eq(TStoreOther::getState,1)); + if(list.size()>0){ + tStoreOtherConfigTrues= tStoreOtherConfigTrueService.list(new LambdaQueryWrapper<TStoreOtherConfigTrue>().in(TStoreOtherConfigTrue::getPid, list.stream().map(TStoreOther::getId).collect(Collectors.toList())).eq(TStoreOtherConfigTrue::getState,1)); + } + return ResultUtil.success(tStoreOtherConfigTrues); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + + + + @ResponseBody + @PostMapping("/base/store/queryProvinceAndCity") + @ApiOperation(value = "获取省市数据", tags = {"APP-加入玩湃"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "省编号", name = "pcode", dataType = "string", required = false), + }) + public ResultUtil<List<ProvinceAndCityVo>> queryProvinceAndCity(String pcode){ + try { + List<ProvinceAndCityVo> provinceAndCityVos = storeService.queryProvinceAndCity(pcode); + return ResultUtil.success(provinceAndCityVos); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + + + @ResponseBody + @PostMapping("/base/store/queryAllCity") + @ApiOperation(value = "获取所有开通城市", tags = {"APP-赛事活动列表", "用户—预约场地"}) + @ApiImplicitParams({ + }) + public ResultUtil<List<ProvinceAndCityVo>> queryAllCity(){ + try { + List<ProvinceAndCityVo> provinceAndCityVos = storeService.queryAllCity(); + return ResultUtil.success(provinceAndCityVos); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + + @ResponseBody + @PostMapping("/base/store/queryStoreByCityCode") + @ApiOperation(value = "获取城市code获取门店", tags = {"APP-加入玩湃"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "城市code", name = "cityCode", dataType = "string", required = true), + }) + public ResultUtil<List<BaseVo>> queryStoreByCityCode(String cityCode){ + try { + List<BaseVo> list = storeService.queryStoreByCityCode(cityCode); + return ResultUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } } -- Gitblit v1.7.1