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 index d73cc613..5be54a60 100644 --- 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 @@ -41,11 +41,11 @@ public class ShopStoreSameCityTransportBaseDTO implements Serializable { transport.setUpdated_at(this.transportBase.getUpdated_at()); transport.setStore_id(this.transportBase.getStore_id()); - if (transport.getCreated_by() == null) { + if (transport.getCreated_by() == null && transport.getUpdated_by() != null) { transport.setCreated_by(transport.getUpdated_by()); } - if (transport.getCreated_at() == null) { + if (transport.getCreated_at() == null && transport.getUpdated_at() != null) { transport.setCreated_at(transport.getUpdated_at()); } } diff --git a/mall-pay/pom.xml b/mall-pay/pom.xml index 44ace36e..c363461c 100644 --- a/mall-pay/pom.xml +++ b/mall-pay/pom.xml @@ -74,8 +74,8 @@ com.lkl.laop.sdk lkl-laop-java-sdk 1.0.7 - ${project.basedir}/src/main/resources/lib/lkl-java-sdk-1.0.7.jar - system + + diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java index 4df3b82c..e1e2a1af 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java @@ -14,6 +14,7 @@ import com.suisung.mall.common.service.impl.BaseControllerImpl; import com.suisung.mall.shop.lakala.service.LakalaApiService; import com.suisung.mall.shop.library.service.LibraryProductService; import com.suisung.mall.shop.order.service.ShopOrderReturnService; +import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.http.HttpStatus; @@ -40,6 +41,9 @@ public class LakalaController extends BaseControllerImpl { @Resource private LibraryProductService libraryProductService; + @Resource + private ShopStoreSameCityTransportBaseService storeSameCityTransportBaseService; + @ApiOperation(value = "测试案例", notes = "测试案例") @RequestMapping(value = "/testcase", method = RequestMethod.POST) public Object testcase(@RequestBody JSONObject paramsJSON) { @@ -47,6 +51,8 @@ public class LakalaController extends BaseControllerImpl { // return lakalaPayService.applyLedgerMerEc(paramsJSON.getStr("mchMobile")); // return lakalaPayService.LedgerMerEcDownload(975790666910121984L); +// return storeSameCityTransportBaseService.initDefaultSameCityTransport(58); + // return geTuiPushService.pushMessageToSingleByCid("f9da7081a7951cff6d7f1d4e2d2f270b", "", "从 shop 发消息", "none", ""); // return ""; 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 ef37d674..bbd76846 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 @@ -73,6 +73,14 @@ public interface ShopStoreSameCityTransportBaseService { Pair saveOrUpdateShopStoreSameCityTransportBase(ShopStoreSameCityTransportBase shopStoreSameCityTransportBase); + /** + * 初始化默认的同城配送基础运费信息 + * + * @param storeId + * @return + */ + Pair initDefaultSameCityTransport(Integer storeId); + /** * 计算同城订单配送费 * 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 6607a49d..5203c419 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 @@ -47,7 +47,10 @@ import com.suisung.mall.common.pojo.dto.StandardAddressDTO; import com.suisung.mall.common.service.impl.BaiduMapServiceImpl; import com.suisung.mall.common.utils.*; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; -import com.suisung.mall.shop.base.service.*; +import com.suisung.mall.shop.base.service.AccountBaseConfigService; +import com.suisung.mall.shop.base.service.ShopBaseProductTagService; +import com.suisung.mall.shop.base.service.ShopBaseStoreCategoryService; +import com.suisung.mall.shop.base.service.ShopBaseStoreGradeService; import com.suisung.mall.shop.config.BaiduUtil; import com.suisung.mall.shop.distribution.service.ShopDistributionPlantformUserService; import com.suisung.mall.shop.entity.LocationBean; @@ -74,6 +77,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.Serializable; @@ -166,8 +170,8 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl saveOrUpdateShopStoreSameCityTransportBase(ShopStoreSameCityTransportBase transportBase) { - if (transportBase == null || transportBase.getStore_id() == null || transportBase.getStore_id() <= 0) { - return Pair.of(0L, "缺少店铺Id必要参数!"); - } - - if (transportBase.getDistance_base() == null || transportBase.getDistance_base() < 0) { - transportBase.setDistance_base(0); -// return Pair.of(0L, "请输入距离!"); - } - - if (transportBase.getWeight_base() == null || transportBase.getWeight_base() < 0) { -// return Pair.of(0L, "请输入重量!"); - transportBase.setWeight_base(0); - } - - if (transportBase.getDelivery_base_fee() == null || BigDecimal.ZERO.compareTo(transportBase.getDelivery_base_fee()) > 0) { - // return Pair.of(0L, "请输入配送运费!"); - transportBase.setDelivery_base_fee(BigDecimal.ZERO); - } - - if (transportBase.getDistance_increase_km() == null || transportBase.getDistance_increase_km() < 0) { - transportBase.setDistance_increase_km(0); - } - if (transportBase.getDistance_increase_fee() == null || BigDecimal.ZERO.compareTo(transportBase.getDistance_increase_fee()) > 0) { - transportBase.setDistance_increase_fee(BigDecimal.ZERO); - } - - if (transportBase.getWeight_increase_kg() == null || transportBase.getWeight_increase_kg() < 0) { - transportBase.setWeight_increase_kg(0); - } - if (transportBase.getWeight_increase_fee() == null || BigDecimal.ZERO.compareTo(transportBase.getWeight_increase_fee()) > 0) { - transportBase.setWeight_increase_fee(BigDecimal.ZERO); - } - - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("store_id", transportBase.getStore_id()); - ShopStoreSameCityTransportBase transportBaseExist = getOne(queryWrapper); - if (transportBaseExist == null) { - // 新增记录 - transportBase.setCreated_by(transportBase.getUpdated_by()); - if (save(transportBase)) { - // 应返回自增id - transportBaseExist = getOne(queryWrapper); - transportBase.setTransport_base_id(transportBaseExist.getTransport_base_id()); - return Pair.of(transportBaseExist.getTransport_base_id(), "添加成功!"); - } else { - return Pair.of(0L, "添加失败!"); + try { + if (transportBase == null || transportBase.getStore_id() == null || transportBase.getStore_id() <= 0) { + return Pair.of(0L, "缺少店铺Id必要参数!"); } - } - // 记录已经存在就直接更新 - Long transportBaseId = transportBase.getTransport_base_id(); - if (transportBaseId == null || transportBase.getTransport_base_id() <= 0) { - transportBase.setTransport_base_id(transportBaseExist.getTransport_base_id()); - } + // 设置默认值 + if (transportBase.getDistance_base() == null || transportBase.getDistance_base() < 0) { + transportBase.setDistance_base(0); + } + if (transportBase.getWeight_base() == null || transportBase.getWeight_base() < 0) { + transportBase.setWeight_base(0); + } + if (transportBase.getDelivery_base_fee() == null || transportBase.getDelivery_base_fee().compareTo(BigDecimal.ZERO) < 0) { + transportBase.setDelivery_base_fee(BigDecimal.ZERO); + } + if (transportBase.getDistance_increase_km() == null || transportBase.getDistance_increase_km() < 0) { + transportBase.setDistance_increase_km(0); + } + if (transportBase.getDistance_increase_fee() == null || transportBase.getDistance_increase_fee().compareTo(BigDecimal.ZERO) < 0) { + transportBase.setDistance_increase_fee(BigDecimal.ZERO); + } + if (transportBase.getWeight_increase_kg() == null || transportBase.getWeight_increase_kg() < 0) { + transportBase.setWeight_increase_kg(0); + } + if (transportBase.getWeight_increase_fee() == null || transportBase.getWeight_increase_fee().compareTo(BigDecimal.ZERO) < 0) { + transportBase.setWeight_increase_fee(BigDecimal.ZERO); + } - // 更新记录 - if (updateById(transportBase)) { - return Pair.of(transportBase.getTransport_base_id(), "更新成功!"); - } else { - return Pair.of(0L, "更新失败!"); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("store_id", transportBase.getStore_id()); + ShopStoreSameCityTransportBase exist = getOne(queryWrapper); + + if (exist == null) { + // 新增 + transportBase.setCreated_by(transportBase.getUpdated_by()); + if (save(transportBase)) { + return Pair.of(transportBase.getTransport_base_id(), "添加成功!"); + } else { + return Pair.of(0L, "添加失败!"); + } + } else { + // 更新 + transportBase.setTransport_base_id(exist.getTransport_base_id()); + if (updateById(transportBase)) { + return Pair.of(transportBase.getTransport_base_id(), "更新成功!"); + } else { + return Pair.of(0L, "更新失败!"); + } + } + } catch (Exception e) { + log.error("保存或更新同城配送基础信息异常: ", e); + return Pair.of(0L, "系统内部错误"); + } + } + + + /** + * 初始化默认的同城配送基础运费信息 + * + * @param storeId + * @return + */ + @Override + public Pair initDefaultSameCityTransport(Integer storeId) { + try { + // 校验店铺ID + if (storeId == null || storeId <= 0) { + return Pair.of(false, "缺少店铺Id必要参数!"); + } + + // 获取预设配置 + String sameCityDeliverySetting = accountBaseConfigService.getConfig("same_city_delivery_setting", ""); + if (StrUtil.isBlank(sameCityDeliverySetting)) { + return Pair.of(false, "缺少同城配送预设设置!"); + } + + // 转换为 DTO 对象 + ShopStoreSameCityTransportBaseDTO transportDTO = JSONUtil.toBean(sameCityDeliverySetting, ShopStoreSameCityTransportBaseDTO.class); + if (transportDTO == null) { + return Pair.of(false, "同城配送预设设置格式错误!"); + } + + // 查询店铺信息 + ShopStoreBase storeBase = shopStoreBaseService.get(storeId); + if (storeBase == null) { + return Pair.of(false, "店铺不存在!"); + } + + // 设置基础配送信息 + ShopStoreSameCityTransportBase transportBase = transportDTO.getTransportBase(); + if (transportBase == null) { + return Pair.of(false, "缺少同城配送基础设置!"); + } + + transportBase.setStore_id(Convert.toLong(storeBase.getStore_id())); + transportBase.setStore_longitude(storeBase.getStore_longitude()); + transportBase.setStore_latitude(storeBase.getStore_latitude()); + transportBase.setStore_address(storeBase.getStore_address()); + + // 保存或更新基础配送信息 + Pair saveOrUpdateResult = saveOrUpdateShopStoreSameCityTransportBase(transportBase); + Long transportBaseId = saveOrUpdateResult.getFirst(); + if (transportBaseId == null || transportBaseId <= 0) { + return Pair.of(false, saveOrUpdateResult.getSecond()); + } + + // 更新 transport_base_id 并刷新列表 + transportBase.setTransport_base_id(transportBaseId); + transportDTO.setTransportBase(transportBase); + transportDTO.rebuildTransportList(); // 更清晰的方法名 + + // 保存扩展配送信息 + int count = shopStoreSameCityTransportService.saveOrUpdateShopStoreSameCityTransportList(transportDTO.getTransportList()); + if (count <= 0) { + return Pair.of(false, "保存同城配送设置部分失败!"); + } + + return Pair.of(true, "初始化成功"); + + } catch (Exception e) { + logger.error("初始化同城配送设置异常: ", e); + return Pair.of(false, "初始化同城配送设置异常"); } } 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 index e80decde..19c33cd9 100644 --- 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 @@ -101,39 +101,45 @@ public class ShopStoreSameCityTransportServiceImpl extends BaseServiceImpl