From ef0035dd5f7f29f41fd0ff5dcd7ced096b8b3718 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Tue, 9 Apr 2024 14:30:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=BB=E9=A1=B5=E6=8E=A5=E5=8F=97=E6=95=B0=E6=8D=AE=E9=94=99?= =?UTF-8?q?=E8=AF=AF=EF=BC=8C=E4=BF=AE=E5=A4=8D=E8=B4=AD=E7=89=A9=E8=BD=A6?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/exception/GlobalExceptionHandler.java | 5 +++-- .../common/interceptor/UserLoginInterceptor.java | 2 +- .../com/atguigu/ssyx/vo/search/SkuEsQueryVo.java | 13 +++++-------- .../ssyx/home/controller/HomeApiController.java | 7 +++---- .../ssyx/home/service/impl/HomeServiceImpl.java | 5 ++--- .../ssyx/search/MqListener/SkuListener.java | 7 +++++++ .../ssyx/search/controller/SkuApiController.java | 16 ++++------------ .../ssyx/search/repository/SkuRepository.java | 14 ++++++++++---- .../atguigu/ssyx/search/service/SkuService.java | 4 ++-- .../ssyx/search/service/impl/SkuServiceImpl.java | 8 ++++---- 10 files changed, 41 insertions(+), 40 deletions(-) diff --git a/common/service-util/src/main/java/com/atguigu/ssyx/common/exception/GlobalExceptionHandler.java b/common/service-util/src/main/java/com/atguigu/ssyx/common/exception/GlobalExceptionHandler.java index 5f82c99..f517420 100644 --- a/common/service-util/src/main/java/com/atguigu/ssyx/common/exception/GlobalExceptionHandler.java +++ b/common/service-util/src/main/java/com/atguigu/ssyx/common/exception/GlobalExceptionHandler.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestControllerAdvice; +import java.io.FileNotFoundException; import java.nio.file.AccessDeniedException; import java.sql.SQLIntegrityConstraintViolationException; @@ -28,9 +29,9 @@ public class GlobalExceptionHandler { // 运行时异常信息 @ExceptionHandler(RuntimeException.class) @ResponseBody - public Result exceptionHandler(RuntimeException exception) { + public Result exceptionHandler(RuntimeException exception) throws FileNotFoundException { log.error("GlobalExceptionHandler===>运行时异常信息:{}", exception.getMessage()); - + exception.printStackTrace(); return Result.error(null, 500, "出错了啦"); } diff --git a/common/service-util/src/main/java/com/atguigu/ssyx/common/interceptor/UserLoginInterceptor.java b/common/service-util/src/main/java/com/atguigu/ssyx/common/interceptor/UserLoginInterceptor.java index b309f40..801f719 100644 --- a/common/service-util/src/main/java/com/atguigu/ssyx/common/interceptor/UserLoginInterceptor.java +++ b/common/service-util/src/main/java/com/atguigu/ssyx/common/interceptor/UserLoginInterceptor.java @@ -26,7 +26,7 @@ public class UserLoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String token = request.getHeader("token"); - log.info("UserLoginInterceptor===>{}", token); + log.info("用户Id登录.UserLoginInterceptor===>{}", token); if (!StringUtils.isEmpty(token)) { Long userId = JwtHelper.getUserId(token); Object userIdObject = redisTemplate.opsForValue().get(RedisConst.USER_LOGIN_KEY_PREFIX + userId); diff --git a/model/src/main/java/com/atguigu/ssyx/vo/search/SkuEsQueryVo.java b/model/src/main/java/com/atguigu/ssyx/vo/search/SkuEsQueryVo.java index 2f3c8d8..d979d5b 100644 --- a/model/src/main/java/com/atguigu/ssyx/vo/search/SkuEsQueryVo.java +++ b/model/src/main/java/com/atguigu/ssyx/vo/search/SkuEsQueryVo.java @@ -1,17 +1,14 @@ package com.atguigu.ssyx.vo.search; import lombok.Data; -import org.springframework.data.elasticsearch.annotations.Field; -import org.springframework.data.elasticsearch.annotations.FieldType; // 封装查询条件 @Data public class SkuEsQueryVo { - - private Long categoryId;;//三级分类id - - private String keyword;//检索的关键字 - + private Integer limit; + private Integer page; + private Long categoryId; + // 三级分类id + private String keyword;// 检索的关键字 private Long wareId; - } diff --git a/service/service-home/src/main/java/com/atguigu/ssyx/home/controller/HomeApiController.java b/service/service-home/src/main/java/com/atguigu/ssyx/home/controller/HomeApiController.java index 21a1b76..d4610e8 100644 --- a/service/service-home/src/main/java/com/atguigu/ssyx/home/controller/HomeApiController.java +++ b/service/service-home/src/main/java/com/atguigu/ssyx/home/controller/HomeApiController.java @@ -10,7 +10,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; import java.util.Map; @Api(tags = "首页接口") @@ -22,9 +21,9 @@ public class HomeApiController { @ApiOperation(value = "获取首页数据") @GetMapping("index") - public Result> index(HttpServletRequest request) { + public Result> index() { + // 获取用户Id Long userId = BaseContext.getUserId(); - Map home = homeService.home(userId); - return Result.success(home); + return Result.success(homeService.home(userId)); } } diff --git a/service/service-home/src/main/java/com/atguigu/ssyx/home/service/impl/HomeServiceImpl.java b/service/service-home/src/main/java/com/atguigu/ssyx/home/service/impl/HomeServiceImpl.java index c63888f..e4294a2 100644 --- a/service/service-home/src/main/java/com/atguigu/ssyx/home/service/impl/HomeServiceImpl.java +++ b/service/service-home/src/main/java/com/atguigu/ssyx/home/service/impl/HomeServiceImpl.java @@ -3,7 +3,6 @@ package com.atguigu.ssyx.home.service.impl; import com.atguigu.ssyx.client.product.ProductFeignClient; import com.atguigu.ssyx.client.search.SearchFeignClient; import com.atguigu.ssyx.client.user.UserFeignClient; -import com.atguigu.ssyx.common.result.Result; import com.atguigu.ssyx.home.service.HomeService; import com.atguigu.ssyx.model.product.Category; import com.atguigu.ssyx.model.product.SkuInfo; @@ -43,13 +42,13 @@ public class HomeServiceImpl implements HomeService { result.put("categoryList", categoryList); // 获取新人专享 - Result> personSkuInfoList = productFeignClient.findNewPersonSkuInfoList(); + List personSkuInfoList = productFeignClient.findNewPersonSkuInfoList().getData(); result.put("personSkuInfoList", personSkuInfoList); // 使用评分查询-ES List hotSkuList = searchFeignClient.findHotSkuList(); result.put("hotSkuList", hotSkuList); - + // 2.获取分类 return result; } diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/MqListener/SkuListener.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/MqListener/SkuListener.java index 2ef9022..cc327d2 100644 --- a/service/service-search/src/main/java/com/atguigu/ssyx/search/MqListener/SkuListener.java +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/MqListener/SkuListener.java @@ -1,18 +1,23 @@ package com.atguigu.ssyx.search.MqListener; import com.atguigu.ssyx.mq.constant.MqConst; +import com.atguigu.ssyx.search.service.SkuService; import com.rabbitmq.client.Channel; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; @Component public class SkuListener { + @Autowired + private SkuService skuService; + // 商品上架 @RabbitListener(bindings = @QueueBinding( value = @Queue(name = MqConst.QUEUE_GOODS_UPPER, durable = "true"), @@ -21,6 +26,7 @@ public class SkuListener { )) public void upperSku(Long skuId, Message message, Channel channel) throws IOException { if (skuId != null) { + skuService.upperSku(skuId); channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } } @@ -33,6 +39,7 @@ public class SkuListener { )) public void lowerSku(Long skuId, Message message, Channel channel) throws IOException { if (skuId != null) { + skuService.lowerGoods(skuId); channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } } diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java index 52ec550..d1fdaa7 100644 --- a/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java @@ -7,10 +7,9 @@ import com.atguigu.ssyx.search.service.SkuService; import com.atguigu.ssyx.vo.search.SkuEsQueryVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,16 +26,9 @@ public class SkuApiController { @ApiOperation(value = "搜索商品") @GetMapping("{page}/{limit}") - public Result> list( - @ApiParam(name = "page", value = "当前页码", required = true) - @PathVariable Integer page, - @ApiParam(name = "limit", value = "每页记录数", required = true) - @PathVariable Integer limit, - @ApiParam(name = "searchParamVo", value = "查询对象", required = false) - SkuEsQueryVo searchParamVo) { - PageRequest pageRequest = PageRequest.of(page - 1, limit); - Page pageModel = skuService.search(pageRequest, searchParamVo); - return Result.success(pageModel); + public List list(SkuEsQueryVo vo) { + Pageable pageRequest = PageRequest.of(vo.getPage() - 1, vo.getLimit()); + return skuService.search(pageRequest, vo).getContent(); } @ApiOperation(value = "上架商品") diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java index d2bbecb..4f9b43c 100644 --- a/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java @@ -2,11 +2,17 @@ package com.atguigu.ssyx.search.repository; import com.atguigu.ssyx.model.search.SkuEs; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; public interface SkuRepository extends ElasticsearchRepository { - Page findByOrderByHotScoreDesc(PageRequest pageRequest); + /** + * * 获取爆品商品 + * + * @param page 分页参数 + * @return Page + */ + Page findByOrderByHotScoreDesc(Pageable page); /** * * 根据分类Id和仓库Id和分页查询 @@ -16,7 +22,7 @@ public interface SkuRepository extends ElasticsearchRepository { * @param pageRequest 分页查询 * @return Page */ - Page findByCategoryIdAndWareId(Long categoryId, Long wareId, PageRequest pageRequest); + Page findByCategoryIdAndWareId(Long categoryId, Long wareId, Pageable pageRequest); /** * * 根据仓库Id和分类Id+keyword查询 @@ -25,5 +31,5 @@ public interface SkuRepository extends ElasticsearchRepository { * @param pageRequest 分页信息 * @return 分页结果 */ - Page findByKeywordAndWareId(String keyword, PageRequest pageRequest); + Page findByKeywordAndWareId(String keyword, Pageable pageRequest); } diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java index c9c94b2..6271c63 100644 --- a/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java @@ -3,7 +3,7 @@ package com.atguigu.ssyx.search.service; import com.atguigu.ssyx.model.search.SkuEs; import com.atguigu.ssyx.vo.search.SkuEsQueryVo; import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import java.util.List; @@ -36,5 +36,5 @@ public interface SkuService { * @param searchParamVo 分页查询参数 * @return 分页结果 */ - Page search(PageRequest pageRequest, SkuEsQueryVo searchParamVo); + Page search(Pageable pageRequest, SkuEsQueryVo searchParamVo); } diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java index 9bbc505..288f4da 100644 --- a/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java @@ -14,6 +14,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -81,9 +82,8 @@ public class SkuServiceImpl implements SkuService { */ @Override public List findHotSkuList() { - PageRequest pageRequest = PageRequest.of(0, 10); - Page pageModel = skuRepository.findByOrderByHotScoreDesc(pageRequest); - return pageModel.getContent(); + Pageable pageable = PageRequest.of(0, 10); + return skuRepository.findByOrderByHotScoreDesc(pageable).getContent(); } /** @@ -94,7 +94,7 @@ public class SkuServiceImpl implements SkuService { * @return 分页结果 */ @Override - public Page search(PageRequest pageRequest, SkuEsQueryVo vo) { + public Page search(Pageable pageRequest, SkuEsQueryVo vo) { Page pageModel = null; // 想vo中设置wareId当前登录用户的仓库Id vo.setWareId(BaseContext.getWareId());