From b51f6f0d5564b843aeb11f088873faa5aa2116ce Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 23 Jun 2026 22:22:54 +0800
Subject: [PATCH] feat(mall): 为订单支付流程添加订单号生成和更新功能
---
src/main/java/cc/mrbird/febs/mall/service/impl/MallCountryDeliveryServiceImpl.java | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 109 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallCountryDeliveryServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallCountryDeliveryServiceImpl.java
new file mode 100644
index 0000000..5bfabc7
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallCountryDeliveryServiceImpl.java
@@ -0,0 +1,109 @@
+package cc.mrbird.febs.mall.service.impl;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.mall.dto.CountryDeliveryDto;
+import cc.mrbird.febs.mall.entity.MallCountryDelivery;
+import cc.mrbird.febs.mall.mapper.MallCountryDeliveryMapper;
+import cc.mrbird.febs.mall.service.IMallCountryDeliveryService;
+import cc.mrbird.febs.mall.vo.AdminMallNewsInfoVo;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 国家运费配置 Service 实现
+ *
+ * @author auto-generated
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class MallCountryDeliveryServiceImpl implements IMallCountryDeliveryService {
+
+ private final MallCountryDeliveryMapper mallCountryDeliveryMapper;
+
+ @Override
+ public FebsResponse list() {
+ List<MallCountryDelivery> list = mallCountryDeliveryMapper.selectList(
+ Wrappers.lambdaQuery(MallCountryDelivery.class)
+ .orderByAsc(MallCountryDelivery::getCountryCode)
+ );
+ return new FebsResponse().success().data(list);
+ }
+
+ @Override
+ public IPage<MallCountryDelivery> countryDeliveryList(MallCountryDelivery dto, QueryRequest request) {
+ Page<MallCountryDelivery> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MallCountryDelivery> pages = mallCountryDeliveryMapper.getCountryDeliveryListInPage(page, dto);
+ return pages;
+ }
+
+ @Override
+ public FebsResponse saveOrUpdate(CountryDeliveryDto dto) {
+ MallCountryDelivery entity = new MallCountryDelivery();
+ entity.setCountryCode(dto.getCountryCode().toUpperCase());
+ entity.setCountryName(dto.getCountryName());
+ entity.setShippingFee(dto.getShippingFee());
+ entity.setStatus(dto.getStatus() != null ? dto.getStatus() : 1);
+ entity.setRemark(dto.getRemark());
+
+ if (dto.getId() != null) {
+ // 更新
+ entity.setId(dto.getId());
+ mallCountryDeliveryMapper.updateById(entity);
+ log.info("更新国家运费配置: countryCode={}, fee={}", entity.getCountryCode(), entity.getShippingFee());
+ } else {
+ // 新增前检查编码是否重复
+ MallCountryDelivery exist = mallCountryDeliveryMapper.selectOne(
+ Wrappers.lambdaQuery(MallCountryDelivery.class)
+ .eq(MallCountryDelivery::getCountryCode, entity.getCountryCode())
+ );
+ if (exist != null) {
+ return new FebsResponse().fail().message("国家编码 " + entity.getCountryCode() + " 已存在");
+ }
+ mallCountryDeliveryMapper.insert(entity);
+ log.info("新增国家运费配置: countryCode={}, fee={}", entity.getCountryCode(), entity.getShippingFee());
+ }
+ return new FebsResponse().success().message("保存成功");
+ }
+
+ @Override
+ public FebsResponse delete(Long id) {
+ mallCountryDeliveryMapper.deleteById(id);
+ return new FebsResponse().success().message("删除成功");
+ }
+
+ @Override
+ public FebsResponse getShippingFeeByCountryCode(String countryCode) {
+ if (StrUtil.isBlank(countryCode)) {
+ return new FebsResponse().fail().message("国家编码不能为空");
+ }
+
+ MallCountryDelivery delivery = mallCountryDeliveryMapper.selectOne(
+ Wrappers.lambdaQuery(MallCountryDelivery.class)
+ .eq(MallCountryDelivery::getCountryCode, countryCode.toUpperCase())
+ .eq(MallCountryDelivery::getStatus, 1)
+ );
+
+ if (delivery == null) {
+
+ MallCountryDelivery defaultDelivery = mallCountryDeliveryMapper.selectOne(
+ Wrappers.lambdaQuery(MallCountryDelivery.class)
+ .eq(MallCountryDelivery::getCountryCode, "DEFAULT")
+ .eq(MallCountryDelivery::getStatus, 1)
+ );
+ // 没有配置则返回默认运费 0(可根据业务调整)
+ return new FebsResponse().success().data(defaultDelivery.getShippingFee());
+ }
+
+ return new FebsResponse().success().data(delivery.getShippingFee());
+ }
+}
--
Gitblit v1.9.1