添加字典功能及初始化数据

This commit is contained in:
2025-12-22 21:56:10 +08:00
parent 180fe20347
commit 7d53a059d7
31 changed files with 1894 additions and 79 deletions
+32 -1
View File
@@ -1189,6 +1189,7 @@ CREATE TABLE t_user_profile (
user_id VARCHAR(64) COMMENT '用户ID (关联t_user.id)',
nickname VARCHAR(50) NOT NULL COMMENT '昵称 (必填)',
gender VARCHAR(20) DEFAULT 'secret' COMMENT '性别',
profession VARCHAR(100) COMMENT '职业',
zodiac VARCHAR(20) COMMENT '星座',
mbti VARCHAR(20) NOT NULL COMMENT 'MBTI人格类型 (必填)',
hobbies JSON COMMENT '兴趣爱好列表',
@@ -1384,6 +1385,36 @@ CREATE INDEX idx_life_path_step_order ON t_life_path_step (path_id, step_order);
CREATE INDEX idx_life_path_step_status ON t_life_path_step (status);
CREATE INDEX idx_life_path_step_is_deleted ON t_life_path_step (is_deleted);
-- ============================================================================
-- 24. 字典表 (t_dictionary)
-- 用途:存储基础字段数据,如城市、星座、MBTI人格类型等
-- ============================================================================
DROP TABLE IF EXISTS t_dictionary;
CREATE TABLE t_dictionary (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
dict_type VARCHAR(50) NOT NULL COMMENT '字典类型 (如: city, constellation, mbti)', -- 字典类型
dict_code VARCHAR(100) NOT NULL COMMENT '字典编码', -- 字典编码
dict_name VARCHAR(100) NOT NULL COMMENT '字典名称', -- 字典名称
dict_value VARCHAR(200) COMMENT '字典值', -- 字典值
sort_order INT DEFAULT 0 COMMENT '排序顺序', -- 排序顺序
status TINYINT DEFAULT 1 COMMENT '状态: 0-禁用, 1-启用', -- 状态
-- 公共字段
create_by VARCHAR(64) COMMENT '创建人ID', -- 创建人ID
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', -- 创建时间
update_by VARCHAR(64) COMMENT '更新人ID', -- 更新人ID
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', -- 更新时间
is_deleted TINYINT DEFAULT 0 COMMENT '是否删除: 0-未删除, 1-已删除', -- 是否删除: 0-未删除, 1-已删除
remarks VARCHAR(500) COMMENT '备注' -- 备注
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT '字典表 (t_dictionary)';
-- 提交事务
-- t_dictionary表索引
CREATE INDEX idx_dictionary_dict_type ON t_dictionary (dict_type);
CREATE INDEX idx_dictionary_dict_code ON t_dictionary (dict_code);
CREATE INDEX idx_dictionary_dict_type_status ON t_dictionary (dict_type, status);
CREATE INDEX idx_dictionary_dict_type_sort_order ON t_dictionary (dict_type, sort_order);
CREATE INDEX idx_dictionary_create_time ON t_dictionary (create_time);
CREATE INDEX idx_dictionary_is_deleted ON t_dictionary (is_deleted);
-- 鎻愪氦浜嬪姟
COMMIT;
+8
View File
@@ -0,0 +1,8 @@
-- 理想生活状态
alter table emotion_museum.t_user_profile
add ideal_life varchar(100) null comment '理想生活状态';
-- 职业
alter table emotion_museum.t_user_profile
add profession varchar(100) null comment '职业';
+73
View File
@@ -0,0 +1,73 @@
-- ============================================================================
-- 初始化字典数据
-- 包括:星座数据、MBTI人格类型数据
-- ============================================================================
-- 使用emotion_museum数据库
USE emotion_museum;
-- 设置时间格式
SET time_zone = '+00:00';
-- ============================================================================
-- 1. 星座数据初始化
-- ============================================================================
INSERT INTO t_dictionary (
id, dict_type, dict_code, dict_name, dict_value, sort_order, status,
create_by, create_time, update_by, update_time, is_deleted, remarks
) VALUES
(REPLACE(UUID(), '-', ''), 'constellation', 'aries', '白羊座', '白羊座', 1, 1, 'system', NOW(), 'system', NOW(), 0, '白羊座 (3月21日-4月19日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'taurus', '金牛座', '金牛座', 2, 1, 'system', NOW(), 'system', NOW(), 0, '金牛座 (4月20日-5月20日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'gemini', '双子座', '双子座', 3, 1, 'system', NOW(), 'system', NOW(), 0, '双子座 (5月21日-6月21日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'cancer', '巨蟹座', '巨蟹座', 4, 1, 'system', NOW(), 'system', NOW(), 0, '巨蟹座 (6月22日-7月22日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'leo', '狮子座', '狮子座', 5, 1, 'system', NOW(), 'system', NOW(), 0, '狮子座 (7月23日-8月22日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'virgo', '处女座', '处女座', 6, 1, 'system', NOW(), 'system', NOW(), 0, '处女座 (8月23日-9月22日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'libra', '天秤座', '天秤座', 7, 1, 'system', NOW(), 'system', NOW(), 0, '天秤座 (9月23日-10月23日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'scorpio', '天蝎座', '天蝎座', 8, 1, 'system', NOW(), 'system', NOW(), 0, '天蝎座 (10月24日-11月22日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'sagittarius', '射手座', '射手座', 9, 1, 'system', NOW(), 'system', NOW(), 0, '射手座 (11月23日-12月21日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'capricorn', '摩羯座', '摩羯座', 10, 1, 'system', NOW(), 'system', NOW(), 0, '摩羯座 (12月22日-1月19日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'aquarius', '水瓶座', '水瓶座', 11, 1, 'system', NOW(), 'system', NOW(), 0, '水瓶座 (1月20日-2月18日)'),
(REPLACE(UUID(), '-', ''), 'constellation', 'pisces', '双鱼座', '双鱼座', 12, 1, 'system', NOW(), 'system', NOW(), 0, '双鱼座 (2月19日-3月20日)');
-- ============================================================================
-- 2. MBTI人格类型数据初始化
-- ============================================================================
INSERT INTO t_dictionary (
id, dict_type, dict_code, dict_name, dict_value, sort_order, status,
create_by, create_time, update_by, update_time, is_deleted, remarks
) VALUES
(REPLACE(UUID(), '-', ''), 'mbti', 'istj', 'ISTJ', 'ISTJ-检查员型', 1, 1, 'system', NOW(), 'system', NOW(), 0, '内倾感觉思维判断 - 一丝不苟的检查者'),
(REPLACE(UUID(), '-', ''), 'mbti', 'isfj', 'ISFJ', 'ISFJ-照顾者型', 2, 1, 'system', NOW(), 'system', NOW(), 0, '内倾感觉情感判断 - 忠诚的照顾者'),
(REPLACE(UUID(), '-', ''), 'mbti', 'infj', 'INFJ', 'INFJ-博爱型', 3, 1, 'system', NOW(), 'system', NOW(), 0, '内倾直觉情感判断 - 富有洞察力的博爱者'),
(REPLACE(UUID(), '-', ''), 'mbti', 'intj', 'INTJ', 'INTJ-专家型', 4, 1, 'system', NOW(), 'system', NOW(), 0, '内倾直觉思维判断 - 独立的战略家'),
(REPLACE(UUID(), '-', ''), 'mbti', 'istp', 'ISTP', 'ISTP-冒险家型', 5, 1, 'system', NOW(), 'system', NOW(), 0, '内倾感觉思维知觉 - 灵活的问题解决者'),
(REPLACE(UUID(), '-', ''), 'mbti', 'isfp', 'ISFP', 'ISFP-艺术家型', 6, 1, 'system', NOW(), 'system', NOW(), 0, '内倾感觉情感知觉 - 敏感的艺术家'),
(REPLACE(UUID(), '-', ''), 'mbti', 'infp', 'INFP', 'INFP-哲学家型', 7, 1, 'system', NOW(), 'system', NOW(), 0, '内倾直觉情感知觉 - 理想主义的哲学家'),
(REPLACE(UUID(), '-', ''), 'mbti', 'intp', 'INTP', 'INTP-学者型', 8, 1, 'system', NOW(), 'system', NOW(), 0, '内倾直觉思维知觉 - 好奇的分析师'),
(REPLACE(UUID(), '-', ''), 'mbti', 'estp', 'ESTP', 'ESTP-挑战者型', 9, 1, 'system', NOW(), 'system', NOW(), 0, '外倾感觉思维知觉 - 大胆的冒险者'),
(REPLACE(UUID(), '-', ''), 'mbti', 'esfp', 'ESFP', 'ESFP-表演者型', 10, 1, 'system', NOW(), 'system', NOW(), 0, '外倾感觉情感知觉 - 热情的表演者'),
(REPLACE(UUID(), '-', ''), 'mbti', 'enfp', 'ENFP', 'ENFP-公关型', 11, 1, 'system', NOW(), 'system', NOW(), 0, '外倾直觉情感知觉 - 充满热情的社交家'),
(REPLACE(UUID(), '-', ''), 'mbti', 'entp', 'ENTP', 'ENTP-智多星型', 12, 1, 'system', NOW(), 'system', NOW(), 0, '外倾直觉思维知觉 - 机智的辩论家'),
(REPLACE(UUID(), '-', ''), 'mbti', 'estj', 'ESTJ', 'ESTJ-管家型', 13, 1, 'system', NOW(), 'system', NOW(), 0, '外倾感觉思维判断 - 高效的组织者'),
(REPLACE(UUID(), '-', ''), 'mbti', 'esfj', 'ESFJ', 'ESFJ-主人型', 14, 1, 'system', NOW(), 'system', NOW(), 0, '外倾感觉情感判断 - 热情的主人'),
(REPLACE(UUID(), '-', ''), 'mbti', 'enfj', 'ENFJ', 'ENFJ-教导型', 15, 1, 'system', NOW(), 'system', NOW(), 0, '外倾直觉情感判断 - 鼓舞人心的领导者'),
(REPLACE(UUID(), '-', ''), 'mbti', 'entj', 'ENTJ', 'ENTJ-统帅型', 16, 1, 'system', NOW(), 'system', NOW(), 0, '外倾直觉思维判断 - 果断的指挥官');
-- ============================================================================
-- 3. 性别数据初始化
-- ============================================================================
INSERT INTO t_dictionary (
id, dict_type, dict_code, dict_name, dict_value, sort_order, status,
create_by, create_time, update_by, update_time, is_deleted, remarks
) VALUES
(REPLACE(UUID(), '-', ''), 'gender', 'male', '', '', 1, 1, 'system', NOW(), 'system', NOW(), 0, '性别:男'),
(REPLACE(UUID(), '-', ''), 'gender', 'female', '', '', 2, 1, 'system', NOW(), 'system', NOW(), 0, '性别:女'),
(REPLACE(UUID(), '-', ''), 'gender', 'secret', '保密', '保密', 3, 1, 'system', NOW(), 'system', NOW(), 0, '性别:保密'),
(REPLACE(UUID(), '-', ''), 'gender', 'other', '其他', '其他', 4, 1, 'system', NOW(), 'system', NOW(), 0, '性别:其他');
-- ============================================================================
-- 初始化完成
-- ============================================================================
COMMIT;
SELECT '字典数据初始化完成' AS result;
@@ -1,24 +0,0 @@
-- ============================================================================
-- 迁移脚本: 添加 ideal_life 字段到 t_user_profile 表
-- 日期: 2025-12-22
-- 描述: 为用户档案表添加理想生活状态字段
-- ============================================================================
-- 检查字段是否存在,不存在则添加
SET @dbname = DATABASE();
SET @tablename = 't_user_profile';
SET @columnname = 'ideal_life';
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @dbname
AND TABLE_NAME = @tablename
AND COLUMN_NAME = @columnname
) > 0,
'SELECT 1',
CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' TEXT COMMENT ''理想生活状态'' AFTER future_vision')
));
PREPARE alterIfNotExists FROM @preparedStatement;
EXECUTE alterIfNotExists;
DEALLOCATE PREPARE alterIfNotExists;