zepengdev
2025-06-26 5da53ab90d6152de28b8475cd9ccaa00abba45e8
fix: 优化店铺添加,预检查店铺名称,返回添加的店铺信息
6 files modified
45 ■■■■ changed files
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreController.java 3 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java 3 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/pc/store/service/StoreCreateService.java 3 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java 9 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreCreateServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java 22 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreController.java
@@ -57,8 +57,7 @@
    @PostMapping
    @ApiOperation("创建店铺")
    public ResponseEntity<?> create(@RequestBody StoreCreateRequest request) {
        storeService.create(request);
        return ResponseEntity.status(HttpStatus.CREATED).build();
        return ResponseEntity.status(HttpStatus.CREATED).body(R.success(storeService.create(request)));
    }
    @PostMapping(value = "/{storeId}")
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java
@@ -93,8 +93,7 @@
    @ApiOperation("创建店铺")
    //@PreAuthorize("@el.check('merchant:store:create')")
    public ResponseEntity<?> create(@RequestBody StoreCreateRequest request) {
        storeCreateService.create(request);
        return ResponseEntity.status(HttpStatus.CREATED).build();
        return ResponseEntity.status(HttpStatus.CREATED).body(storeCreateService.create(request));
    }
    /**
oying-system/src/main/java/com/oying/modules/pc/store/service/StoreCreateService.java
@@ -1,7 +1,8 @@
package com.oying.modules.pc.store.service;
import com.oying.modules.pc.store.domain.Store;
import com.oying.modules.pc.store.domain.dto.StoreCreateRequest;
public interface StoreCreateService {
    void create(StoreCreateRequest request);
    Store create(StoreCreateRequest request);
}
oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java
@@ -2,8 +2,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.oying.modules.pc.store.domain.Store;
import com.oying.modules.pc.store.domain.StoreCategory;
import com.oying.modules.pc.store.domain.dto.*;
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.utils.PageResult;
import java.math.BigDecimal;
@@ -26,7 +27,7 @@
    List<Store> queryUserStores(Long userId);
    boolean create(StoreCreateRequest request);
    Store create(StoreCreateRequest request);
    boolean update(StoreUpdateRequest request);
@@ -55,4 +56,6 @@
    boolean updateStatus(Long storeId, Integer status, Long version);
    boolean existsByIdAndMerchantId(Long storeId, Long merchantId);
    boolean existsStoreName(String storeName);
}
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreCreateServiceImpl.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.service.impl;
import com.oying.modules.pc.store.domain.Store;
import com.oying.modules.pc.store.domain.dto.StoreCreateRequest;
import com.oying.modules.pc.store.service.StoreCreateService;
import com.oying.modules.pc.store.service.StoreService;
@@ -16,7 +17,7 @@
    private final StoreService storeService;
    @Transactional(rollbackFor = Exception.class)
    public void create(StoreCreateRequest request) {
        storeService.create(request);
    public Store create(StoreCreateRequest request) {
        return storeService.create(request);
    }
}
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java
@@ -7,7 +7,7 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.oying.exception.EntityExistException;
import com.oying.exception.BadRequestException;
import com.oying.exception.EntityNotFoundException;
import com.oying.modules.pc.common.ValueUpdate;
import com.oying.modules.pc.store.converter.StoreAssembler;
@@ -27,6 +27,7 @@
import com.oying.utils.PageResult;
import com.oying.utils.PageUtil;
import com.oying.utils.SecurityUtils;
import com.oying.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -79,12 +80,17 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean create(StoreCreateRequest request) {
    public Store create(StoreCreateRequest request) {
        // 检查店铺名称是否存在
        if (this.existsStoreName(request.getStoreName())) {
            throw new BadRequestException("店铺名称已存在");
        }
        // 创建店铺
        Store store = StoreAssembler.to(request);
        storeMapper.insert(store);
        this.processQualificationCreate(store, request.getQualificationList());
        this.bindUser(store.getStoreId());
        return true;
        return store;
    }
    @Override
@@ -198,6 +204,16 @@
    }
    @Override
    public boolean existsStoreName(String storeName) {
        if (StringUtils.isEmpty(storeName)) {
            return true;
        }
        LambdaQueryWrapper<Store> wrapper = new LambdaQueryWrapper<Store>()
                .eq(Store::getStoreName, storeName);
        return storeMapper.selectCount(wrapper) > 0;
    }
    @Override
    public boolean existsByIdAndMerchantId(Long storeId, Long merchantId) {
        if (storeId == null || merchantId == null) {
            return false;