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