This commit is contained in:
张良(004796)
2024-03-04 18:54:18 +08:00
commit 273ee16e8c
585 changed files with 41565 additions and 0 deletions

View File

@@ -0,0 +1,147 @@
package com.ruoyi.xq.manager;
import com.ruoyi.common.core.service.SensitiveService;
import com.ruoyi.xq.constant.RedisHttpConstant;
import com.ruoyi.xq.enums.common.SystemConfigEnum;
import com.ruoyi.xq.manager.systemconfig.SystemCheckResp;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 主要用于动态配置管理
* <p>created on 2022/8/18 17:21</p>
* @author ZL
*/
@Component
public class SystemConfigManager {
@Autowired
private StringRedisTemplate redisTemplate;
@Autowired
private SensitiveService sensitiveService;
@Value("${spring.profiles.active:'dev'}")
private String active;
private final static String DEV_ACTIVE = "dev";
@PostConstruct
public void initSensitive(){
boolean config = getSystemConfigOfBool(SystemConfigEnum.SENSITIVE_ENABLE);
sensitiveService.setSensitive(config);
}
public String getWebSocketUrl(){
if(DEV_ACTIVE.equals(active)){
return SystemConfigEnum.WS_SOCKET_URL.getDefaultValue();
}
return getSystemConfig(SystemConfigEnum.WS_SOCKET_URL);
}
/**
* 获取配置信息返回boolean
* @param systemConfig
* @return
*/
public boolean getSystemConfigOfBool(SystemConfigEnum systemConfig){
String value = getSystemConfig(systemConfig);
return "1".equals(value);
}
public BigDecimal getSystemConfigOfBigDecimal(SystemConfigEnum systemConfig){
String value = getSystemConfig(systemConfig);
return new BigDecimal(value);
}
/**
* 获取配置信息返回Integer
* @param systemConfig
* @return
*/
public Integer getSystemConfigOfInt(SystemConfigEnum systemConfig){
String value = getSystemConfig(systemConfig);
return Integer.valueOf(value);
}
/**
* 获取配置信息返回Integer
* @param systemConfig
* @return
*/
public Long getSystemConfigOfLong(SystemConfigEnum systemConfig){
String value = getSystemConfig(systemConfig);
return Long.valueOf(value);
}
/**
* 获取配置信息
* @param systemConfig
* @return
*/
public String getSystemConfig(SystemConfigEnum systemConfig){
String value = (String) redisTemplate.opsForHash().get(RedisHttpConstant.SYSTEM_CONFIG, systemConfig.name());
if(StringUtils.isBlank(value)){
return systemConfig.getDefaultValue();
}
return value;
}
public List<String> getSystemConfigOfList(SystemConfigEnum systemConfig){
String value = getSystemConfig(systemConfig);
if(StringUtils.isBlank(value)){
value = systemConfig.getDefaultValue();
}
return Stream.of(value.split(",")).collect(Collectors.toList());
}
public Set<Long> getSystemConfigOfLongSet(SystemConfigEnum systemConfig){
String value = getSystemConfig(systemConfig);
if(StringUtils.isBlank(value)){
value = systemConfig.getDefaultValue();
}
return Stream.of(value.split(",")).map(Long::valueOf).collect(Collectors.toSet());
}
/**
* 获取所有配置
* @return
*/
public Map<String,String> getAllSystemConfig(){
HashOperations<String, String, String> stringObjectObjectHashOperations = redisTemplate.opsForHash();
return stringObjectObjectHashOperations.entries(RedisHttpConstant.SYSTEM_CONFIG);
}
public SystemCheckResp setSystemConfig(SystemConfigEnum systemConfig, String value){
if(systemConfig.getCheck() != null){
SystemCheckResp check = systemConfig.getCheck().check(value);
if(!check.isSuccess()){
return check;
}
}
this.set(systemConfig.name(),value);
return SystemCheckResp.ok();
}
public void set(String key, String value) {
if(key.equals(SystemConfigEnum.SENSITIVE_ENABLE.getKey())){
sensitiveService.setSensitive(value.equals("1"));
}
redisTemplate.opsForHash().put(RedisHttpConstant.SYSTEM_CONFIG, key,value);
}
}