diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 32b8a7429..ccb95299f 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -380,3 +380,7 @@ spring.ai.mcp: - -y - '@modelcontextprotocol/server-filesystem' - D:/data + +--- # 字典数据生成枚举类配置 +dict: + package-name: org.dromara.common.core.enums diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysCommonStatus.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysCommonStatus.java new file mode 100644 index 000000000..d10b56733 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysCommonStatus.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysDeviceType.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysDeviceType.java new file mode 100644 index 000000000..bfb94678b --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysDeviceType.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysGrantType.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysGrantType.java new file mode 100644 index 000000000..feb72ecf0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysGrantType.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNormalDisable.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNormalDisable.java new file mode 100644 index 000000000..500bf6800 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNormalDisable.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNoticeStatus.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNoticeStatus.java new file mode 100644 index 000000000..031390cea --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNoticeStatus.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNoticeType.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNoticeType.java new file mode 100644 index 000000000..fb8fba5c9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysNoticeType.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysOperType.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysOperType.java new file mode 100644 index 000000000..cbc72e599 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysOperType.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysShowHide.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysShowHide.java new file mode 100644 index 000000000..7a8e98cb5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysShowHide.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysUserGender.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysUserGender.java new file mode 100644 index 000000000..79ab5b7c0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysUserGender.java @@ -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; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysYesNo.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysYesNo.java new file mode 100644 index 000000000..56207ca8d --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/EnumSysYesNo.java @@ -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; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/config/DictProperties.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/config/DictProperties.java new file mode 100644 index 000000000..0a6ea0b88 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/config/DictProperties.java @@ -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; + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java index 21c0581b8..4806809d8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java @@ -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 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 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); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictData.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictData.java index dbf15bd1a..4b9aae4e9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictData.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysDictData.java @@ -63,4 +63,9 @@ public class SysDictData extends BaseEntity { */ private String remark; + /** + * 枚举名称,用于生成枚举类,只支持英文和下划线 + */ + private String enumName; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java index 34a30faf7..35a533ba3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysDictDataBo.java @@ -79,4 +79,9 @@ public class SysDictDataBo implements Serializable { */ private String remark; + /** + * 枚举名称,用于生成枚举类,只支持英文和下划线 + */ + private String enumName; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java index 887a8441f..60cf0c599 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDictDataVo.java @@ -85,4 +85,10 @@ public class SysDictDataVo implements Serializable { @ExcelProperty(value = "创建时间") private LocalDateTime createTime; + /** + * 枚举名称,用于生成枚举类,只支持英文和下划线 + */ + @ExcelProperty(value = "枚举名称") + private String enumName; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java index 6ad37691d..73dbbd848 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDictTypeService.java @@ -99,4 +99,12 @@ public interface ISysDictTypeService { * @return 结果 */ boolean checkDictTypeUnique(SysDictTypeBo dictType); + + /** + * 根据字典类型集合生成枚举类 zip 压缩包 + * + * @param dictTypes 字典类型集合 + * @return zip 二进制数据 + */ + byte[] generateEnumZip(List dictTypes); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java index 7652efecd..102e2fe42 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDictTypeServiceImpl.java @@ -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 dictTypes) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + try { + for (String dictType : dictTypes) { + List 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 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("\"", "\\\""); + } + /** * 根据字典类型和字典值获取字典标签 * diff --git a/script/sql/ry_vue.sql b/script/sql/ry_vue.sql index 9841276a6..b69dbf3d1 100644 --- a/script/sql/ry_vue.sql +++ b/script/sql/ry_vue.sql @@ -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、参数配置表