diff --git a/core/core-backend/src/main/java/io/dataease/system/bo/SysParameterBO.java b/core/core-backend/src/main/java/io/dataease/system/bo/SysParameterBO.java
new file mode 100644
index 0000000000..29a5cf9f14
--- /dev/null
+++ b/core/core-backend/src/main/java/io/dataease/system/bo/SysParameterBO.java
@@ -0,0 +1,17 @@
+package io.dataease.system.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SysParameterBO implements Serializable {
+
+ private String key;
+
+ private String val;
+
+ private String type;
+
+ private String sort;
+}
diff --git a/core/core-backend/src/main/java/io/dataease/system/dao/auto/entity/CoreSysSetting.java b/core/core-backend/src/main/java/io/dataease/system/dao/auto/entity/CoreSysSetting.java
new file mode 100644
index 0000000000..b0f3db717c
--- /dev/null
+++ b/core/core-backend/src/main/java/io/dataease/system/dao/auto/entity/CoreSysSetting.java
@@ -0,0 +1,94 @@
+package io.dataease.system.dao.auto.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+/**
+ *
+ *
+ *
+ *
+ * @author fit2cloud
+ * @since 2023-10-27
+ */
+@TableName("core_sys_setting")
+public class CoreSysSetting implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private Long id;
+
+ /**
+ * 键
+ */
+ private String pkey;
+
+ /**
+ * 值
+ */
+ private String pval;
+
+ /**
+ * 类型
+ */
+ private String type;
+
+ /**
+ * 顺序
+ */
+ private Integer sort;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getPkey() {
+ return pkey;
+ }
+
+ public void setPkey(String pkey) {
+ this.pkey = pkey;
+ }
+
+ public String getPval() {
+ return pval;
+ }
+
+ public void setPval(String pval) {
+ this.pval = pval;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public Integer getSort() {
+ return sort;
+ }
+
+ public void setSort(Integer sort) {
+ this.sort = sort;
+ }
+
+ @Override
+ public String toString() {
+ return "CoreSysSetting{" +
+ "id = " + id +
+ ", pkey = " + pkey +
+ ", pval = " + pval +
+ ", type = " + type +
+ ", sort = " + sort +
+ "}";
+ }
+}
diff --git a/core/core-backend/src/main/java/io/dataease/system/dao/auto/mapper/CoreSysSettingMapper.java b/core/core-backend/src/main/java/io/dataease/system/dao/auto/mapper/CoreSysSettingMapper.java
new file mode 100644
index 0000000000..f2fd770f5a
--- /dev/null
+++ b/core/core-backend/src/main/java/io/dataease/system/dao/auto/mapper/CoreSysSettingMapper.java
@@ -0,0 +1,18 @@
+package io.dataease.system.dao.auto.mapper;
+
+import io.dataease.system.dao.auto.entity.CoreSysSetting;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author fit2cloud
+ * @since 2023-10-27
+ */
+@Mapper
+public interface CoreSysSettingMapper extends BaseMapper {
+
+}
diff --git a/core/core-backend/src/main/java/io/dataease/system/manage/SysParameterManage.java b/core/core-backend/src/main/java/io/dataease/system/manage/SysParameterManage.java
new file mode 100644
index 0000000000..636342e8fd
--- /dev/null
+++ b/core/core-backend/src/main/java/io/dataease/system/manage/SysParameterManage.java
@@ -0,0 +1,60 @@
+package io.dataease.system.manage;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import io.dataease.system.dao.auto.entity.CoreSysSetting;
+import io.dataease.system.dao.auto.mapper.CoreSysSettingMapper;
+import io.dataease.utils.IDUtils;
+import jakarta.annotation.Resource;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+public class SysParameterManage {
+
+ private static final String mapKey = "map.key";
+
+ @Resource
+ private CoreSysSettingMapper coreSysSettingMapper;
+
+ public String singleVal(String key) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("pkey", key);
+ CoreSysSetting sysSetting = coreSysSettingMapper.selectOne(queryWrapper);
+ if (ObjectUtils.isNotEmpty(sysSetting)) {
+ return sysSetting.getPval();
+ }
+ return null;
+ }
+
+ public String queryOnlineMap() {
+ return singleVal(mapKey);
+ }
+
+ public void saveOnlineMap(String val) {
+
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("pkey", mapKey);
+ CoreSysSetting sysSetting = coreSysSettingMapper.selectOne(queryWrapper);
+ if (ObjectUtils.isEmpty(sysSetting)) {
+ sysSetting = new CoreSysSetting();
+ sysSetting.setId(IDUtils.snowID());
+ sysSetting.setPkey(mapKey);
+ sysSetting.setPval(val);
+ sysSetting.setType("text");
+ sysSetting.setSort(1);
+ coreSysSettingMapper.insert(sysSetting);
+ }
+ sysSetting.setPval(val);
+ coreSysSettingMapper.updateById(sysSetting);
+ }
+ void save(List boList) {
+ List all = all();
+ }
+
+ private List all() {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ return coreSysSettingMapper.selectList(queryWrapper);
+ }
+}
diff --git a/core/core-backend/src/main/java/io/dataease/system/server/SysParameterServer.java b/core/core-backend/src/main/java/io/dataease/system/server/SysParameterServer.java
new file mode 100644
index 0000000000..937d57c67b
--- /dev/null
+++ b/core/core-backend/src/main/java/io/dataease/system/server/SysParameterServer.java
@@ -0,0 +1,32 @@
+package io.dataease.system.server;
+
+import io.dataease.api.system.SysParameterApi;
+import io.dataease.api.system.request.OnlineMapEditor;
+import io.dataease.system.manage.SysParameterManage;
+import jakarta.annotation.Resource;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/sysParameter")
+public class SysParameterServer implements SysParameterApi {
+
+ @Resource
+ private SysParameterManage sysParameterManage;
+ @Override
+ public String singleVal(String key) {
+ return sysParameterManage.singleVal(key);
+ }
+
+ @Override
+ public void saveOnlineMap(OnlineMapEditor editor) {
+ sysParameterManage.saveOnlineMap(editor.getKey());
+ }
+
+ @Override
+ public String queryOnlineMap() {
+ String key = sysParameterManage.queryOnlineMap();
+ return StringUtils.isNotBlank(key) ? key : "";
+ }
+}