diff --git a/src/main/java/com/example/building/controller/ProductController.java b/src/main/java/com/example/building/controller/ProductController.java index 6c7d673..c790104 100644 --- a/src/main/java/com/example/building/controller/ProductController.java +++ b/src/main/java/com/example/building/controller/ProductController.java @@ -79,6 +79,18 @@ public class ProductController { return Result.success(productService.getProducts(categoryId, keyword, page, pageSize)); } + /** + * 获取所有商品(包括下架的,用于管理) + */ + @GetMapping("/all") + public Result> getAllProducts( + @RequestParam(required = false) String categoryId, + @RequestParam(required = false) String keyword, + @RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "20") Integer pageSize) { + return Result.success(productService.getAllProducts(categoryId, keyword, page, pageSize)); + } + /** * 获取商品详情 */ diff --git a/src/main/java/com/example/building/service/ProductService.java b/src/main/java/com/example/building/service/ProductService.java index 60bf9c9..322650e 100644 --- a/src/main/java/com/example/building/service/ProductService.java +++ b/src/main/java/com/example/building/service/ProductService.java @@ -37,6 +37,11 @@ public interface ProductService { */ Page getProducts(String categoryId, String keyword, Integer page, Integer pageSize); + /** + * 获取所有商品(包括下架的) + */ + Page getAllProducts(String categoryId, String keyword, Integer page, Integer pageSize); + /** * 获取商品详情 */ diff --git a/src/main/java/com/example/building/service/impl/ProductServiceImpl.java b/src/main/java/com/example/building/service/impl/ProductServiceImpl.java index 7695616..9223eb3 100644 --- a/src/main/java/com/example/building/service/impl/ProductServiceImpl.java +++ b/src/main/java/com/example/building/service/impl/ProductServiceImpl.java @@ -99,6 +99,20 @@ public class ProductServiceImpl implements ProductService { return productMapper.selectPage(pageParam, wrapper); } + @Override + public Page getAllProducts(String categoryId, String keyword, Integer page, Integer pageSize) { + Page pageParam = new Page<>(page, pageSize); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if (StringUtils.hasText(categoryId)) { + wrapper.eq(Product::getCategoryId, categoryId); + } + if (StringUtils.hasText(keyword)) { + wrapper.like(Product::getName, keyword); + } + wrapper.orderByDesc(Product::getCreatedAt); + return productMapper.selectPage(pageParam, wrapper); + } + /** * 获取商品详情 */ diff --git a/src/main/resources/db/migration/V13__add_order_item_size_fields.sql b/src/main/resources/db/migration/V13__add_order_item_size_fields.sql deleted file mode 100644 index 1f7b97b..0000000 --- a/src/main/resources/db/migration/V13__add_order_item_size_fields.sql +++ /dev/null @@ -1,4 +0,0 @@ --- 添加商品长度、宽度、面积字段 -ALTER TABLE order_items ADD COLUMN length DECIMAL(10,2) COMMENT '长度(cm)'; -ALTER TABLE order_items ADD COLUMN width DECIMAL(10,2) COMMENT '宽度(cm)'; -ALTER TABLE order_items ADD COLUMN area DECIMAL(10,4) COMMENT '面积(m²)'; \ No newline at end of file