From 43315000b2840313a5aff96bf314b3c061e4616d Mon Sep 17 00:00:00 2001 From: zepengdev <lzpsmith@outlook.com> Date: Mon, 14 Jul 2025 21:00:53 +0800 Subject: [PATCH] feat: 增加店铺和商品审核功能 --- oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java | 65 ++++++++++++++++++++++++++++---- 1 files changed, 57 insertions(+), 8 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java index 0dfd954..b98c44f 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java @@ -1,14 +1,31 @@ package com.oying.modules.pc.store.rest; -import com.oying.utils.R; -import com.oying.modules.pc.store.domain.dto.StoreCustomerDetailDto; -import com.oying.modules.pc.store.domain.dto.StoreCustomerQueryCriteria; +import cn.hutool.core.util.ObjUtil; +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.ProductService; +import com.oying.modules.pc.store.domain.Store; +import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria; +import com.oying.modules.pc.store.domain.enums.StoreStatusEnum; +import com.oying.modules.pc.store.service.StoreQualificationService; import com.oying.modules.pc.store.service.StoreQueryService; +import com.oying.modules.pc.store.service.StoreService; +import com.oying.modules.pc.store.view.CustomerStoreView; +import com.oying.modules.pc.utils.BusinessHoursUtils; +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.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; /** * 店铺 @@ -22,15 +39,47 @@ @RequiredArgsConstructor public class StoreCustomerController { + private final StoreService storeService; private final StoreQueryService storeQueryService; + private final StoreQualificationService storeQualificationService; + private final ProductService productService; + + @GetMapping(value = "/page") + @ApiOperation("查询店铺") + public ResponseEntity<?> getStoresByPage(StoreQueryCriteria criteria) { + criteria.setLimit(1000); + criteria.setBusinessStatus(StoreStatusEnum.OPEN.getValue()); + PageResult<Store> pagedStores = storeQueryService.findPagedStores(criteria); + pagedStores.getContent().forEach(store -> store.setProducts(this.getProductsByStoreId(store.getStoreId()))); + return ResponseEntity.ok(R.success(pagedStores)); + } @GetMapping(value = "/{storeId}") @ApiOperation("查询店铺") - public ResponseEntity<?> getCustomerStoreById(@PathVariable("storeId") Long storeId) { - StoreCustomerQueryCriteria criteria = new StoreCustomerQueryCriteria(); + public ResponseEntity<?> getStoreById(@PathVariable("storeId") Long storeId) { + Store store = storeService.getById(storeId); + CustomerStoreView view = new CustomerStoreView(); + BeanUtils.copyProperties(store, view); + view.setBusinessHours(BusinessHoursUtils.formatBusinessHours(store.getOpenTime(), store.getCloseTime())); + return ResponseEntity.ok(R.success(view)); + } + + @GetMapping(value = "/{storeId}/details") + @ApiOperation("查询店铺") + public ResponseEntity<?> getStoreDetailsById(@PathVariable("storeId") Long storeId) { + Store store = storeService.getById(storeId); + if (ObjUtil.isNotEmpty(store)) { + store.setQualifications(storeQualificationService.getByStoreId(storeId)); + } + return ResponseEntity.ok(R.success(store)); + } + + private List<Product> getProductsByStoreId(Long storeId) { + ProductQueryCriteria criteria = new ProductQueryCriteria(); criteria.setStoreId(storeId); - StoreCustomerDetailDto detailDto = storeQueryService.getCustomerStoreDetail(criteria); - return ResponseEntity.ok(R.success(detailDto)); + criteria.setStatus(ProductStatusEnum.AVAILABLE.getValue()); + criteria.setLimit(3); + return productService.queryAll(criteria); } } -- Gitblit v1.9.3