From 2ed6444f45d227e2acc6de65c3e8b582440fb83a Mon Sep 17 00:00:00 2001 From: luofl <1442745593@qq.com> Date: 星期四, 06 三月 2025 09:20:40 +0800 Subject: [PATCH] 迭代版本:2.28 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java | 21 +++++++++++++++------ 1 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java index 9991212..6a48227 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.other.service.impl; +import cn.afterturn.easypoi.cache.manager.IFileLoader; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -8,6 +9,7 @@ import com.ruoyi.account.api.model.AppUser; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.exception.auth.NotPermissionException; import com.ruoyi.common.core.utils.GeodesyUtil; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; @@ -73,7 +75,7 @@ List<NearbyShopVO> nearbyShopVOS = shopMapper.selectNearbyShopList(); for (NearbyShopVO nearbyShopVO : nearbyShopVOS) { Double wgs84 = GeodesyUtil.getDistance(nearbyShopVO.getLongitude() + "," + nearbyShopVO.getLatitude(), longitude + "," + latitude).get("WGS84"); - nearbyShopVO.setDistance(wgs84); + nearbyShopVO.setDistance(new BigDecimal(wgs84).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); } nearbyShopVOS.sort(new Comparator<NearbyShopVO>() { @Override @@ -93,14 +95,14 @@ } Shop shop = shopMapper.selectById(appUser.getShopId()); - if(null != shop){ + if(null != shop && shop.getDelFlag() == 0 && shop.getStatus() == 1){ NearbyShopVO vo = new NearbyShopVO(); vo.setId(appUser.getShopId().longValue()); vo.setName(shop.getName()); vo.setAddress(shop.getAddress()); vo.setHomePicture(shop.getHomePicture()); Double wgs84 = GeodesyUtil.getDistance(longitude.toString() + "," + latitude.toString(), shop.getLongitude() + "," + shop.getLatitude()).get("WGS84"); - vo.setDistance(wgs84); + vo.setDistance(new BigDecimal(wgs84).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); nearbyShopVOS.add(0, vo); } } @@ -117,6 +119,7 @@ Map<Long, List<ShopScore>> shopScoreMap = shopScores.stream().collect(Collectors.groupingBy(ShopScore::getShopId)); AppUser finalAppUser1 = appUser; nearbyShopVOS.forEach(nearbyShopVO -> { + nearbyShopVO.setScore("5"); List<ShopScore> scores = shopScoreMap.get(nearbyShopVO.getId()); if (scores != null && !scores.isEmpty()){ BigDecimal score = scores.stream() @@ -136,14 +139,20 @@ @Override public ShopDetailVO getShopDetail(Integer shopId, BigDecimal longitude, BigDecimal latitude) { - Long userid = tokenService.getLoginUserApplet().getUserid(); + Long userid = null; + if (tokenService.isLoginApplet()){ + userid = tokenService.getLoginUserApplet().getUserid(); + } // 查询店铺详情 ShopDetailVO shopDetailVO = shopMapper.selectShopDetail(shopId); if (shopDetailVO == null) { throw new ServiceException("查询店铺不存在"); } - ShopScore one = shopScoreService.getOne(new LambdaQueryWrapper<ShopScore>().eq(ShopScore::getAppUserId, userid).eq(ShopScore::getShopId, shopId).last(" order by create_time desc limit 0, 1")); - shopDetailVO.setMyScore(null == one ? BigDecimal.ZERO : one.getScore()); + if (userid != null){ + ShopScore one = shopScoreService.getOne(new LambdaQueryWrapper<ShopScore>().eq(ShopScore::getAppUserId, userid).eq(ShopScore::getShopId, shopId).last(" order by create_time desc limit 0, 1")); + shopDetailVO.setMyScore(null == one ? BigDecimal.ZERO : one.getScore()); + } + // 计算距离 if (shopDetailVO.getLongitude() != null && shopDetailVO.getLatitude() != null){ String shopLocation = String.format("%s,%s", shopDetailVO.getLongitude(), shopDetailVO.getLatitude()); -- Gitblit v1.7.1