package com.oying.modules.pc.store.rest; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; import com.oying.modules.pc.store.domain.Store; import com.oying.modules.pc.store.domain.dto.StoreCreateRequest; import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria; import com.oying.modules.pc.store.domain.dto.StoreUpdateRequest; import com.oying.modules.pc.store.service.StoreService; import com.oying.utils.R; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; /** * 店铺 * * @author lzp * @date 2025-04-22 */ @RestController @RequestMapping("/api/pc/store") @RequiredArgsConstructor public class StoreController { private final StoreService storeService; @GetMapping(value = "/list") @ApiOperation("查询所有店铺") public ResponseEntity getStores(StoreQueryCriteria criteria) { List storeList = Optional.ofNullable(storeService.queryAll(criteria)).orElse(ListUtil.empty()); return ResponseEntity.ok(R.success(storeList)); } @GetMapping(value = "/page") @ApiOperation("查询所有店铺") public ResponseEntity getStoresByPage(StoreQueryCriteria criteria) { return ResponseEntity.ok(R.success(storeService.queryByPage(criteria))); } @GetMapping(value = "/{storeId}") @ApiOperation("查询店铺") public ResponseEntity getStoreById(@PathVariable Long storeId) { return ResponseEntity.ok(R.success(storeService.getById(storeId))); } @GetMapping(value = "/{storeId}/details") public ResponseEntity getStoreDetailsById(@PathVariable("storeId") Long storeId) { return ResponseEntity.ok(R.success(storeService.getById(storeId))); } @GetMapping(value = "/{storeId}/name-check") public ResponseEntity checkStoreName(@RequestParam String storeName) { return ResponseEntity.ok(R.success(storeService.existsStoreName(storeName))); } @PostMapping @ApiOperation("创建店铺") public ResponseEntity create(@RequestBody StoreCreateRequest request) { return ResponseEntity.status(HttpStatus.CREATED).body(R.success(storeService.create(request))); } @PostMapping(value = "/{storeId}") @ApiOperation("修改店铺") public ResponseEntity update(@PathVariable("storeId") Long storeId, @RequestBody StoreUpdateRequest request) { request.setStoreId(ObjectUtil.defaultIfNull(request.getStoreId(), storeId)); storeService.update(request); return ResponseEntity.noContent().build(); } }