package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; 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 cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 list = mallCountryDeliveryMapper.selectList( Wrappers.lambdaQuery(MallCountryDelivery.class) .orderByAsc(MallCountryDelivery::getCountryCode) ); return new FebsResponse().success().data(list); } @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) { // 没有配置则返回默认运费 0(可根据业务调整) return new FebsResponse().success().data(BigDecimal.ZERO); } return new FebsResponse().success().data(delivery.getShippingFee()); } }