Browse Source

feat: 系统配置查询和更新接口

master
guoapeng 6 months ago
parent
commit
b7d45996c3
  1. 35
      sql/demo.sql
  2. 27
      src/main/java/com/qyft/gd/common/constant/SysSettings.java
  3. 49
      src/main/java/com/qyft/gd/controller/SysSettingsController.java
  4. 29
      src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java
  5. 12
      src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java
  6. 43
      src/main/java/com/qyft/gd/model/entity/SysSettings.java
  7. 14
      src/main/java/com/qyft/gd/model/vo/SysSettingResult.java
  8. 29
      src/main/java/com/qyft/gd/model/vo/SysSettingVO.java
  9. 49
      src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java
  10. 20
      src/main/resources/mapper/SysSettingsMapper.xml

35
sql/demo.sql

@ -41,21 +41,24 @@ CREATE TABLE IF NOT EXISTS sys_settings (
parent_id INTEGER NOT NULL,
name TEXT NOT NULL,
code TEXT,
value TEXT
value1 TEXT,
value2 TEXT,
value3 TEXT
);
INSERT INTO sys_settings (id, parent_id, name, code, value)
INSERT INTO sys_settings (id, parent_id, name, code, value1, value2, value3)
VALUES
(1, -1, '加热区域配置', '', '' ),
(2, 1, 'A1', 'H1', '1,1,1'),
(3, 1, 'A2', 'H2', '2,2,2'),
(4, 1, 'A3', 'H3', '3,3,3'),
(5, 1, 'A4', 'H4', '4,4,4'),
(6, 1, 'A5', 'H5', '5,5,5'),
(7, 1, 'A6', 'H6', '6,6,6'),
(8, -1, '加液区域配置', '', '' ),
(9, 8, '加液区', 'A7', '7,7,7' ),
(10, -1, '拍子区域配置', '', '' ),
(11, 10, '拍子存放区', 'A8', '8,8,8' ),
(12, -1, '其他系统配置', '', '' ),
(13, 12, '溶液量低提示', '', '300' ),
(14, 12, '异常处理区', '', '7' );
(1, -1, '加热区域配置', 'heat_area', '坐标', '硬件代号', '' ),
(2, 1, 'A1', 'heat_area_A1', '1,1,1', '', ''),
(3, 1, 'A2', 'heat_area_A2', '2,2,2', '', ''),
(4, 1, 'A3', 'heat_area_A3', '3,3,3', '', ''),
(5, 1, 'A4', 'heat_area_A4', '4,4,4', '', ''),
(6, 1, 'A5', 'heat_area_A5', '5,5,5', '', ''),
(7, 1, 'A6', 'heat_area_A6', '6,6,6', '', ''),
(8, -1, '加液区域配置', 'solution_area', '坐标', '硬件代号', '' ),
(9, 8, '加液区', 'solution_area_A7', '7,7,7', '', '' ),
(10, -1, '拍子区域配置', 'lid_area', '坐标', '硬件代号', '' ),
(11, 10, '拍子存放区', 'lid_area_A8', '8,8,8', '', '' ),
(12, -1, '其他系统配置', 'sys_setting', '系统配置的值', '', '' ),
(13, 12, '溶液量低提示', 'sys_setting_volume', '300', '', '' ),
(14, 12, '异常处理区', 'sys_setting_abnormal_area', '7' , '', ''),
(15, 12, '设备信息', 'sys_setting_info', '12345' , '', '');

27
src/main/java/com/qyft/gd/common/constant/SysSettings.java

@ -0,0 +1,27 @@
package com.qyft.gd.common.constant;
/**
* 操作指令
*/
public class SysSettings {
/**
* 加热区域
*/
public static final String HEAT_AREA = "heat_area";
/**
* 加液区域
*/
public static final String SOLUTION_AREA = "solution_area";
/**
* 拍子区域
*/
public static final String LID_AREA = "lid_area";
/**
* 其他系统配置
*/
public static final String SYS_SETTING = "sys_setting";
}

49
src/main/java/com/qyft/gd/controller/SysSettingsController.java

@ -0,0 +1,49 @@
package com.qyft.gd.controller;
import com.qyft.gd.model.dto.SysSettingsDTO;
import com.qyft.gd.service.SysSettingsService;
import com.qyft.gd.system.common.result.Result;
import io.micrometer.common.lang.Nullable;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Tag(name = "系统配置")
@RestController
@RequestMapping("/api/sys")
@RequiredArgsConstructor
@Slf4j
public class SysSettingsController {
private final SysSettingsService sysSettingsService;
@Operation(summary = "获取配置")
@GetMapping("/getConfig")
public Result<List<?>> getConfig(
@Parameter(
description = "配置类型(heat_area 工作区配置 solution_area 加液区配置 lid_area 拍子区域配置 sys_setting 其他系统配置)"
)
@RequestParam
@Nullable
String type
) {
if (type == null) {
return Result.success(sysSettingsService.getAllConfig());
}else {
return Result.success(sysSettingsService.getConfig(type));
}
}
@Operation(summary = "更新配置")
@PutMapping("/updateConfig")
public Result<String> updateConfig(@RequestBody List<SysSettingsDTO> dto) {
boolean isSuccess = sysSettingsService.updateConfig(dto);
if (isSuccess) {
return Result.success();
}
return Result.failed();
}
}

