From c2931dfdb47b766ea117f711913d4993c818dd6d Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 15 六月 2024 15:50:47 +0800
Subject: [PATCH] 提交【管理后台】订单管理-售后管理相关接口

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java |  118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 117 insertions(+), 1 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 109d295..1a43f2c 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
@@ -1,10 +1,20 @@
 package com.ruoyi.system.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.system.domain.CustomConfig;
+import com.google.common.collect.Lists;
+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.domain.dto.PointsConfigDTO;
+import com.ruoyi.system.domain.vo.CustomConfigVO;
 import com.ruoyi.system.mapper.CustomConfigMapper;
 import com.ruoyi.system.service.ICustomConfigService;
+import java.util.List;
+import java.util.Optional;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -17,4 +27,110 @@
 @Service
 public class CustomConfigServiceImpl extends ServiceImpl<CustomConfigMapper, CustomConfig> implements ICustomConfigService {
 
+    /**
+     * 保存积分设置
+     *
+     * @param dto 积分配置数据传输对象
+     */
+    @Override
+    @Transactional(propagation = Propagation.REQUIRES_NEW)
+    public void savePointsSettings(PointsConfigDTO dto) {
+        Optional<CustomConfig> customConfigOptional = getCustomConfigByKey(
+                ConfigEnum.MEMBER_POINTS_MONEY.getKey());
+        CustomConfig moneyConfig = customConfigOptional.orElseGet(() -> {
+            CustomConfig config = new CustomConfig();
+            config.setConfigKey(ConfigEnum.MEMBER_POINTS_MONEY.getKey());
+            config.setConfigType(ConfigEnum.MEMBER_POINTS_MONEY.getKeyType());
+            config.setConfigName(ConfigEnum.MEMBER_POINTS_MONEY.getKeyName());
+            return config;
+        });
+        moneyConfig.setConfigValue(dto.getConsumeAmount().toString());
+        Optional<CustomConfig> customConfigByKey = getCustomConfigByKey(
+                ConfigEnum.MEMBER_POINTS_POINTS.getKey());
+        CustomConfig pointsConfig = customConfigByKey.orElseGet(() -> {
+            CustomConfig config = new CustomConfig();
+            config.setConfigKey(ConfigEnum.MEMBER_POINTS_POINTS.getKey());
+            config.setConfigType(ConfigEnum.MEMBER_POINTS_POINTS.getKeyType());
+            config.setConfigName(ConfigEnum.MEMBER_POINTS_POINTS.getKeyName());
+            return config;
+        });
+        pointsConfig.setConfigValue(dto.getPoints().toString());
+        this.saveOrUpdateBatch(Lists.newArrayList(moneyConfig, pointsConfig));
+    }
+
+    private Optional<CustomConfig> getCustomConfigByKey(String key) {
+        return this.lambdaQuery()
+                .eq(CustomConfig::getConfigType, key)
+                .eq(CustomConfig::getDelFlag, 0).oneOpt();
+    }
+
+    /**
+     * 获取积分设置
+     *
+     * @return List<CustomConfigVO>
+     */
+    @Override
+    public List<CustomConfigVO> getPointsConfig() {
+        List<CustomConfig> list = this.lambdaQuery()
+                .in(CustomConfig::getConfigType, ConfigEnum.MEMBER_POINTS_MONEY.getKey(),
+                        ConfigEnum.MEMBER_POINTS_POINTS.getKey())
+                .eq(CustomConfig::getDelFlag, 0).list();
+        return BeanUtils.copyList(list, CustomConfigVO.class);
+    }
+
+    /**
+     * 获取订单说明设置
+     *
+     * @return CustomConfigVO
+     */
+    @Override
+    public CustomConfigVO getOrderDesc() {
+        CustomConfigVO vo;
+        CustomConfig customConfig = getCustomConfigByKey(
+                ConfigEnum.MALL_ORDER_DESCRIPTION.getKey()).orElse(new CustomConfig());
+        vo = BeanUtils.copyBean(customConfig, CustomConfigVO.class);
+        return vo;
+    }
+
+    /**
+     * 订单说明设置
+     *
+     * @param description 订单说明
+     */
+    @Override
+    public void saveOrderDescription(String description) {
+        CustomConfig orderDescription = getCustomConfigByKey(
+                ConfigEnum.MALL_ORDER_DESCRIPTION.getKey()).orElseGet(() -> {
+            CustomConfig customConfig = new CustomConfig();
+            customConfig.setConfigKey(ConfigEnum.MALL_ORDER_DESCRIPTION.getKey());
+            customConfig.setConfigName(ConfigEnum.MALL_ORDER_DESCRIPTION.getKeyName());
+            customConfig.setConfigType(ConfigEnum.MALL_ORDER_DESCRIPTION.getKeyType());
+            return customConfig;
+        });
+        orderDescription.setConfigValue(description);
+        this.saveOrUpdate(orderDescription);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+    public void saveAfterSaleSetting(MgtAfterSaleSettingDTO dto) {
+        handleConfigSetting(dto.getReceiverName(), ConfigEnum.RETURN_ADDRESS_USER_NAME);
+        handleConfigSetting(dto.getReceiverPhone(), ConfigEnum.RETURN_ADDRESS_USER_PHONE);
+        handleConfigSetting(dto.getReceiverAddress(), ConfigEnum.RETURN_ADDRESS_USER_ADDRESS);
+        handleConfigSetting(dto.getReturnCycle().toString(), ConfigEnum.RETURN_CYCLE);
+    }
+
+    private void handleConfigSetting(String value, ConfigEnum configEnum) {
+        Optional<CustomConfig> receiverNameConfigOptional = getCustomConfigByKey(
+                ConfigEnum.RETURN_ADDRESS_USER_NAME.getKey());
+        CustomConfig receiverNameConfig = receiverNameConfigOptional.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());
+            return config;
+        });
+        receiverNameConfig.setConfigValue(value);
+        this.saveOrUpdate(receiverNameConfig);
+    }
 }

--
Gitblit v1.7.1