From 7440258d31a6ef7d76eb2351852cec9f2bdd4222 Mon Sep 17 00:00:00 2001 From: zepengdev <lzpsmith@outlook.com> Date: Mon, 21 Jul 2025 16:16:28 +0800 Subject: [PATCH] fix: 调整店铺商品查询的参数 --- oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java | 57 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 36 insertions(+), 21 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java index 95d701d..0e2ec45 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java +++ b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductCustomerController.java @@ -1,20 +1,25 @@ package com.oying.modules.pc.product.rest; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.ObjUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.oying.modules.pc.common.core.domain.R; import com.oying.modules.pc.product.domain.Product; import com.oying.modules.pc.product.domain.dto.ProductQueryCriteria; +import com.oying.modules.pc.product.domain.enums.ProductStatusEnum; +import com.oying.modules.pc.product.service.ProductImageService; +import com.oying.modules.pc.product.service.ProductLabelService; import com.oying.modules.pc.product.service.ProductService; import com.oying.modules.pc.product.view.ProductCustomerView; -import com.oying.modules.pc.product.view.ProductMerchantSimpleView; +import com.oying.modules.pc.product.view.ProductImageCustomerView; +import com.oying.modules.pc.product.view.ProductLabelCustomerView; import com.oying.utils.PageResult; +import com.oying.utils.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; -import org.springframework.beans.BeanUtils; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -22,11 +27,11 @@ import java.util.stream.Collectors; /* -* + * * @author lzp * @date 2025-04-30 * -*/ + */ @RestController @RequiredArgsConstructor @Api(tags = "商品(客户端)") @@ -34,20 +39,23 @@ public class ProductCustomerController { private final ProductService productService; + private final ProductImageService productImageService; + private final ProductLabelService productLabelService; @GetMapping(value = "/page") @ApiOperation("根据商品名称模糊匹配店铺内的商品") /*@PreAuthorize("@el.check('merchant:product:page')")*/ - public ResponseEntity<?> query(@PathVariable Long storeId, - @RequestParam(value = "categoryId", required = false) Long categoryId, - @RequestParam(value = "secondCategoryId", required = false) Long secondCategoryId, - @RequestParam(value = "blurry", required = false) String blurry) { + public ResponseEntity<?> getProductsByPage(@PathVariable Long storeId, + @RequestParam(value = "categoryId", required = false) Long categoryId, + @RequestParam(value = "secondCategoryId", required = false) Long secondCategoryId, + @RequestParam(value = "blurry", required = false) String blurry) { ProductQueryCriteria criteria = new ProductQueryCriteria(); criteria.setStoreId(storeId); criteria.setCategoryId(categoryId); criteria.setSecondCategoryId(secondCategoryId); criteria.setBlurry(blurry); + criteria.setShelfStatus(ProductStatusEnum.AVAILABLE.getValue()); Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); PageResult<Product> productPageResult = productService.queryAll(criteria, page); @@ -56,9 +64,7 @@ PageResult<ProductCustomerView> viewPageResult = new PageResult<>( productList.stream().map(i -> { ProductCustomerView view = new ProductCustomerView(); - BeanUtils.copyProperties(i, view); - view.setScore(5.0D); - view.setSold(0); + BeanUtil.copyProperties(i, view); return view; }).collect(Collectors.toList()), productPageResult.getTotalElements()); @@ -68,16 +74,25 @@ @GetMapping(value = "/{productId}/details") @ApiOperation("查询商品") /*@PreAuthorize("@el.check('merchant:product:byProductId')")*/ - public ResponseEntity<?> getDetails(@PathVariable Long productId) { + public ResponseEntity<?> getProductDetails(@PathVariable Long productId) { Product product = productService.getById(productId); + if (ObjUtil.isEmpty(product)) { + return ResponseEntity.ok(R.success()); + } ProductCustomerView customerView = new ProductCustomerView(); - customerView.setProductId(product.getProductId()); - customerView.setTitle(product.getTitle()); - customerView.setPrice(product.getPrice()); - customerView.setScore(5.0D); - customerView.setSold(0); - customerView.setLabelList(ListUtil.empty()); - customerView.setMainImageList(ListUtil.empty()); + BeanUtil.copyProperties(product, customerView); + if (ObjUtil.isNotEmpty(product)) { + customerView.setImages(productImageService.queryImagesByProductId(productId).stream().map(i -> { + ProductImageCustomerView imageCustomerView = new ProductImageCustomerView(); + BeanUtil.copyProperties(i, imageCustomerView, CopyOptions.create().setIgnoreNullValue(true)); + return imageCustomerView; + }).collect(Collectors.toList())); + customerView.setLabels(productLabelService.queryLabelsByProductId(productId).stream().map(i -> { + ProductLabelCustomerView labelCustomerView = new ProductLabelCustomerView(); + BeanUtil.copyProperties(i, labelCustomerView, CopyOptions.create().setIgnoreNullValue(true)); + return labelCustomerView; + }).collect(Collectors.toList())); + } return ResponseEntity.ok(R.success(customerView)); } -- Gitblit v1.9.3