feat(dict): 添加字典生成枚举类功能

This commit is contained in:
john 2026-08-16 11:14:51 +08:00
parent 1df89481db
commit e7bce63a0f
19 changed files with 501 additions and 35 deletions

View File

@ -380,3 +380,7 @@ spring.ai.mcp:
- -y
- '@modelcontextprotocol/server-filesystem'
- D:/data
--- # 字典数据生成枚举类配置
dict:
package-name: org.dromara.common.core.enums

View File

@ -0,0 +1,28 @@
package org.dromara.common.core.enums;
/**
* 系统状态 枚举 sys_common_status
*
* @author dict-enum-generator
*/
public enum EnumSysCommonStatus {
SUCCESS("0", "成功"),
FAIL("1", "失败"),
;
private final String code;
private final String text;
EnumSysCommonStatus(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,30 @@
package org.dromara.common.core.enums;
/**
* 设备类型 枚举 sys_device_type
*
* @author dict-enum-generator
*/
public enum EnumSysDeviceType {
PC("pc", "PC"),
ANDROID("android", "安卓"),
IOS("ios", "iOS"),
XCX("xcx", "小程序"),
;
private final String code;
private final String text;
EnumSysDeviceType(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,31 @@
package org.dromara.common.core.enums;
/**
* 授权类型 枚举 sys_grant_type
*
* @author dict-enum-generator
*/
public enum EnumSysGrantType {
PASSWORD("password", "密码认证"),
SMS("sms", "短信认证"),
EMAIL("email", "邮件认证"),
XCX("xcx", "小程序认证"),
SOCIAL("social", "三方登录认证"),
;
private final String code;
private final String text;
EnumSysGrantType(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,28 @@
package org.dromara.common.core.enums;
/**
* 系统开关 枚举 sys_normal_disable
*
* @author dict-enum-generator
*/
public enum EnumSysNormalDisable {
NORMAL("0", "正常"),
DISABLED("1", "停用"),
;
private final String code;
private final String text;
EnumSysNormalDisable(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,28 @@
package org.dromara.common.core.enums;
/**
* 通知状态 枚举 sys_notice_status
*
* @author dict-enum-generator
*/
public enum EnumSysNoticeStatus {
NORMAL("0", "正常"),
CLOSED("1", "关闭"),
;
private final String code;
private final String text;
EnumSysNoticeStatus(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,28 @@
package org.dromara.common.core.enums;
/**
* 通知类型 枚举 sys_notice_type
*
* @author dict-enum-generator
*/
public enum EnumSysNoticeType {
NOTICE("1", "通知"),
ANNOUNCEMENT("2", "公告"),
;
private final String code;
private final String text;
EnumSysNoticeType(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,36 @@
package org.dromara.common.core.enums;
/**
* 操作类型 枚举 sys_oper_type
*
* @author dict-enum-generator
*/
public enum EnumSysOperType {
ADD("1", "新增"),
UPDATE("2", "修改"),
DELETE("3", "删除"),
GRANT("4", "授权"),
EXPORT("5", "导出"),
IMPORT("6", "导入"),
FORCE_LOGOUT("7", "强退"),
GENERATE_CODE("8", "生成代码"),
CLEAR_DATA("9", "清空数据"),
OTHER("0", "其他"),
;
private final String code;
private final String text;
EnumSysOperType(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,28 @@
package org.dromara.common.core.enums;
/**
* 菜单状态 枚举 sys_show_hide
*
* @author dict-enum-generator
*/
public enum EnumSysShowHide {
SHOW("0", "显示"),
HIDE("1", "隐藏"),
;
private final String code;
private final String text;
EnumSysShowHide(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,29 @@
package org.dromara.common.core.enums;
/**
* 用户性别 枚举 sys_user_gender
*
* @author dict-enum-generator
*/
public enum EnumSysUserGender {
MALE("0", ""),
FEMALE("1", ""),
UNKNOWN("2", "未知"),
;
private final String code;
private final String text;
EnumSysUserGender(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,28 @@
package org.dromara.common.core.enums;
/**
* 系统是否 枚举 sys_yes_no
*
* @author dict-enum-generator
*/
public enum EnumSysYesNo {
YES("Y", ""),
NO("N", ""),
;
private final String code;
private final String text;
EnumSysYesNo(String code, String text) {
this.code = code;
this.text = text;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}

View File

@ -0,0 +1,22 @@
package org.dromara.system.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 字典配置属性
*
* @author dict-enum-generator
*/
@Data
@Component
@ConfigurationProperties(prefix = "dict")
public class DictProperties {
/**
* 生成的枚举类包名
*/
private String packageName;
}

View File

@ -1,11 +1,14 @@
package org.dromara.system.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.io.IoUtil;
import com.baomidou.lock.annotation.Lock4j;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.PageResult;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.excel.utils.ExcelBuilder;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
@ -18,6 +21,7 @@ import org.dromara.system.service.ISysDictTypeService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@ -147,4 +151,26 @@ public class SysDictTypeController extends BaseController {
List<SysDictTypeVo> dictTypes = dictTypeService.selectDictTypeAll();
return R.ok(dictTypes);
}
/**
* 生成字典枚举类压缩包
*
* @param response HTTP 响应
* @param dictTypes 字典类型集合
*/
@SaCheckPermission("system:dict:list")
@PostMapping("/genEnum")
public void genEnum(HttpServletResponse response, @RequestBody List<String> dictTypes) throws IOException {
if (!List.of("dev", "local").contains(SpringUtils.getActiveProfile())) {
throw new ServiceException("请在本地环境执行此操作");
}
byte[] data = dictTypeService.generateEnumZip(dictTypes);
response.reset();
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition", "attachment; filename=\"dict_enum.zip\"");
response.addHeader("Content-Length", "" + data.length);
response.setContentType("application/octet-stream; charset=UTF-8");
IoUtil.write(response.getOutputStream(), false, data);
}
}

View File

@ -63,4 +63,9 @@ public class SysDictData extends BaseEntity {
*/
private String remark;
/**
* 枚举名称用于生成枚举类只支持英文和下划线
*/
private String enumName;
}

View File

@ -79,4 +79,9 @@ public class SysDictDataBo implements Serializable {
*/
private String remark;
/**
* 枚举名称用于生成枚举类只支持英文和下划线
*/
private String enumName;
}

View File

@ -85,4 +85,10 @@ public class SysDictDataVo implements Serializable {
@ExcelProperty(value = "创建时间")
private LocalDateTime createTime;
/**
* 枚举名称用于生成枚举类只支持英文和下划线
*/
@ExcelProperty(value = "枚举名称")
private String enumName;
}

View File

@ -99,4 +99,12 @@ public interface ISysDictTypeService {
* @return 结果
*/
boolean checkDictTypeUnique(SysDictTypeBo dictType);
/**
* 根据字典类型集合生成枚举类 zip 压缩包
*
* @param dictTypes 字典类型集合
* @return zip 二进制数据
*/
byte[] generateEnumZip(List<String> dictTypes);
}

View File

@ -2,7 +2,9 @@ package org.dromara.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
@ -19,6 +21,7 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.query.QueryBuilder;
import org.dromara.common.redis.utils.CacheUtils;
import org.dromara.system.config.DictProperties;
import org.dromara.system.domain.SysDictData;
import org.dromara.system.domain.SysDictType;
import org.dromara.system.domain.bo.SysDictTypeBo;
@ -32,8 +35,13 @@ import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* 字典 业务层处理
@ -46,6 +54,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
private final SysDictTypeMapper dictTypeMapper;
private final SysDictDataMapper dictDataMapper;
private final DictProperties dictProperties;
/**
* 枚举类名前缀
*/
private static final String ENUM_CLASS_PREFIX = "Enum";
/**
* 分页查询字典类型列表
@ -221,6 +235,88 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
return !exist;
}
/**
* 根据字典类型集合生成枚举类 zip 压缩包
*
* @param dictTypes 字典类型集合
* @return zip 二进制数据
*/
@Override
public byte[] generateEnumZip(List<String> dictTypes) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(outputStream);
try {
for (String dictType : dictTypes) {
List<SysDictDataVo> dataList = SpringUtils.getAopProxy(this).selectDictDataByType(dictType);
SysDictTypeVo typeVo = SpringUtils.getAopProxy(this).selectDictTypeByType(dictType);
String dictName = ObjectUtil.isNull(typeVo) ? dictType : typeVo.getDictName();
String className = ENUM_CLASS_PREFIX + StrUtil.upperFirst(StrUtil.toCamelCase(dictType));
String source = buildEnumSource(dictName, dictType, className, dataList);
zip.putNextEntry(new ZipEntry(className + ".java"));
IoUtil.write(zip, StandardCharsets.UTF_8, false, source);
zip.flush();
zip.closeEntry();
}
} catch (IOException e) {
throw new ServiceException("生成枚举类失败:" + e.getMessage());
}
IoUtil.close(zip);
return outputStream.toByteArray();
}
/**
* 构造枚举类源码
*
* @param dictName 字典名称
* @param dictType 字典类型
* @param className 枚举类名
* @param dataList 字典数据集合
* @return 枚举类源码
*/
private String buildEnumSource(String dictName, String dictType, String className, List<SysDictDataVo> dataList) {
StringBuilder sb = new StringBuilder();
sb.append("package ").append(dictProperties.getPackageName()).append(";\n\n");
sb.append("/**\n * ").append(dictName).append(" 枚举 【").append(dictType).append("\n *\n * @author dict-enum-generator\n */\n");
sb.append("public enum ").append(className).append(" {\n\n");
for (SysDictDataVo data : dataList) {
if (StringUtils.isBlank(data.getEnumName())) {
throw new ServiceException("enumName不能为空");
}
sb.append(" ").append(data.getEnumName().toUpperCase())
.append("(\"").append(escapeJava(data.getDictValue()))
.append("\", \"").append(escapeJava(data.getDictLabel()))
.append("\"),\n");
}
sb.append(" ;\n");
sb.append(" private final String code;\n");
sb.append(" private final String text;\n\n");
sb.append(" ").append(className).append("(String code, String text) {\n");
sb.append(" this.code = code;\n");
sb.append(" this.text = text;\n");
sb.append(" }\n\n");
sb.append(" public String getCode() {\n");
sb.append(" return code;\n");
sb.append(" }\n\n");
sb.append(" public String getText() {\n");
sb.append(" return text;\n");
sb.append(" }\n");
sb.append("}\n");
return sb.toString();
}
/**
* 转义字符串中的反斜杠与双引号保证生成的源码合法
*
* @param value 原始字符串
* @return 转义后的字符串
*/
private String escapeJava(String value) {
if (value == null) {
return StringUtils.EMPTY;
}
return value.replace("\\", "\\\\").replace("\"", "\\\"");
}
/**
* 根据字典类型和字典值获取字典标签
*

View File

@ -598,45 +598,45 @@ create table sys_dict_data
update_by bigint(20) default null comment '更新者',
update_time datetime comment '更新时间',
remark varchar(500) default null comment '备注',
enum_name varchar(100) default null comment '枚举名称,用于生成枚举类,只支持英文和下划线',
primary key (dict_code),
key idx_sys_dict_data_type (dict_type)
) engine=innodb comment = '字典数据表';
insert into sys_dict_data values(1761600000000000001, 1, '', '0', 'sys_user_gender', '', '', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '性别男');
insert into sys_dict_data values(1761600000000000002, 2, '', '1', 'sys_user_gender', '', '', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '性别女');
insert into sys_dict_data values(1761600000000000003, 3, '未知', '2', 'sys_user_gender', '', '', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '性别未知');
insert into sys_dict_data values(1761600000000000004, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '显示菜单');
insert into sys_dict_data values(1761600000000000005, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '隐藏菜单');
insert into sys_dict_data values(1761600000000000006, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '正常状态');
insert into sys_dict_data values(1761600000000000007, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '停用状态');
insert into sys_dict_data values(1761600000000000012, 1, '', 'Y', 'sys_yes_no', '', 'primary', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '系统默认是');
insert into sys_dict_data values(1761600000000000013, 2, '', 'N', 'sys_yes_no', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '系统默认否');
insert into sys_dict_data values(1761600000000000014, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '通知');
insert into sys_dict_data values(1761600000000000015, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '公告');
insert into sys_dict_data values(1761600000000000016, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '正常状态');
insert into sys_dict_data values(1761600000000000017, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '关闭状态');
insert into sys_dict_data values(1761600000000000029, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '其他操作');
insert into sys_dict_data values(1761600000000000018, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '新增操作');
insert into sys_dict_data values(1761600000000000019, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '修改操作');
insert into sys_dict_data values(1761600000000000020, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '删除操作');
insert into sys_dict_data values(1761600000000000021, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '授权操作');
insert into sys_dict_data values(1761600000000000022, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '导出操作');
insert into sys_dict_data values(1761600000000000023, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '导入操作');
insert into sys_dict_data values(1761600000000000024, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '强退操作');
insert into sys_dict_data values(1761600000000000025, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '生成操作');
insert into sys_dict_data values(1761600000000000026, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '清空操作');
insert into sys_dict_data values(1761600000000000027, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '正常状态');
insert into sys_dict_data values(1761600000000000028, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '停用状态');
insert into sys_dict_data values(1761600000000000030, 0, '密码认证', 'password', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '密码认证');
insert into sys_dict_data values(1761600000000000031, 0, '短信认证', 'sms', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '短信认证');
insert into sys_dict_data values(1761600000000000032, 0, '邮件认证', 'email', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '邮件认证');
insert into sys_dict_data values(1761600000000000033, 0, '小程序认证', 'xcx', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '小程序认证');
insert into sys_dict_data values(1761600000000000034, 0, '三方登录认证', 'social', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '三方登录认证');
insert into sys_dict_data values(1761600000000000035, 0, 'PC', 'pc', 'sys_device_type', '', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, 'PC');
insert into sys_dict_data values(1761600000000000036, 0, '安卓', 'android', 'sys_device_type', '', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '安卓');
insert into sys_dict_data values(1761600000000000037, 0, 'iOS', 'ios', 'sys_device_type', '', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, 'iOS');
insert into sys_dict_data values(1761600000000000038, 0, '小程序', 'xcx', 'sys_device_type', '', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '小程序');
insert into sys_dict_data values(1761600000000000001, 1, '', '0', 'sys_user_gender', '', '', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '性别男', 'MALE');
insert into sys_dict_data values(1761600000000000002, 2, '', '1', 'sys_user_gender', '', '', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '性别女', 'FEMALE');
insert into sys_dict_data values(1761600000000000003, 3, '未知', '2', 'sys_user_gender', '', '', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '性别未知', 'UNKNOWN');
insert into sys_dict_data values(1761600000000000004, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '显示菜单', 'SHOW');
insert into sys_dict_data values(1761600000000000005, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '隐藏菜单', 'HIDE');
insert into sys_dict_data values(1761600000000000006, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '正常状态', 'NORMAL');
insert into sys_dict_data values(1761600000000000007, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '停用状态', 'DISABLED');
insert into sys_dict_data values(1761600000000000012, 1, '', 'Y', 'sys_yes_no', '', 'primary', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '系统默认是', 'YES');
insert into sys_dict_data values(1761600000000000013, 2, '', 'N', 'sys_yes_no', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '系统默认否', 'NO');
insert into sys_dict_data values(1761600000000000014, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '通知', 'NOTICE');
insert into sys_dict_data values(1761600000000000015, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '公告', 'ANNOUNCEMENT');
insert into sys_dict_data values(1761600000000000016, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '正常状态', 'NORMAL');
insert into sys_dict_data values(1761600000000000017, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '关闭状态', 'CLOSED');
insert into sys_dict_data values(1761600000000000029, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '其他操作', 'OTHER');
insert into sys_dict_data values(1761600000000000018, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '新增操作', 'ADD');
insert into sys_dict_data values(1761600000000000019, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '修改操作', 'UPDATE');
insert into sys_dict_data values(1761600000000000020, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '删除操作', 'DELETE');
insert into sys_dict_data values(1761600000000000021, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '授权操作', 'GRANT');
insert into sys_dict_data values(1761600000000000022, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '导出操作', 'EXPORT');
insert into sys_dict_data values(1761600000000000023, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '导入操作', 'IMPORT');
insert into sys_dict_data values(1761600000000000024, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '强退操作', 'FORCE_LOGOUT');
insert into sys_dict_data values(1761600000000000025, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '生成操作', 'GENERATE_CODE');
insert into sys_dict_data values(1761600000000000026, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '清空操作', 'CLEAR_DATA');
insert into sys_dict_data values(1761600000000000027, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '正常状态', 'SUCCESS');
insert into sys_dict_data values(1761600000000000028, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '停用状态', 'FAIL');
insert into sys_dict_data values(1761600000000000030, 0, '密码认证', 'password', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '密码认证', 'PASSWORD');
insert into sys_dict_data values(1761600000000000031, 0, '短信认证', 'sms', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '短信认证', 'SMS');
insert into sys_dict_data values(1761600000000000032, 0, '邮件认证', 'email', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '邮件认证', 'EMAIL');
insert into sys_dict_data values(1761600000000000033, 0, '小程序认证', 'xcx', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '小程序认证', 'XCX');
insert into sys_dict_data values(1761600000000000034, 0, '三方登录认证', 'social', 'sys_grant_type', 'el-check-tag', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '三方登录认证', 'SOCIAL');
insert into sys_dict_data values(1761600000000000035, 0, 'PC', 'pc', 'sys_device_type', '', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, 'PC', 'PC');
insert into sys_dict_data values(1761600000000000036, 0, '安卓', 'android', 'sys_device_type', '', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '安卓', 'ANDROID');
insert into sys_dict_data values(1761600000000000037, 0, 'iOS', 'ios', 'sys_device_type', '', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, 'iOS', 'IOS');
insert into sys_dict_data values(1761600000000000038, 0, '小程序', 'xcx', 'sys_device_type', '', 'default', 'N', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '小程序', 'XCX');
-- ----------------------------
-- 13、参数配置表