Kaynağa Gözat

订单,积分,分类,退货的功能优化

wang 5 gün önce
ebeveyn
işleme
e09b079fbb

+ 6 - 0
yami-shop-api/src/main/java/com/yami/shop/api/controller/ShopDetailController.java

@@ -89,4 +89,10 @@ public class ShopDetailController {
         return shopDetailService.neighborShop(lat, lon, platform);
     }
 
+    @GetMapping("/addrShop")
+    @ApiOperation("根据地址获取最近店铺")
+    public ResponseEntity<List<ShopHeadInfoDto>> neighborShopByAddr(@RequestParam("addrId") Long addrId, @RequestParam("platform") Integer platform) {
+        return shopDetailService.neighborShopByAddr(addrId, platform);
+    }
+
 }

+ 6 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ShopHeadInfoDto.java

@@ -13,13 +13,19 @@ package com.yami.shop.bean.app.dto;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.yami.shop.common.serializer.json.ImgJsonSerializer;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * 店铺的头信息
  * @author LGH
  */
 @Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
 public class ShopHeadInfoDto {
 
     @ApiModelProperty(value = "店铺id", required = true)

+ 2 - 0
yami-shop-service/src/main/java/com/yami/shop/service/ShopDetailService.java

@@ -107,4 +107,6 @@ public interface ShopDetailService extends IService<ShopDetail> {
     ResponseEntity<ShopHeadInfoDto> neighborShop(String lat, String lon);
 
     ResponseEntity<ShopHeadInfoDto> neighborShop(String lat, String lon, Integer platform);
+
+    ResponseEntity<List<ShopHeadInfoDto>> neighborShopByAddr(Long addr, Integer platform);
 }

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopCategoryServiceImpl.java

@@ -172,7 +172,7 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
             category.setPic(sc.getPic());
             category.setSeq(sc.getNum());
             category.setGrade(sc.getLevel());
-            if(null!=sc.getLabel()){
+            if (null != sc.getLabel() && !sc.getLabel().isEmpty()) {
                 Label label = labelMapper.selectOne(new LambdaQueryWrapper<Label>()
                         .eq(Label::getId, Long.valueOf(sc.getLabel()))
                         .eq(Label::getIsDelete, 0)

+ 16 - 8
yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopDetailServiceImpl.java

@@ -14,16 +14,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yami.shop.bean.app.dto.ShopHeadInfoDto;
+import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.param.ShopDetailParam;
 import com.yami.shop.bean.enums.AuditStatus;
 import com.yami.shop.bean.enums.OfflineHandleEventStatus;
 import com.yami.shop.bean.enums.OfflineHandleEventType;
 import com.yami.shop.bean.enums.ShopStatus;
 import com.yami.shop.bean.event.OpenShopInitEvent;
-import com.yami.shop.bean.model.OfflineHandleEvent;
-import com.yami.shop.bean.model.ShopAuditing;
-import com.yami.shop.bean.model.ShopDetail;
-import com.yami.shop.bean.model.ShopWallet;
 import com.yami.shop.bean.param.OfflineHandleEventAuditParam;
 import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.common.exception.YamiShopBindException;
@@ -31,6 +28,7 @@ import com.yami.shop.common.util.PageParam;
 import com.yami.shop.dao.ProductMapper;
 import com.yami.shop.dao.ShopDetailMapper;
 import com.yami.shop.dao.ShopWalletMapper;
+import com.yami.shop.dao.UserAddrMapper;
 import com.yami.shop.service.OfflineHandleEventService;
 import com.yami.shop.service.ShopAuditingService;
 import com.yami.shop.service.ShopDetailService;
@@ -48,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author lgh on 2018/08/29.
@@ -71,6 +70,7 @@ public class ShopDetailServiceImpl extends ServiceImpl<ShopDetailMapper, ShopDet
     private final ApplicationContext applicationContext;
 
     private final PasswordEncoder passwordEncoder;
+    private final UserAddrMapper userAddrMapper;
 
     @Resource
     private ShopWalletService shopWalletService;
@@ -311,7 +311,7 @@ public class ShopDetailServiceImpl extends ServiceImpl<ShopDetailMapper, ShopDet
 
     @Override
     public ResponseEntity<ShopHeadInfoDto> neighborShop(String lat, String lon) {
-        List<ShopDetail> shopDetails = shopDetailMapper.neighborShop(lat, lon,null);
+        List<ShopDetail> shopDetails = shopDetailMapper.neighborShop(lat, lon, null);
         ShopHeadInfoDto dto = new ShopHeadInfoDto();
         dto.setShopId(shopDetails.get(0).getShopId());
         dto.setShopName(shopDetails.get(0).getShopName());
@@ -319,16 +319,24 @@ public class ShopDetailServiceImpl extends ServiceImpl<ShopDetailMapper, ShopDet
     }
 
     @Override
-    public ResponseEntity<ShopHeadInfoDto> neighborShop(String lat, String lon,Integer platform) {
-        List<ShopDetail> shopDetails = shopDetailMapper.neighborShop(lat, lon,platform);
+    public ResponseEntity<ShopHeadInfoDto> neighborShop(String lat, String lon, Integer platform) {
+        List<ShopDetail> shopDetails = shopDetailMapper.neighborShop(lat, lon, platform);
         ShopHeadInfoDto dto = new ShopHeadInfoDto();
-        if(ObjectUtils.isNotEmpty(shopDetails)){
+        if (ObjectUtils.isNotEmpty(shopDetails)) {
             dto.setShopId(shopDetails.get(0).getShopId());
             dto.setShopName(shopDetails.get(0).getShopName());
         }
         return ResponseEntity.ok(dto);
     }
 
+    @Override
+    public ResponseEntity<List<ShopHeadInfoDto>> neighborShopByAddr(Long addr, Integer platform) {
+        UserAddr userAddr = userAddrMapper.selectById(addr);
+        List<ShopHeadInfoDto> collect = shopDetailMapper.neighborShop(userAddr.getLatitude().toString(), userAddr.getLongitude().toString(), platform)
+                .stream().map((s) -> ShopHeadInfoDto.builder().shopId(s.getShopId()).shopName(s.getShopName()).build()).collect(Collectors.toList());
+        return ResponseEntity.ok(collect);
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     @CacheEvict(cacheNames = "shop_detail", key = "#shopId")