diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreSameCityTransportBase.java b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreSameCityTransportBase.java index 22b34501..4bd2b59d 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreSameCityTransportBase.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStoreSameCityTransportBase.java @@ -42,7 +42,7 @@ public class ShopStoreSameCityTransportBase implements Serializable { private Long transport_base_id; @ApiModelProperty(value = "店铺ID") - private Integer store_id; + private Long store_id; @ApiModelProperty(value = "店铺详细地址") private String store_address; diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ShopStoreSameCityTransportBaseDTO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ShopStoreSameCityTransportBaseDTO.java new file mode 100644 index 00000000..a1e129cc --- /dev/null +++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ShopStoreSameCityTransportBaseDTO.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2024. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.common.pojo.dto; + +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "同城配送基础设置DTO", description = "同城配送基础设置DTO") +public class ShopStoreSameCityTransportBaseDTO implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "店铺同城快递基础运费设置") + ShopStoreSameCityTransportBase shopStoreSameCityTransportBase; + + @ApiModelProperty(value = "店铺同城快递运费设置(起送条件+优惠条件)") + public List shopStoreSameCityTransportList; +} diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportBaseMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportBaseMapper.java new file mode 100644 index 00000000..87cd6143 --- /dev/null +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportBaseMapper.java @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2024. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.shop.store.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; +import org.springframework.stereotype.Repository; + +@Repository +public interface ShopStoreSameCityTransportBaseMapper extends BaseMapper { +} diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportMapper.java new file mode 100644 index 00000000..1d1ccffc --- /dev/null +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStoreSameCityTransportMapper.java @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2024. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.shop.store.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; +import org.springframework.stereotype.Repository; + +@Repository +public interface ShopStoreSameCityTransportMapper extends BaseMapper { +} diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java index 6ef12c84..9d53a565 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreBaseService.java @@ -90,4 +90,11 @@ public interface ShopStoreBaseService extends IBaseService { Integer getStoreId(Integer user_id); Boolean removeStore(Integer storeId); + + /** + * 根据店铺Id获取一条基本店铺信息 + * @param store_id + * @return + */ + ShopStoreBase storeBase(Integer store_id); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportBaseService.java index f7c9abea..c5a061c2 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportBaseService.java @@ -8,5 +8,28 @@ package com.suisung.mall.shop.store.service; +import com.suisung.mall.common.api.CommonResult; +import com.suisung.mall.common.pojo.dto.ShopStoreSameCityTransportBaseDTO; + public interface ShopStoreSameCityTransportBaseService { + + /** + * 获取同城配送设置详情信息 + * @return + */ + CommonResult ShopStoreSameCityTransportBaseDetail(); + + /** + * 保存或更新同城配送各项设置 + * @param shopStoreSameCityTransportBaseDTO + * @return + */ + CommonResult saveOrUpdateSameCityTransport(ShopStoreSameCityTransportBaseDTO shopStoreSameCityTransportBaseDTO); + + /** + * 根据店铺 Id 获取同城配送设置详情信息 + * @param storeId + * @return + */ + ShopStoreSameCityTransportBaseDTO getDetailById(Long storeId); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java new file mode 100644 index 00000000..44afce26 --- /dev/null +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/ShopStoreSameCityTransportService.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.shop.store.service; + +import com.suisung.mall.common.api.CommonResult; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport; +import com.suisung.mall.common.pojo.dto.ShopStoreSameCityTransportBaseDTO; + +import java.util.List; + +public interface ShopStoreSameCityTransportService { + + + /** + * 根据同城配送基础配置自增 Id 获取同城配送扩展设置列表 + * @param transportBaseId + * @return + */ + List selectShopStoreSameCityTransportList(Long transportBaseId); +} diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java index 475a3a0f..9b28e34b 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java @@ -2839,6 +2839,23 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper(); + queryWrapper.eq("store_id", store_id); + return getOne(queryWrapper); + } + /** * 处理 store_slide 字段 * diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportBaseServiceImpl.java index 0cce43d6..b7563578 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportBaseServiceImpl.java @@ -8,9 +8,92 @@ package com.suisung.mall.shop.store.service.impl; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.suisung.mall.common.api.CommonResult; +import com.suisung.mall.common.modules.store.ShopStoreBase; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase; +import com.suisung.mall.common.pojo.dto.ShopStoreSameCityTransportBaseDTO; +import com.suisung.mall.core.web.service.impl.BaseServiceImpl; +import com.suisung.mall.shop.store.mapper.ShopStoreSameCityTransportBaseMapper; +import com.suisung.mall.shop.store.service.ShopStoreBaseService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService; +import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service -public class ShopStoreSameCityTransportBaseServiceImpl implements ShopStoreSameCityTransportBaseService { +public class ShopStoreSameCityTransportBaseServiceImpl extends BaseServiceImpl implements ShopStoreSameCityTransportBaseService { + + @Autowired + private ShopStoreSameCityTransportService shopStoreSameCityTransportService; + + @Autowired + private ShopStoreBaseService shopStoreBaseService; + + /** + * 获取同城配送设置详情信息 + * + * @return + */ + @Override + public CommonResult ShopStoreSameCityTransportBaseDetail() { + return null; + } + + /** + * 保存或更新同城配送各项设置 + * + * @param shopStoreSameCityTransportBaseDTO + * @return + */ + @Override + public CommonResult saveOrUpdateSameCityTransport(ShopStoreSameCityTransportBaseDTO shopStoreSameCityTransportBaseDTO) { + return null; + } + + /** + * 根据店铺 Id 获取同城配送设置详情信息 + * + * @param storeId + * @return + */ + @Override + public ShopStoreSameCityTransportBaseDTO getDetailById(Long storeId) { + if (storeId == null || storeId <= 0) { + return null; + } + + ShopStoreBase shopStoreBase = shopStoreBaseService.storeBase(storeId.intValue()); + if (shopStoreBase == null) { + return null; + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("store_id", storeId); + queryWrapper.orderByAsc("transport_base_id"); + ShopStoreSameCityTransportBase shopStoreSameCityTransportBase = getOne(queryWrapper); + if (shopStoreSameCityTransportBase == null) { + shopStoreSameCityTransportBase = new ShopStoreSameCityTransportBase(); + shopStoreSameCityTransportBase.setStore_id(storeId); + + // 获取店铺的地址和经纬度 + shopStoreSameCityTransportBase.setStore_address(StrUtil.removeAll(shopStoreBase.getStore_area(),"/") + shopStoreBase.getStore_address()); + shopStoreSameCityTransportBase.setStore_longitude(Convert.toBigDecimal(shopStoreBase.getStore_longitude())); + shopStoreSameCityTransportBase.setStore_latitude(Convert.toBigDecimal(shopStoreBase.getStore_latitude())); + } + + ShopStoreSameCityTransportBaseDTO shopStoreSameCityTransportBaseDTO = new ShopStoreSameCityTransportBaseDTO(); + shopStoreSameCityTransportBaseDTO.setShopStoreSameCityTransportBase(shopStoreSameCityTransportBase); + + // 多个店铺同城快递运费设置(起送条件+优惠条件) + List shopStoreSameCityTransportList = shopStoreSameCityTransportService.selectShopStoreSameCityTransportList(shopStoreSameCityTransportBase.getTransport_base_id()); + shopStoreSameCityTransportBaseDTO.setShopStoreSameCityTransportList(shopStoreSameCityTransportList); + + return shopStoreSameCityTransportBaseDTO; + } } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java new file mode 100644 index 00000000..9d7c2156 --- /dev/null +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreSameCityTransportServiceImpl.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2024. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.shop.store.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.suisung.mall.common.constant.ConstantError; +import com.suisung.mall.common.modules.store.ShopStoreSameCityTransport; +import com.suisung.mall.core.web.service.impl.BaseServiceImpl; +import com.suisung.mall.shop.store.mapper.ShopStoreSameCityTransportMapper; +import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportService; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +@Service +public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl implements ShopStoreSameCityTransportService { + + + /** + * 根据同城配送基础配置自增 Id 获取同城配送扩展设置列表 + * + * @param transportBaseId + * @return + */ + @Override + public List selectShopStoreSameCityTransportList(Long transportBaseId) { + if (transportBaseId == null||transportBaseId <= 0) { + return Collections.emptyList(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("transport_base_id", transportBaseId); + queryWrapper.eq("status", ConstantError.Enable); + queryWrapper.orderByAsc("transport_id"); + + List shopStoreSameCityTransportList = list(queryWrapper); + if(CollectionUtil.isEmpty(shopStoreSameCityTransportList)){ + shopStoreSameCityTransportList = Collections.emptyList(); + } + + return shopStoreSameCityTransportList; + } +}