Просмотр исходного кода

feat(phase1): SysConfig 实体/Mapper/Service 实现

User 3 месяцев назад
Родитель
Сommit
1b5ab719cb

+ 26 - 0
zxyj-backend/src/main/java/com/zxyj/dto/SysConfigDTO.java

@@ -0,0 +1,26 @@
+package com.zxyj.dto;
+
+import com.zxyj.entity.SysConfig;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SysConfigDTO {
+    private Long id;
+    private String configKey;
+    private String configValue;
+    private String description;
+    private Date updatedAt;
+
+    public static SysConfigDTO from(SysConfig c) {
+        if (c == null) return null;
+        SysConfigDTO d = new SysConfigDTO();
+        d.id = c.getId();
+        d.configKey = c.getConfigKey();
+        d.configValue = c.getConfigValue();
+        d.description = c.getDescription();
+        d.updatedAt = c.getUpdatedAt();
+        return d;
+    }
+}

+ 22 - 0
zxyj-backend/src/main/java/com/zxyj/entity/SysConfig.java

@@ -0,0 +1,22 @@
+package com.zxyj.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("sys_config")
+public class SysConfig implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private String configKey;
+    private String configValue;
+    private String description;
+    private Date updatedAt;
+}

+ 9 - 0
zxyj-backend/src/main/java/com/zxyj/mapper/SysConfigMapper.java

@@ -0,0 +1,9 @@
+package com.zxyj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zxyj.entity.SysConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysConfigMapper extends BaseMapper<SysConfig> {
+}

+ 79 - 0
zxyj-backend/src/main/java/com/zxyj/service/SysConfigService.java

@@ -0,0 +1,79 @@
+package com.zxyj.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zxyj.common.Result;
+import com.zxyj.dto.SysConfigDTO;
+import com.zxyj.entity.SysConfig;
+import com.zxyj.mapper.SysConfigMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class SysConfigService {
+
+    @Resource
+    private SysConfigMapper configMapper;
+
+    /**
+     * 获取所有配置(key-value 形式)
+     */
+    public Result<Map<String, String>> getAllAsMap() {
+        List<SysConfig> list = configMapper.selectList(null);
+        Map<String, String> map = new HashMap<>();
+        for (SysConfig c : list) {
+            map.put(c.getConfigKey(), c.getConfigValue());
+        }
+        return Result.success(map);
+    }
+
+    /**
+     * 获取所有配置(详细列表)
+     */
+    public Result<List<SysConfigDTO>> listAll() {
+        List<SysConfig> list = configMapper.selectList(
+            new LambdaQueryWrapper<SysConfig>().orderByAsc(SysConfig::getConfigKey));
+        return Result.success(list.stream().map(SysConfigDTO::from).collect(Collectors.toList()));
+    }
+
+    /**
+     * 获取单个配置
+     */
+    public Result<SysConfigDTO> get(String key) {
+        SysConfig config = configMapper.selectOne(
+            new LambdaQueryWrapper<SysConfig>().eq(SysConfig::getConfigKey, key));
+        if (config == null) {
+            return Result.error("配置不存在");
+        }
+        return Result.success(SysConfigDTO.from(config));
+    }
+
+    /**
+     * 更新配置
+     */
+    public Result<String> update(String key, String value) {
+        SysConfig config = configMapper.selectOne(
+            new LambdaQueryWrapper<SysConfig>().eq(SysConfig::getConfigKey, key));
+        if (config == null) {
+            return Result.error("配置不存在");
+        }
+        config.setConfigValue(value);
+        config.setUpdatedAt(new Date());
+        configMapper.updateById(config);
+        return Result.success("更新成功");
+    }
+
+    /**
+     * 内部方法:获取配置值(供其他 Service 调用)
+     */
+    public String getValue(String key) {
+        SysConfig config = configMapper.selectOne(
+            new LambdaQueryWrapper<SysConfig>().eq(SysConfig::getConfigKey, key));
+        return config != null ? config.getConfigValue() : null;
+    }
+}