29
src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java

@ -0,0 +1,29 @@
package com.qyft.gd.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qyft.gd.model.dto.SysSettingsDTO;
import com.qyft.gd.model.entity.SysSettings;
import com.qyft.gd.model.vo.SysSettingVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 郭安鹏
* @since 2025-02-17
*/
@Mapper
public interface SysSettingsMapper extends BaseMapper<SysSettings> {
List<SysSettingVO> getConfig(String type);
Boolean updateBatch(List<SysSettingsDTO> dto);
int getIdByCode(String type);
}

12
src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java

@ -0,0 +1,12 @@
package com.qyft.gd.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class SysSettingsDTO {
@Schema(description = "主键id")
private Long id;
@Schema(description = "值")
private String value;
}

43
src/main/java/com/qyft/gd/model/entity/SysSettings.java

@ -0,0 +1,43 @@
package com.qyft.gd.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 系统配置
* </p>
*
* @author 郭安鹏
* @since 2025-02-17
*/
@EqualsAndHashCode(callSuper = false)
@Schema(description = "系统配置")
@TableName("sys_settings")
@Data
public class SysSettings {
@Schema(description = "主键id")
private Long id;
@Schema(description = "父id")
private Long parentId;
@Schema(description = "名称")
private String name;
@Schema(description = "code")
private String code;
@Schema(description = "配置值")
private String value1;
@Schema(description = "配置值")
private String value2;
@Schema(description = "配置值")
private String value3;
}

14
src/main/java/com/qyft/gd/model/vo/SysSettingResult.java

@ -0,0 +1,14 @@
package com.qyft.gd.model.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
public class SysSettingResult extends SysSettingVO {
private List<SysSettingVO> children;
}

29
src/main/java/com/qyft/gd/model/vo/SysSettingVO.java

@ -0,0 +1,29 @@
package com.qyft.gd.model.vo;
import com.qyft.gd.model.entity.SysSettings;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@EqualsAndHashCode(callSuper = false)
@Data
public class SysSettingVO {
@Schema(description = "主键id")
private Long id;
@Schema(description = "父id")
private Long parentId;
@Schema(description = "名称")
private String name;
@Schema(description = "code")
private String code;
@Schema(description = "配置值")
private String value;
}

49
src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java

@ -0,0 +1,49 @@
package com.qyft.gd.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qyft.gd.mapper.SysSettingsMapper;
import com.qyft.gd.model.dto.SysSettingsDTO;
import com.qyft.gd.model.entity.SysSettings;
import com.qyft.gd.model.vo.SysSettingResult;
import com.qyft.gd.model.vo.SysSettingVO;
import com.qyft.gd.service.SysSettingsService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 角色业务实现类
*/
@Service
@RequiredArgsConstructor
public class SysSettingsServiceImpl extends ServiceImpl<SysSettingsMapper, SysSettings> implements SysSettingsService {
private final SysSettingsMapper sysSettingsMapper;
@Override
public List<SysSettingVO> getConfig(String type) {
int parentId = sysSettingsMapper.getIdByCode(type);
return sysSettingsMapper.getConfig(String.valueOf(parentId));
}
@Override
public List<SysSettingResult> getAllConfig() {
List<SysSettingVO> list = sysSettingsMapper.getConfig("-1");
List<SysSettingResult> result = new ArrayList<>();
for (SysSettingVO sysSettings : list) {
List<SysSettingVO> childrenList = sysSettingsMapper.getConfig(String.valueOf(sysSettings.getId()));
SysSettingResult map = new SysSettingResult();
map.setName(sysSettings.getName());
map.setCode(sysSettings.getCode());
map.setId(sysSettings.getId());
map.setChildren(childrenList);
result.add(map);
}
return result;
}
@Override
public Boolean updateConfig(List<SysSettingsDTO> dto) {
return sysSettingsMapper.updateBatch(dto);
}
}

20
src/main/resources/mapper/SysSettingsMapper.xml

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qyft.gd.mapper.SysSettingsMapper">
<select id="getConfig" resultType="com.qyft.gd.model.vo.SysSettingVO">
select id, parent_id, code, name, value1 as value from sys_settings where parent_id = #{parentId}
</select>
<select id="getIdByCode" resultType="java.lang.Integer">
select id from sys_settings where code = #{type}
</select>
<update id="updateBatch" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator="">
UPDATE sys_settings
SET value1 = #{item.value, jdbcType=VARCHAR}
WHERE id = #{item.id, jdbcType=BIGINT}
</foreach>
</update>
</mapper>
Loading…
Cancel
Save