From 1d0fc6126fb664e81a1a3737d8eaf4a618e7cb0f Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 07 一月 2025 10:34:34 +0800
Subject: [PATCH] add:配置

---
 src/main/java/com/mzl/flower/service/impl/ConfigParamServiceImpl.java |   82 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 79 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/impl/ConfigParamServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/ConfigParamServiceImpl.java
index 6a913d8..d097efe 100644
--- a/src/main/java/com/mzl/flower/service/impl/ConfigParamServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/ConfigParamServiceImpl.java
@@ -1,18 +1,26 @@
 package com.mzl.flower.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.mzl.flower.config.exception.ValidationException;
+import com.mzl.flower.config.security.SecurityUtils;
+import com.mzl.flower.dto.request.configParam.ConfigParamDTO;
 import com.mzl.flower.dto.request.configParam.QueryConfigParamDTO;
 import com.mzl.flower.dto.request.configParam.UpdateConfigParamDTO;
+import com.mzl.flower.dto.response.configParam.ConfigCustomerServiceVO;
+import com.mzl.flower.dto.response.configParam.ConfigParamVO;
 import com.mzl.flower.entity.configParam.ConfigParamDO;
 import com.mzl.flower.enums.ConfigParamEnum;
 import com.mzl.flower.mapper.configParam.ConfigParamMapper;
 import com.mzl.flower.mapper.configParam.ConfigParamMapperCustom;
 import com.mzl.flower.service.ConfigParamService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.redisson.api.RBucket;
+import org.redisson.api.RedissonClient;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -28,10 +36,14 @@
  * @since 2024-12-02
  */
 @Service
+@RequiredArgsConstructor
 public class ConfigParamServiceImpl extends ServiceImpl<ConfigParamMapper, ConfigParamDO> implements ConfigParamService {
 
-    @Autowired
-    private ConfigParamMapperCustom configParamMapperCustom;
+    private final ConfigParamMapperCustom configParamMapperCustom;
+
+    private final ConfigParamMapper configParamMapper;
+    private final RedissonClient redissonClient;
+    private static final String CONFIG_PARAM= "com.mzl.flower.service.impl:config_param:%s";
 
     @Override
     public List<ConfigParamDO> getList(QueryConfigParamDTO dto) {
@@ -58,6 +70,14 @@
                     throw new ValidationException(String.format("ID:{}不存在!", configParamDO.getId()));
                 }
                 configParamForUpdate.setParamValue(configParamDO.getParamValue());
+
+                //更新订单自动取消(分钟); 订单自动收货(天)
+                if ("order".equals(configParamForUpdate.getParamGroup())) {
+                    // 设置值到 Redis
+                    RBucket<String> bucket = redissonClient.getBucket(CONFIG_PARAM + configParamForUpdate.getParamGroup() + configParamForUpdate.getParamKey());
+                    bucket.set(configParamForUpdate.getParamValue());
+                }
+
                 return configParamForUpdate;
             }).collect(Collectors.toList());
 
@@ -82,4 +102,60 @@
 
         return resultMap;
     }
+
+    @Override
+    public String getBaseString(String paramGroup, String paramKey) {
+
+        String bucketName = CONFIG_PARAM + paramGroup + paramKey;
+        RBucket<String> bucket = redissonClient.getBucket(bucketName);
+        String value = bucket.get();
+
+        if (StringUtils.isNotBlank(value)) {
+            return value;
+        } else {
+            String baseString = configParamMapper.getBaseString(paramGroup, paramKey);
+            if (StringUtils.isNotBlank(baseString)) {
+                return baseString;
+            } else {
+                if ("order_cancel_time".equals(paramKey) && "order".equals(paramGroup)) {
+                    // 默认15分钟
+                    return "15";
+                }
+                if ("order_auto_receive".equals(paramKey) && "order".equals(paramGroup)) {
+                    // 默认5前的订单自动收货
+                    return "5";
+                }
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public void saveConfigParam(ConfigParamDTO dto) {
+        ConfigParamDO configParamDO = new ConfigParamDO();
+        BeanUtils.copyProperties(dto, configParamDO);
+        configParamDO.create(SecurityUtils.getUserId());
+        configParamMapper.insert(configParamDO);
+    }
+
+    @Override
+    public void updateConfigParam(ConfigParamDTO dto) {
+        ConfigParamDO configParamDO = configParamMapper.selectById(dto.getId());
+        BeanUtils.copyProperties(dto, configParamDO);
+        configParamDO.update(SecurityUtils.getUserId());
+        configParamMapper.updateById(configParamDO);
+    }
+
+    @Override
+    public void deleteConfigParam(Long id) {
+        configParamMapper.deleteById(id);
+    }
+
+    @Override
+    public Page<ConfigParamVO> queryPage(QueryConfigParamDTO dto, Page page) {
+        List<ConfigParamVO> list = configParamMapper.queryPage(dto, page);
+        page.setRecords(list);
+        return page;
+    }
+
 }

--
Gitblit v1.9.3