From f6239d1029da4c51ba3b2cec790f7399a210a3df Mon Sep 17 00:00:00 2001 From: zepengdev <lzpsmith@outlook.com> Date: Sat, 19 Jul 2025 16:13:27 +0800 Subject: [PATCH] feat: 优化商品和店铺 --- oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java | 42 ++++++++++++++++++++++++++---------------- 1 files changed, 26 insertions(+), 16 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java index 7f42839..a0a2299 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java +++ b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java @@ -11,12 +11,13 @@ 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.utils.PageResult; import com.oying.utils.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.ObjectUtils; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -54,15 +55,28 @@ return ResponseEntity.ok(R.success(productService.queryAll(criteria))); } + @GetMapping(value = "/batch") + @ApiOperation("查询商品(批量)") + // @PreAuthorize("@el.check('product:list')") + public ResponseEntity<?> getProductsByIds(@RequestParam(value = "ids") List<Long> ids) { + return ResponseEntity.ok(R.success(productService.listByIds(ids))); + } + @GetMapping(value = "/page") @ApiOperation("查询商品") // @PreAuthorize("@el.check('product:list')") public ResponseEntity<?> getProductsByPage(ProductQueryCriteria criteria) { Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); - return ResponseEntity.ok(R.success(productService.queryAll(criteria, page))); + PageResult<Product> pageResult = productService.queryAll(criteria, page); + pageResult.getContent().forEach(product -> { + Long productId = product.getProductId(); + product.setImages(productImageService.queryImagesByProductId(productId)); + product.setLabels(productLabelService.queryLabelsByProductId(productId)); + }); + return ResponseEntity.ok(R.success(pageResult)); } - @GetMapping(value = "/{productId}}") + @GetMapping(value = "/{productId}") @ApiOperation("查询商品") // @PreAuthorize("@el.check('product:list')") public ResponseEntity<?> getProduct(@PathVariable Long productId) { @@ -73,8 +87,8 @@ return ResponseEntity.ok(R.success(product)); } - @GetMapping(value = "/{productId}}/details") - @ApiOperation("查询商品") + @GetMapping(value = "/{productId}/details") + @ApiOperation("查询商品详情") // @PreAuthorize("@el.check('product:list')") public ResponseEntity<?> getProductDetails(@PathVariable Long productId) { Product product = productService.getById(productId); @@ -85,16 +99,16 @@ return ResponseEntity.ok(R.success(product)); } - @GetMapping(value = "/{productId}}/images") - @ApiOperation("查询商品") + @GetMapping(value = "/{productId}/images") + @ApiOperation("查询商品图片") // @PreAuthorize("@el.check('product:list')") public ResponseEntity<?> getProductImages(@PathVariable Long productId) { return ResponseEntity.ok(R.success(productImageService.queryImagesByProductId(productId))); } - @GetMapping(value = "/{productId}}/labels") - @ApiOperation("查询商品") + @GetMapping(value = "/{productId}/labels") + @ApiOperation("查询商品标签信息") // @PreAuthorize("@el.check('product:list')") public ResponseEntity<?> getProductLabels(@PathVariable Long productId) { return ResponseEntity.ok(R.success(productLabelService.queryLabelsByProductId(productId))); @@ -104,20 +118,16 @@ @Log("新增商品") @ApiOperation("新增商品") //@PreAuthorize("@el.check('merchant:product:add')") - public ResponseEntity<?> createProduct(@PathVariable Long storeId, - @Validated @RequestBody ProductMerchantCreateRequest request) { - request.setStoreId(ObjectUtils.defaultIfNull(request.getStoreId(), storeId)); + public ResponseEntity<?> createProduct(@Validated @RequestBody ProductMerchantCreateRequest request) { productAdminService.create(request); - return ResponseEntity.noContent().build(); + return ResponseEntity.status(HttpStatus.CREATED).build(); } @PutMapping @Log("修改商品") @ApiOperation("修改商品") // @PreAuthorize("@el.check('product:edit')") - public ResponseEntity<?> updateProduct(@PathVariable Long productId, - @Validated @RequestBody ProductMerchantUpdateRequest request) { - request.setProductId(ObjectUtils.defaultIfNull(request.getProductId(), productId)); + public ResponseEntity<?> updateProduct(@Validated @RequestBody ProductMerchantUpdateRequest request) { productAdminService.update(request); return ResponseEntity.noContent().build(); } -- Gitblit v1.9.3