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