From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 14 三月 2025 20:56:27 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java |  257 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 244 insertions(+), 13 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java
index 1a43f2c..fd5bc15 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java
@@ -2,16 +2,24 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.system.api.constants.ConfigEnum;
 import com.ruoyi.system.api.domain.CustomConfig;
-import com.ruoyi.system.domain.dto.MgtAfterSaleSettingDTO;
+import com.ruoyi.system.api.domain.dto.MgtAfterSaleSettingDTO;
 import com.ruoyi.system.domain.dto.PointsConfigDTO;
 import com.ruoyi.system.domain.vo.CustomConfigVO;
+import com.ruoyi.system.domain.vo.WishSettingVO;
 import com.ruoyi.system.mapper.CustomConfigMapper;
 import com.ruoyi.system.service.ICustomConfigService;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -60,7 +68,7 @@
 
     private Optional<CustomConfig> getCustomConfigByKey(String key) {
         return this.lambdaQuery()
-                .eq(CustomConfig::getConfigType, key)
+                .eq(CustomConfig::getConfigKey, key)
                 .eq(CustomConfig::getDelFlag, 0).oneOpt();
     }
 
@@ -70,12 +78,22 @@
      * @return List<CustomConfigVO>
      */
     @Override
-    public List<CustomConfigVO> getPointsConfig() {
+    public PointsConfigDTO getPointsConfig() {
+        PointsConfigDTO dto = new PointsConfigDTO();
         List<CustomConfig> list = this.lambdaQuery()
-                .in(CustomConfig::getConfigType, ConfigEnum.MEMBER_POINTS_MONEY.getKey(),
+                .in(CustomConfig::getConfigKey, ConfigEnum.MEMBER_POINTS_MONEY.getKey(),
                         ConfigEnum.MEMBER_POINTS_POINTS.getKey())
                 .eq(CustomConfig::getDelFlag, 0).list();
-        return BeanUtils.copyList(list, CustomConfigVO.class);
+        for (CustomConfig customConfig : list) {
+            if (ConfigEnum.MEMBER_POINTS_MONEY.getKey().equals(customConfig.getConfigKey())) {
+                dto.setConsumeAmount(
+                        BigDecimal.valueOf(Double.parseDouble(customConfig.getConfigValue())));
+            }
+            if (ConfigEnum.MEMBER_POINTS_POINTS.getKey().equals(customConfig.getConfigKey())) {
+                dto.setPoints(Integer.parseInt(customConfig.getConfigValue()));
+            }
+        }
+        return dto;
     }
 
     /**
@@ -111,6 +129,11 @@
         this.saveOrUpdate(orderDescription);
     }
 
+    /**
+     * 售后设置
+     *
+     * @param dto 售后设置对象
+     */
     @Override
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
     public void saveAfterSaleSetting(MgtAfterSaleSettingDTO dto) {
@@ -121,16 +144,224 @@
     }
 
     private void handleConfigSetting(String value, ConfigEnum configEnum) {
-        Optional<CustomConfig> receiverNameConfigOptional = getCustomConfigByKey(
-                ConfigEnum.RETURN_ADDRESS_USER_NAME.getKey());
-        CustomConfig receiverNameConfig = receiverNameConfigOptional.orElseGet(() -> {
+        Optional<CustomConfig> configSettingOptional = getCustomConfigByKey(configEnum.getKey());
+        CustomConfig configSetting = configSettingOptional.orElseGet(() -> {
             CustomConfig config = new CustomConfig();
-            config.setConfigKey(ConfigEnum.RETURN_ADDRESS_USER_NAME.getKey());
-            config.setConfigType(ConfigEnum.RETURN_ADDRESS_USER_NAME.getKeyType());
-            config.setConfigName(ConfigEnum.RETURN_ADDRESS_USER_NAME.getKeyName());
+            config.setConfigKey(configEnum.getKey());
+            config.setConfigType(configEnum.getKeyType());
+            config.setConfigName(configEnum.getKeyName());
             return config;
         });
-        receiverNameConfig.setConfigValue(value);
-        this.saveOrUpdate(receiverNameConfig);
+        configSetting.setConfigValue(value);
+        this.saveOrUpdate(configSetting);
+    }
+
+    /**
+     * 获取售后设置
+     *
+     * @return List<CustomConfigVO>
+     */
+    @Override
+    public MgtAfterSaleSettingDTO getAfterSaleSetting() {
+        MgtAfterSaleSettingDTO dto = new MgtAfterSaleSettingDTO();
+        List<CustomConfig> list = this.lambdaQuery()
+                .in(CustomConfig::getConfigKey, ConfigEnum.RETURN_ADDRESS_USER_NAME,
+                        ConfigEnum.RETURN_ADDRESS_USER_PHONE,
+                        ConfigEnum.RETURN_ADDRESS_USER_ADDRESS, ConfigEnum.RETURN_CYCLE)
+                .eq(CustomConfig::getDelFlag, 0).list();
+        for (CustomConfig customConfig : list) {
+            if (ConfigEnum.RETURN_ADDRESS_USER_NAME.getKey().equals(customConfig.getConfigKey())) {
+                dto.setReceiverName(customConfig.getConfigValue());
+            }
+            if (ConfigEnum.RETURN_ADDRESS_USER_PHONE.getKey().equals(customConfig.getConfigKey())) {
+                dto.setReceiverPhone(customConfig.getConfigValue());
+            }
+            if (ConfigEnum.RETURN_ADDRESS_USER_ADDRESS.getKey()
+                    .equals(customConfig.getConfigKey())) {
+                dto.setReceiverAddress(customConfig.getConfigValue());
+            }
+            if (ConfigEnum.RETURN_CYCLE.getKey().equals(customConfig.getConfigKey())) {
+                dto.setReturnCycle(Integer.parseInt(customConfig.getConfigValue()));
+            }
+        }
+        return dto;
+    }
+
+    /**
+     * 保存客服电话
+     *
+     * @param phone 客服电话
+     */
+    @Override
+    public void updateServicePhone(String phone) {
+        Optional<CustomConfig> customConfigByKey = getCustomConfigByKey(
+                ConfigEnum.PLATFORM_SERVICE_PHONE.getKey());
+        if (customConfigByKey.isPresent()) {
+            CustomConfig customConfig = customConfigByKey.get();
+            String[] split = customConfig.getConfigValue().split(",");
+            if (split.length > 1) {
+                throw new ServiceException("客户电话最多配置两个");
+            }
+            boolean flag = Arrays.asList(split).contains(phone);
+            if (flag) {
+                throw new ServiceException("客户电话已存在");
+            }
+
+            if (StringUtils.isBlank(customConfig.getConfigValue())) {
+                customConfig.setConfigValue(phone);
+            } else {
+                StringBuilder stringBuilder = new StringBuilder();
+                stringBuilder.append(customConfig.getConfigValue());
+                stringBuilder.append(",");
+                stringBuilder.append(phone);
+                customConfig.setConfigValue(stringBuilder.toString());
+            }
+            customConfig.setUpdateTime(LocalDateTime.now());
+            this.updateById(customConfig);
+        } else {
+            CustomConfig config = new CustomConfig();
+            config.setConfigKey(ConfigEnum.PLATFORM_SERVICE_PHONE.getKey());
+            config.setConfigType(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyType());
+            config.setConfigName(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyName());
+            config.setConfigValue(phone);
+            config.setCreateTime(LocalDateTime.now());
+            this.save(config);
+        }
+    }
+
+    /**
+     * 获取客服电话
+     *
+     * @return 客服电话
+     */
+    @Override
+    public String getServicePhone() {
+        Optional<CustomConfig> customConfigByKey = getCustomConfigByKey(
+                ConfigEnum.PLATFORM_SERVICE_PHONE.getKey());
+        return customConfigByKey.map(CustomConfig::getConfigValue).orElse(null);
+    }
+
+    /**
+     * 删除客户电话
+     *
+     * @param phone 客服电话
+     */
+    @Override
+    public void deleteServicePhone(String phone) {
+        Optional<CustomConfig> customConfigByKey = getCustomConfigByKey(
+                ConfigEnum.PLATFORM_SERVICE_PHONE.getKey());
+        if (customConfigByKey.isPresent()) {
+            CustomConfig customConfig = customConfigByKey.get();
+            String configValue = customConfig.getConfigValue();
+            if (StringUtils.isNotBlank(configValue)) {
+                String[] split = configValue.split(",");
+                // 判断当前phone是否存在
+                boolean flag = Arrays.asList(split).contains(phone);
+                if (flag) {
+                    // 删除 split 中与phone相同的元素
+                    configValue = Arrays.stream(split).filter(s -> !s.equals(phone))
+                            .collect(Collectors.joining(","));
+                    customConfig.setConfigValue(configValue);
+                    this.updateById(customConfig);
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取心愿求购设置
+     *
+     * @return
+     */
+    @Override
+    public WishSettingVO getWishSetting() {
+        WishSettingVO vo = new WishSettingVO();
+        CustomConfig customConfig = getCustomConfigByKey(
+                ConfigEnum.WISH_DESCRIPTION.getKey()).orElse(new CustomConfig());
+        List<CustomConfig> list = this.lambdaQuery()
+                .in(CustomConfig::getConfigKey, ConfigEnum.WISH_DESCRIPTION.getKey(),
+                        ConfigEnum.WISH_SHARE_TITLE.getKey(),
+                        ConfigEnum.WISH_SHARE_IMG_URL.getKey())
+                .eq(CustomConfig::getDelFlag, 0).list();
+        for (CustomConfig config : list) {
+            if (ConfigEnum.WISH_DESCRIPTION.getKey().equals(config.getConfigKey())) {
+                vo.setDescription(customConfig.getConfigValue());
+            } else if (ConfigEnum.WISH_SHARE_TITLE.getKey().equals(config.getConfigKey())) {
+                vo.setShareTitle(config.getConfigValue());
+            } else if (ConfigEnum.WISH_SHARE_IMG_URL.getKey().equals(config.getConfigKey())) {
+                vo.setShareImgUrl(config.getConfigValue());
+            }
+        }
+        return vo;
+    }
+
+    /**
+     * 保存心愿求购说明
+     *
+     * @param vo 保存心愿求购说明
+     */
+    @Override
+    public void saveWishDescription(WishSettingVO vo) {
+        String description = vo.getDescription();
+        String shareTitle = vo.getShareTitle();
+        String shareImgUrl = vo.getShareImgUrl();
+        CustomConfig wishDescription = getCustomConfigByKey(
+                ConfigEnum.WISH_DESCRIPTION.getKey()).orElseGet(() -> {
+            CustomConfig customConfig = new CustomConfig();
+            customConfig.setConfigKey(ConfigEnum.WISH_DESCRIPTION.getKey());
+            customConfig.setConfigName(ConfigEnum.WISH_DESCRIPTION.getKeyName());
+            customConfig.setConfigType(ConfigEnum.WISH_DESCRIPTION.getKeyType());
+            return customConfig;
+        });
+        wishDescription.setConfigValue(description);
+        CustomConfig wishShareTitle = getCustomConfigByKey(
+                ConfigEnum.WISH_SHARE_TITLE.getKey()).orElseGet(() -> {
+            CustomConfig customConfig = new CustomConfig();
+            customConfig.setConfigKey(ConfigEnum.WISH_SHARE_TITLE.getKey());
+            customConfig.setConfigName(ConfigEnum.WISH_SHARE_TITLE.getKeyName());
+            customConfig.setConfigType(ConfigEnum.WISH_SHARE_TITLE.getKeyType());
+            return customConfig;
+        });
+        wishShareTitle.setConfigValue(shareTitle);
+        CustomConfig wishShareImgUrl = getCustomConfigByKey(
+                ConfigEnum.WISH_SHARE_IMG_URL.getKey()).orElseGet(() -> {
+            CustomConfig customConfig = new CustomConfig();
+            customConfig.setConfigKey(ConfigEnum.WISH_SHARE_IMG_URL.getKey());
+            customConfig.setConfigName(ConfigEnum.WISH_SHARE_IMG_URL.getKeyName());
+            customConfig.setConfigType(ConfigEnum.WISH_SHARE_IMG_URL.getKeyType());
+            return customConfig;
+        });
+        wishShareImgUrl.setConfigValue(shareImgUrl);
+        saveOrUpdateBatch(
+                Lists.newArrayList(wishDescription, wishShareTitle, wishShareImgUrl));
+    }
+
+    /**
+     * 保存保证金退还
+     */
+    @Override
+    @Transactional
+    public void saveRefundOfDeposit(String refundOfDeposit) {
+        CustomConfig wishDescription = getCustomConfigByKey(
+                ConfigEnum.REFUND_OF_DEPOSIT.getKey()).orElseGet(() -> {
+            CustomConfig customConfig = new CustomConfig();
+            customConfig.setConfigKey(ConfigEnum.REFUND_OF_DEPOSIT.getKey());
+            customConfig.setConfigName(ConfigEnum.REFUND_OF_DEPOSIT.getKeyName());
+            customConfig.setConfigType(ConfigEnum.REFUND_OF_DEPOSIT.getKeyType());
+            return customConfig;
+        });
+        wishDescription.setConfigValue(refundOfDeposit);
+        saveOrUpdate(wishDescription);
+    }
+
+    @Override
+    public String getRefundOfDeposit() {
+        AtomicReference<String> refundOfDeposit = new AtomicReference<>("");
+        getCustomConfigByKey(
+                ConfigEnum.REFUND_OF_DEPOSIT.getKey()).ifPresent(
+                        customConfig ->
+                                refundOfDeposit.set(customConfig.getConfigValue())
+        );
+        return refundOfDeposit.get();
     }
 }

--
Gitblit v1.7.1