Procházet zdrojové kódy

feat:
文件配置更新bug修复

18339543638 před 2 roky
rodič
revize
eeef7304c0

+ 3 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/storage/service/IStorageFileService.java

@@ -4,6 +4,7 @@ package cn.tr.module.sys.storage.service;
 import cn.tr.module.api.sys.storage.StoragePojo;
 import cn.tr.module.sys.storage.dto.SysStorageRecordDTO;
 
+import javax.annotation.PostConstruct;
 import java.util.*;
 
 /**
@@ -19,6 +20,8 @@ public interface IStorageFileService {
      */
     void initDefaultConfig();
 
+    void refreshConfig();
+
     /**
      * 上传文件
      * @param configId 存储配置id 当configId为空时,使用默认主存储配置

+ 11 - 1
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/storage/service/impl/StorageFileServiceImpl.java

@@ -11,6 +11,7 @@ import cn.hutool.core.util.URLUtil;
 import cn.tr.core.utils.JsonUtils;
 import cn.tr.module.api.sys.storage.StoragePojo;
 import cn.tr.module.sys.storage.dto.SysStorageConfigDTO;
+import cn.tr.module.sys.storage.dto.SysStorageConfigQueryDTO;
 import cn.tr.module.sys.storage.dto.SysStorageRecordDTO;
 import cn.tr.module.sys.storage.mapper.SysStorageRecordMapper;
 import cn.tr.module.sys.storage.properties.TrStorageProperties;
@@ -29,7 +30,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.PostConstruct;
-import java.io.File;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -67,6 +67,16 @@ public class StorageFileServiceImpl implements IStorageFileService {
         defaultConfig=storageConfigService.selectDefault();
     }
 
+    @Override
+    public void refreshConfig() {
+        SysStorageConfigQueryDTO query = new SysStorageConfigQueryDTO();
+        List<SysStorageConfigDTO> list = storageConfigService.selectSysStorageConfigList(query);
+        for (SysStorageConfigDTO storageConfig : list) {
+            fileClientFactory.createOrUpdateFileClient(storageConfig.getId(), storageConfig.getType(),parseClientConfig(storageConfig.getType(), storageConfig.getConfig()));
+        }
+
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public SysStorageRecordDTO upload(String configId,String cateId,String filename, byte[] content) throws Exception {

+ 10 - 1
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/storage/service/impl/SysStorageConfigServiceImpl.java

@@ -34,6 +34,7 @@ import javax.validation.Validator;
 @Service
 public class SysStorageConfigServiceImpl implements ISysStorageConfigService {
     private final String STORAGE_DEFAULT_TOPIC="/storage/default/refresh";
+    private final String STORAGE_CONFIG_TOPIC="/storage/config/refresh";
     @Autowired
     private SysStorageConfigRepository baseRepository;
 
@@ -52,6 +53,10 @@ public class SysStorageConfigServiceImpl implements ISysStorageConfigService {
         storageFileService.initDefaultConfig();
     }
 
+    @Subscribe(STORAGE_CONFIG_TOPIC)
+    public void storageConfigUpdate(){
+        storageFileService.initDefaultConfig();
+    }
     /**
      * 根据条件查询文件存储配置
      * @param    query 查询参数
@@ -98,7 +103,11 @@ public class SysStorageConfigServiceImpl implements ISysStorageConfigService {
         SysStorageConfigPO config = SysStorageConfigMapper.INSTANCE.convertPO(source);
         config
                 .setConfig(parseClientConfig(config.getType(), source.getConfig()));
-        return baseRepository.updateById(config)!=0;
+        if (baseRepository.updateById(config)!=0) {
+            eventBus.publishShare(STORAGE_CONFIG_TOPIC,new Object());
+            return true;
+        }
+        return false;
     };
 
     /**