(improvement)(headless&chat) System parameter compatible with historical data and front-end (#1070)

This reverts commit 59f6169569.

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2024-06-01 12:09:09 +08:00
committed by GitHub
parent 59f6169569
commit f07e80587d
18 changed files with 93 additions and 54 deletions

View File

@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("s2_sys_parameter")
public class SysParameterDO {
@TableName("s2_system_config")
public class SystemConfigDO {
@TableId(type = IdType.AUTO)
private Integer id;

View File

@@ -1,11 +1,11 @@
package com.tencent.supersonic.common.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tencent.supersonic.common.persistence.dataobject.SysParameterDO;
import com.tencent.supersonic.common.persistence.dataobject.SystemConfigDO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysParameterMapper extends BaseMapper<SysParameterDO> {
public interface SystemConfigMapper extends BaseMapper<SystemConfigDO> {
}

View File

@@ -3,6 +3,7 @@ package com.tencent.supersonic.common.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
@Data
@@ -15,6 +16,7 @@ public class Parameter {
private String description;
private String dataType;
private String module;
private String value;
private List<Object> candidateValues;
public Parameter(String name, String defaultValue, String comment,
@@ -27,4 +29,22 @@ public class Parameter {
this.module = module;
}
public Parameter(String name, String defaultValue, String comment, String description,
String dataType, String module, List<Object> candidateValues) {
this.name = name;
this.defaultValue = defaultValue;
this.comment = comment;
this.description = description;
this.dataType = dataType;
this.module = module;
this.candidateValues = candidateValues;
}
public String getValue() {
if (StringUtils.isBlank(value)) {
return defaultValue;
}
return value;
}
}

View File

@@ -31,7 +31,7 @@ public abstract class ParameterConfig {
*/
public String getParameterValue(Parameter parameter) {
String paramName = parameter.getName();
String value = sysConfigService.getSysParameter().getParameterByName(paramName);
String value = sysConfigService.getSystemConfig().getParameterByName(paramName);
try {
if (StringUtils.isBlank(value)) {
if (environment.containsProperty(paramName)) {

View File

@@ -32,8 +32,8 @@ public class SystemConfig {
if (StringUtils.isBlank(name)) {
return "";
}
Map<String, String> nameToValue = parameters.stream()
.collect(Collectors.toMap(Parameter::getName, Parameter::getDefaultValue, (k1, k2) -> k1));
Map<String, String> nameToValue = getParameters().stream()
.collect(Collectors.toMap(Parameter::getName, Parameter::getValue, (k1, k2) -> k1));
return nameToValue.get(name);
}
@@ -46,14 +46,32 @@ public class SystemConfig {
}
public void init() {
parameters = Lists.newArrayList();
parameters = buildDefaultParameters();
admins = Lists.newArrayList("admin");
}
private List<Parameter> buildDefaultParameters() {
List<Parameter> defaultParameters = Lists.newArrayList();
Collection<ParameterConfig> configurableParameters =
ContextUtils.getBeansOfType(ParameterConfig.class).values();
for (ParameterConfig configParameters : configurableParameters) {
parameters.addAll(configParameters.getSysParameters());
defaultParameters.addAll(configParameters.getSysParameters());
}
return defaultParameters;
}
public List<Parameter> getParameters() {
List<Parameter> defaultParameters = buildDefaultParameters();
if (CollectionUtils.isEmpty(parameters)) {
return defaultParameters;
}
Map<String, String> parameterNameValueMap = parameters.stream()
.collect(Collectors.toMap(Parameter::getName, Parameter::getValue, (v1, v2) -> v2));
for (Parameter parameter : defaultParameters) {
parameter.setValue(parameterNameValueMap.getOrDefault(parameter.getName(),
parameter.getDefaultValue()));
}
return defaultParameters;
}
}

View File

@@ -17,14 +17,14 @@ public class SystemConfigController {
private SystemConfigService sysConfigService;
@PostMapping
public Boolean save(@RequestBody SystemConfig sysParameter) {
sysConfigService.save(sysParameter);
public Boolean save(@RequestBody SystemConfig systemConfig) {
sysConfigService.save(systemConfig);
return true;
}
@GetMapping
public SystemConfig get() {
return sysConfigService.getSysParameter();
return sysConfigService.getSystemConfig();
}
}

View File

@@ -1,13 +1,13 @@
package com.tencent.supersonic.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tencent.supersonic.common.persistence.dataobject.SysParameterDO;
import com.tencent.supersonic.common.persistence.dataobject.SystemConfigDO;
import com.tencent.supersonic.common.pojo.SystemConfig;
public interface SystemConfigService extends IService<SysParameterDO> {
public interface SystemConfigService extends IService<SystemConfigDO> {
SystemConfig getSysParameter();
SystemConfig getSystemConfig();
void save(SystemConfig sysConfig);
void save(SystemConfig systemConfig);
}

View File

@@ -3,52 +3,52 @@ package com.tencent.supersonic.common.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.tencent.supersonic.common.persistence.dataobject.SysParameterDO;
import com.tencent.supersonic.common.persistence.mapper.SysParameterMapper;
import com.tencent.supersonic.common.persistence.dataobject.SystemConfigDO;
import com.tencent.supersonic.common.persistence.mapper.SystemConfigMapper;
import com.tencent.supersonic.common.pojo.Parameter;
import com.tencent.supersonic.common.pojo.SystemConfig;
import com.tencent.supersonic.common.service.SystemConfigService;
import com.tencent.supersonic.common.util.JsonUtil;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
@Service
public class SystemConfigServiceImpl
extends ServiceImpl<SysParameterMapper, SysParameterDO> implements SystemConfigService {
extends ServiceImpl<SystemConfigMapper, SystemConfigDO> implements SystemConfigService {
@Override
public SystemConfig getSysParameter() {
List<SysParameterDO> list = list();
public SystemConfig getSystemConfig() {
List<SystemConfigDO> list = list();
if (CollectionUtils.isEmpty(list)) {
SystemConfig sysParameter = new SystemConfig();
sysParameter.setId(1);
sysParameter.init();
save(sysParameter);
return sysParameter;
SystemConfig systemConfig = new SystemConfig();
systemConfig.setId(1);
systemConfig.init();
save(systemConfig);
return systemConfig;
}
return convert(list.iterator().next());
}
@Override
public void save(SystemConfig sysConfig) {
SysParameterDO sysParameterDO = convert(sysConfig);
saveOrUpdate(sysParameterDO);
SystemConfigDO systemConfigDO = convert(sysConfig);
saveOrUpdate(systemConfigDO);
}
private SystemConfig convert(SysParameterDO sysParameterDO) {
private SystemConfig convert(SystemConfigDO systemConfigDO) {
SystemConfig sysParameter = new SystemConfig();
sysParameter.setId(sysParameterDO.getId());
List<Parameter> parameters = JsonUtil.toObject(sysParameterDO.getParameters(),
sysParameter.setId(systemConfigDO.getId());
List<Parameter> parameters = JsonUtil.toObject(systemConfigDO.getParameters(),
new TypeReference<List<Parameter>>() {
});
sysParameter.setParameters(parameters);
sysParameter.setAdminList(sysParameterDO.getAdmin());
sysParameter.setAdminList(systemConfigDO.getAdmin());
return sysParameter;
}
private SysParameterDO convert(SystemConfig sysParameter) {
SysParameterDO sysParameterDO = new SysParameterDO();
private SystemConfigDO convert(SystemConfig sysParameter) {
SystemConfigDO sysParameterDO = new SystemConfigDO();
sysParameterDO.setId(sysParameter.getId());
sysParameterDO.setParameters(JSONObject.toJSONString(sysParameter.getParameters()));
sysParameterDO.setAdmin(sysParameter.getAdmin());