diff --git a/sql/demo.sql b/sql/demo.sql index 1f8536b..04db773 100644 --- a/sql/demo.sql +++ b/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' , '', ''); diff --git a/src/main/java/com/qyft/gd/common/constant/SysSettings.java b/src/main/java/com/qyft/gd/common/constant/SysSettings.java new file mode 100644 index 0000000..baa6bbd --- /dev/null +++ b/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"; + +} diff --git a/src/main/java/com/qyft/gd/controller/SysSettingsController.java b/src/main/java/com/qyft/gd/controller/SysSettingsController.java new file mode 100644 index 0000000..39e1571 --- /dev/null +++ b/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> 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 updateConfig(@RequestBody List dto) { + boolean isSuccess = sysSettingsService.updateConfig(dto); + if (isSuccess) { + return Result.success(); + } + return Result.failed(); + } +} diff --git a/src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java b/src/main/java/com/qyft/gd/mapper/SysSettingsMapper.java new file mode 100644 index 0000000..aab88b6 --- /dev/null +++ b/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; + + +/** + *

+ * Mapper 接口 + *

+ * + * @author 郭安鹏 + * @since 2025-02-17 + */ + +@Mapper +public interface SysSettingsMapper extends BaseMapper { + List getConfig(String type); + + Boolean updateBatch(List dto); + + int getIdByCode(String type); +} + diff --git a/src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java b/src/main/java/com/qyft/gd/model/dto/SysSettingsDTO.java new file mode 100644 index 0000000..e97d591 --- /dev/null +++ b/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; +} diff --git a/src/main/java/com/qyft/gd/model/entity/SysSettings.java b/src/main/java/com/qyft/gd/model/entity/SysSettings.java new file mode 100644 index 0000000..d3c51a1 --- /dev/null +++ b/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; + +/** + *

+ * 系统配置 + *

+ * + * @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; + +} diff --git a/src/main/java/com/qyft/gd/model/vo/SysSettingResult.java b/src/main/java/com/qyft/gd/model/vo/SysSettingResult.java new file mode 100644 index 0000000..253717e --- /dev/null +++ b/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 children; + +} diff --git a/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java b/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java new file mode 100644 index 0000000..10000f1 --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java b/src/main/java/com/qyft/gd/service/impl/SysSettingsServiceImpl.java new file mode 100644 index 0000000..e7c5082 --- /dev/null +++ b/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 implements SysSettingsService { + private final SysSettingsMapper sysSettingsMapper; + @Override + public List getConfig(String type) { + int parentId = sysSettingsMapper.getIdByCode(type); + return sysSettingsMapper.getConfig(String.valueOf(parentId)); + } + + @Override + public List getAllConfig() { + List list = sysSettingsMapper.getConfig("-1"); + List result = new ArrayList<>(); + for (SysSettingVO sysSettings : list) { + List 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 dto) { + return sysSettingsMapper.updateBatch(dto); + } +} diff --git a/src/main/resources/mapper/SysSettingsMapper.xml b/src/main/resources/mapper/SysSettingsMapper.xml new file mode 100644 index 0000000..14e4eeb --- /dev/null +++ b/src/main/resources/mapper/SysSettingsMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + UPDATE sys_settings + SET value1 = #{item.value, jdbcType=VARCHAR} + WHERE id = #{item.id, jdbcType=BIGINT} + + + + + \ No newline at end of file