wip: 临时提交
开发部分系统配置
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
package com.youlai.system.common.constant;
|
||||
|
||||
/**
|
||||
* 符号和特殊符号常用类
|
||||
* @author Theo
|
||||
* @since 2024-7-29 11:46:08
|
||||
*/
|
||||
public interface SymbolConstant {
|
||||
/**
|
||||
* 符号:点
|
||||
*/
|
||||
String SPOT = ".";
|
||||
|
||||
/**
|
||||
* 符号:双斜杠
|
||||
*/
|
||||
String DOUBLE_BACKSLASH = "\\";
|
||||
|
||||
/**
|
||||
* 符号:冒号
|
||||
*/
|
||||
String COLON = ":";
|
||||
|
||||
/**
|
||||
* 符号:逗号
|
||||
*/
|
||||
String COMMA = ",";
|
||||
|
||||
/**
|
||||
* 符号:左花括号 }
|
||||
*/
|
||||
String LEFT_CURLY_BRACKET = "{";
|
||||
|
||||
/**
|
||||
* 符号:右花括号 }
|
||||
*/
|
||||
String RIGHT_CURLY_BRACKET = "}";
|
||||
|
||||
/**
|
||||
* 符号:井号 #
|
||||
*/
|
||||
String WELL_NUMBER = "#";
|
||||
|
||||
/**
|
||||
* 符号:单斜杠
|
||||
*/
|
||||
String SINGLE_SLASH = "/";
|
||||
|
||||
/**
|
||||
* 符号:双斜杠
|
||||
*/
|
||||
String DOUBLE_SLASH = "//";
|
||||
|
||||
/**
|
||||
* 符号:感叹号
|
||||
*/
|
||||
String EXCLAMATORY_MARK = "!";
|
||||
|
||||
/**
|
||||
* 符号:下划线
|
||||
*/
|
||||
String UNDERLINE = "_";
|
||||
|
||||
/**
|
||||
* 符号:单引号
|
||||
*/
|
||||
String SINGLE_QUOTATION_MARK = "'";
|
||||
|
||||
/**
|
||||
* 符号:星号
|
||||
*/
|
||||
String ASTERISK = "*";
|
||||
|
||||
/**
|
||||
* 符号:百分号
|
||||
*/
|
||||
String PERCENT_SIGN = "%";
|
||||
|
||||
/**
|
||||
* 符号:美元 $
|
||||
*/
|
||||
String DOLLAR = "$";
|
||||
|
||||
/**
|
||||
* 符号:和 &
|
||||
*/
|
||||
String AND = "&";
|
||||
|
||||
/**
|
||||
* 符号:../
|
||||
*/
|
||||
String SPOT_SINGLE_SLASH = "../";
|
||||
|
||||
/**
|
||||
* 符号:..\\
|
||||
*/
|
||||
String SPOT_DOUBLE_BACKSLASH = "..\\";
|
||||
|
||||
/**
|
||||
* 系统变量前缀 #{
|
||||
*/
|
||||
String SYS_VAR_PREFIX = "#{";
|
||||
|
||||
/**
|
||||
* 符号 {{
|
||||
*/
|
||||
String DOUBLE_LEFT_CURLY_BRACKET = "{{";
|
||||
|
||||
/**
|
||||
* 符号:[
|
||||
*/
|
||||
String SQUARE_BRACKETS_LEFT = "[";
|
||||
|
||||
/**
|
||||
* 符号:]
|
||||
*/
|
||||
String SQUARE_BRACKETS_RIGHT = "]";
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.youlai.system.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.model.form.ConfigForm;
|
||||
import com.youlai.system.model.query.ConfigPageQuery;
|
||||
import com.youlai.system.model.vo.ConfigVO;
|
||||
import com.youlai.system.service.SysConfigService;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springdoc.core.annotations.ParameterObject;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
|
||||
|
||||
/**
|
||||
* 系统配置 前端控制器
|
||||
*
|
||||
* @author Theo
|
||||
* @since 2024-07-29 11:17:26
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Tag(name = "系统配置")
|
||||
@RequestMapping("/api/v1/config")
|
||||
public class SysConfigController {
|
||||
|
||||
private final SysConfigService sysConfigService;
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "系统配置分页列表")
|
||||
@PreAuthorize("@ss.hasPerm('business:config:query')")
|
||||
public PageResult<ConfigVO> page(@ParameterObject ConfigPageQuery configPageQuery) {
|
||||
IPage<ConfigVO> result = sysConfigService.page(configPageQuery);
|
||||
return PageResult.success(result);
|
||||
}
|
||||
|
||||
@Operation(summary = "新增系统配置")
|
||||
@PostMapping(value = "/save")
|
||||
@PreAuthorize("@ss.hasPerm('business:config:add')")
|
||||
public Result<?> save(@RequestBody @Valid ConfigForm configForm) {
|
||||
return Result.judge(sysConfigService.save(configForm));
|
||||
}
|
||||
|
||||
@PutMapping("/update/{id}")
|
||||
@Operation(summary = "修改系统配置")
|
||||
@PreAuthorize("@ss.hasPerm('business:config:update')")
|
||||
public Result<?> update(@Valid @PathVariable Long id, @RequestBody ConfigForm configForm) {
|
||||
return Result.judge(sysConfigService.edit(id, configForm));
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/{id}")
|
||||
@Operation(summary = "删除系统配置")
|
||||
@PreAuthorize("@ss.hasPerm('business:config:delete')")
|
||||
public Result<?> delete(@PathVariable Long id) {
|
||||
return Result.judge(sysConfigService.delete(id));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.youlai.system.converter;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.model.entity.SysConfig;
|
||||
import com.youlai.system.model.form.ConfigForm;
|
||||
import com.youlai.system.model.vo.ConfigVO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
/**
|
||||
* 系统配置对象转换器
|
||||
*
|
||||
* @author Theo
|
||||
* @since 2024-7-29 11:42:49
|
||||
*/
|
||||
@Mapper(componentModel = "spring")
|
||||
public interface SysConfigConverter {
|
||||
Page<ConfigVO> convertToPageVo(Page<SysConfig> page);
|
||||
|
||||
SysConfig toEntity(ConfigForm configForm);
|
||||
|
||||
ConfigForm toForm(SysConfig entity);
|
||||
}
|
||||
16
src/main/java/com/youlai/system/mapper/SysConfigMapper.java
Normal file
16
src/main/java/com/youlai/system/mapper/SysConfigMapper.java
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.youlai.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.youlai.system.model.entity.SysConfig;
|
||||
|
||||
/**
|
||||
* 系统配置 访问层
|
||||
*
|
||||
* @author Theo
|
||||
* @since 2024-7-29 11:41:04
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysConfigMapper extends BaseMapper<SysConfig> {
|
||||
|
||||
}
|
||||
44
src/main/java/com/youlai/system/model/entity/SysConfig.java
Normal file
44
src/main/java/com/youlai/system/model/entity/SysConfig.java
Normal file
@@ -0,0 +1,44 @@
|
||||
package com.youlai.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.Builder;
|
||||
import java.io.Serializable;
|
||||
import com.youlai.system.common.base.BaseEntity;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
/**
|
||||
* 系统配置 实体
|
||||
*
|
||||
* @author Theo
|
||||
* @since 2024-07-29 11:17:26
|
||||
*/
|
||||
@Data
|
||||
@TableName("sys_config")
|
||||
@Schema(description = "系统配置")
|
||||
public class SysConfig extends BaseEntity {
|
||||
|
||||
@Schema(description = "配置名称")
|
||||
private String sysName;
|
||||
|
||||
@Schema(description = "配置key")
|
||||
private String sysKey;
|
||||
|
||||
@Schema(description = "配置值")
|
||||
private String sysValue;
|
||||
|
||||
@Schema(description = "描述、备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "创建人ID")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
@Schema(description = "更新人ID")
|
||||
@TableField(fill = FieldFill.UPDATE)
|
||||
private Long updateBy;
|
||||
|
||||
@TableLogic(value = "0", delval = "1")
|
||||
private Integer isDeleted;
|
||||
|
||||
}
|
||||
17
src/main/java/com/youlai/system/model/form/ConfigForm.java
Normal file
17
src/main/java/com/youlai/system/model/form/ConfigForm.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.youlai.system.model.form;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 系统配置 表单实体
|
||||
*
|
||||
* @author Theo
|
||||
* @since 2024-07-29 11:17:26
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "系统配置Form实体")
|
||||
public class ConfigForm {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.youlai.system.model.query;
|
||||
|
||||
import com.youlai.system.common.base.BasePageQuery;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 系统配置查询对象
|
||||
*
|
||||
* @author Theo
|
||||
* @since 2024-7-29 11:38:00
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Schema(description = "系统配置分页查询")
|
||||
public class ConfigPageQuery extends BasePageQuery {
|
||||
|
||||
@Schema(description="关键字(配置项名称/配置项值)")
|
||||
private String keywords;
|
||||
}
|
||||
37
src/main/java/com/youlai/system/model/vo/ConfigVO.java
Normal file
37
src/main/java/com/youlai/system/model/vo/ConfigVO.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package com.youlai.system.model.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Theo
|
||||
* @description: 系统配置VO
|
||||
* @Company 利盈智能
|
||||
* @date 2024-07-29 11:17:26
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Schema(description = "系统配置VO")
|
||||
public class ConfigVO {
|
||||
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "配置名称")
|
||||
private String sysName;
|
||||
|
||||
@Schema(description = "配置key")
|
||||
private String sysKey;
|
||||
|
||||
@Schema(description = "配置值")
|
||||
private String sysValue;
|
||||
|
||||
@Schema(description = "描述、备注")
|
||||
private String remark;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.youlai.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.youlai.system.model.entity.SysConfig;
|
||||
import com.youlai.system.model.form.ConfigForm;
|
||||
import com.youlai.system.model.query.ConfigPageQuery;
|
||||
import com.youlai.system.model.vo.ConfigVO;
|
||||
|
||||
/**
|
||||
* 系统配置Service接口
|
||||
*
|
||||
* @author Theo
|
||||
* @since 2024-07-29 11:17:26
|
||||
*/
|
||||
public interface SysConfigService extends IService<SysConfig> {
|
||||
|
||||
/**
|
||||
* 分页查询系统配置
|
||||
* @param sysConfigPageQuery 查询参数
|
||||
* @return 系统配置分页列表
|
||||
*/
|
||||
IPage<ConfigVO> page(ConfigPageQuery sysConfigPageQuery);
|
||||
|
||||
/**
|
||||
* 保存系统配置
|
||||
* @param sysConfigForm 系统配置表单
|
||||
* @return 是否保存成功
|
||||
*/
|
||||
boolean save(ConfigForm sysConfigForm);
|
||||
|
||||
/**
|
||||
* 编辑系统配置
|
||||
* @param id 系统配置ID
|
||||
* @param sysConfigForm 系统配置表单
|
||||
* @return 是否编辑成功
|
||||
*/
|
||||
boolean edit(Long id, ConfigForm sysConfigForm);
|
||||
|
||||
/**
|
||||
* 删除系统配置
|
||||
* @param ids 系统配置ID
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
boolean delete(Long ids);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.youlai.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.system.converter.SysConfigConverter;
|
||||
import com.youlai.system.model.form.ConfigForm;
|
||||
import com.youlai.system.model.query.ConfigPageQuery;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.youlai.system.mapper.SysConfigMapper;
|
||||
import com.youlai.system.model.entity.SysConfig;
|
||||
import com.youlai.system.model.vo.ConfigVO;
|
||||
import com.youlai.system.service.SysConfigService;
|
||||
|
||||
/**
|
||||
* 系统配置Service接口实现
|
||||
*
|
||||
* @author Theo
|
||||
* @since 2024-07-29 11:17:26
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig> implements SysConfigService {
|
||||
|
||||
private final SysConfigMapper sysConfigMapper;
|
||||
|
||||
private final SysConfigConverter sysConfigConverter;
|
||||
|
||||
/**
|
||||
* 分页查询系统配置
|
||||
* @param configPageQuery 查询参数
|
||||
* @return 系统配置分页列表
|
||||
*/
|
||||
@Override
|
||||
public IPage<ConfigVO> page(ConfigPageQuery configPageQuery) {
|
||||
Page<SysConfig> page = new Page<>(configPageQuery.getPageNum(), configPageQuery.getPageSize());
|
||||
QueryWrapper<SysConfig> query = new QueryWrapper<>();
|
||||
//TODO: 设置查询条件
|
||||
Page<SysConfig> pageList = this.page(page, query);
|
||||
return sysConfigConverter.convertToPageVo(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存系统配置
|
||||
* @param configForm 系统配置表单
|
||||
* @return 是否保存成功
|
||||
*/
|
||||
@Override
|
||||
public boolean save(ConfigForm configForm) {
|
||||
SysConfig sysConfig = sysConfigConverter.toEntity(configForm);
|
||||
return this.save(sysConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑系统配置
|
||||
* @param id 系统配置ID
|
||||
* @param configForm 系统配置表单
|
||||
* @return 是否编辑成功
|
||||
*/
|
||||
@Override
|
||||
public boolean edit(Long id, ConfigForm configForm) {
|
||||
//TODO 可能的校验
|
||||
SysConfig sysConfig = sysConfigConverter.toEntity(configForm);
|
||||
return this.update(sysConfig, new QueryWrapper<SysConfig>().eq("id", id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除系统配置
|
||||
* @param id 系统配置ID
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public boolean delete(Long id) {
|
||||
if (id != null) {
|
||||
return super.remove(new QueryWrapper<SysConfig>().eq("id", id));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user