From b394df082b875856884d6d02cce2a43c49ad6704 Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Fri, 30 May 2025 16:44:46 +0800 Subject: [PATCH] Merge branch 'feature/pc-base' into xin --- oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 159 insertions(+), 0 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java new file mode 100644 index 0000000..445170a --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java @@ -0,0 +1,159 @@ +package com.oying.modules.pc.store.service.impl; + +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.modules.pc.store.domain.Store; +import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria; +import com.oying.modules.pc.store.mapper.StoreMapper; +import com.oying.modules.pc.store.service.StoreService; +import com.oying.utils.PageResult; +import com.oying.utils.PageUtil; +import com.oying.utils.SecurityUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.time.LocalTime; +import java.time.ZonedDateTime; +import java.util.List; +import java.util.Optional; + +/** + * 店铺Service业务层处理 + * + * @author lzp + * @date 2025-04-22 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements StoreService { + + private final StoreMapper storeMapper; + + @Override + public PageResult<Store> queryByPage(StoreQueryCriteria criteria) { + Page<Store> page = new Page<>(criteria.getPage(), criteria.getSize()); + return PageUtil.toPage(storeMapper.selectStoreList(criteria, page)); + } + + @Override + public List<Store> queryAll(StoreQueryCriteria criteria) { + return storeMapper.selectStoreList(criteria); + } + + @Override + public Store getMerchantStore(Long merchantId) { + return storeMapper.selectStoreByMerchantId(merchantId); + } + + @Override + public boolean create(Store store) { + // store.setStoreId(StoreIdGenerator.getId()); + store.setCreateBy(SecurityUtils.getCurrentUserId()); + store.setCreateTime(ZonedDateTime.now()); + return save(store); + } + + @Override + public boolean updateLogo(Long storeId, String logo) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId).set(Store::getLogoImageId, logo); + return update(wrapper); + } + + @Override + public boolean updateName(Long storeId, String storeName) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getStoreName, storeName); + return update(wrapper); + } + + @Override + public boolean updateDescription(Long storeId, String description) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getDescription, description); + return update(wrapper); + } + + @Override + public boolean updateContactPhone(Long storeId, String contactPhone) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getContactPhone, contactPhone); + return update(wrapper); + } + + @Override + public boolean updateAddress(Long storeId, String address) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getAddress, address); + return update(wrapper); + } + + @Override + public boolean updateLocation(Long storeId, Double longitude, Double latitude) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getLongitude, longitude) + .set(Store::getLatitude, latitude); + return update(wrapper); + } + + @Override + public boolean updateRadius(Long storeId, Integer radius) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getRadius, radius); + return update(wrapper); + } + + @Override + public boolean updatePlatformCategory(Long storeId, Long platformCategory) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getPlatformCategoryId, platformCategory); + return update(wrapper); + } + + @Override + public boolean updateBusinessHours(Long storeId, LocalTime openTime, LocalTime endTime) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getOpenTime, openTime) + .set(Store::getCloseTime, endTime); + return update(wrapper); + } + + @Override + public boolean updateDeliveryMinimum(Long storeId, BigDecimal deliveryMinimum) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getDeliveryMinimum, deliveryMinimum); + return update(wrapper); + } + + @Override + public boolean updateDeliveryFee(Long storeId, BigDecimal deliveryFee) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getDeliveryFee, deliveryFee); + return update(wrapper); + } + + @Override + public boolean updateStatus(Long storeId, Integer status) { + LambdaUpdateWrapper<Store> wrapper = this.createLambdaUpdateWrapper(storeId) + .set(Store::getStatus, status); + return update(wrapper); + } + + @Override + public boolean existsByIdAndMerchantId(Long storeId, Long merchantId) { + if (storeId == null || merchantId == null) { + return false; + } + Store store = getById(storeId); + return Optional.ofNullable(store).map(i -> merchantId.equals(i.getMerchantId())).orElse(false); + } + + private LambdaUpdateWrapper<Store> createLambdaUpdateWrapper(Long storeId) { + return new LambdaUpdateWrapper<Store>() + .eq(Store::getStoreId, storeId) + .set(Store::getUpdateBy, SecurityUtils.getCurrentUserId()); + } +} -- Gitblit v1.9.3