-- ---------------------------- -- 1. 背调分类表 (main_back_category) -- ---------------------------- DROP TABLE IF EXISTS `main_back_category`; CREATE TABLE `main_back_category` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` varchar(255) NOT NULL COMMENT '分类名称', `price` decimal(10, 2) DEFAULT '0.00' COMMENT '分类价格', `status` char(1) DEFAULT '1' COMMENT '状态(0停用 1正常)', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='背调分类表'; -- ---------------------------- -- 2. 背调条款表 (main_back_clause) -- ---------------------------- DROP TABLE IF EXISTS `main_back_clause`; CREATE TABLE `main_back_clause` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `category_id` bigint NOT NULL COMMENT '所属分类ID', `name` varchar(255) NOT NULL COMMENT '条款名称', `type` varchar(50) DEFAULT NULL COMMENT '条款类型(字典:sys_clause_type)', `description` text COMMENT '条款描述', `price` decimal(10,2) DEFAULT '0.00' COMMENT '条款单价', `status` char(1) DEFAULT '1' COMMENT '状态(0停用 1正常)', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', PRIMARY KEY (`id`), KEY `idx_category_id` (`category_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='背调条款表'; -- ---------------------------- -- 3. 学员个人信息表 (main_student) -- ---------------------------- DROP TABLE IF EXISTS `main_student`; CREATE TABLE `main_student` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '学员ID', `name` varchar(50) NOT NULL COMMENT '姓名', `mobile` varchar(20) NOT NULL COMMENT '手机号', `id_card_number` varchar(50) DEFAULT NULL COMMENT '证件号码', `unique_code` varchar(32) NOT NULL COMMENT '背调/测评唯一码', `gender` char(1) DEFAULT '0' COMMENT '性别(0男 1女 2未知)', `avatar` bigint DEFAULT NULL COMMENT '头像URL', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '所属租户(默认平台)', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`), UNIQUE KEY `uk_mobile` (`mobile`), UNIQUE KEY `uk_unique_code` (`unique_code`), UNIQUE KEY `uk_id_card` (`id_card_number`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学员个人信息表'; -- ---------------------------- -- 4. 企业候选人关系表 (main_candidate) -- ---------------------------- DROP TABLE IF EXISTS `main_candidate`; CREATE TABLE `main_candidate` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `tenant_id` varchar(20) NOT NULL COMMENT '所属租户(企业ID)', `student_id` bigint NOT NULL COMMENT '关联学员ID', `source` varchar(50) DEFAULT NULL COMMENT '来源渠道', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_student_id` (`student_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业候选人关系表'; -- ---------------------------- -- 5. 背调订单表 (main_back_order) -- ---------------------------- DROP TABLE IF EXISTS `main_back_order`; CREATE TABLE `main_back_order` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `order_no` varchar(64) NOT NULL COMMENT '订单编号', `tenant_id` varchar(20) NOT NULL COMMENT '下单租户(企业ID)', `category_id` bigint DEFAULT NULL COMMENT '背调套餐ID', `category_name` varchar(255) DEFAULT NULL COMMENT '套餐名称快照', `total_amount` decimal(10, 2) DEFAULT '0.00' COMMENT '订单金额', `status` char(1) DEFAULT '0' COMMENT '订单状态(0待处理 1进行中 2已完成 3已退款)', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), UNIQUE KEY `uk_order_no` (`order_no`), KEY `idx_tenant_id` (`tenant_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='背调订单表'; -- ---------------------------- -- 6. 背调执行记录表 (main_back_record) -- ---------------------------- DROP TABLE IF EXISTS `main_back_record`; CREATE TABLE `main_back_record` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID', `order_id` bigint NOT NULL COMMENT '关联订单ID', `candidate_id` bigint NOT NULL COMMENT '关联企业候选人ID', `status` varchar(20) DEFAULT '未完成' COMMENT '状态(完成、未完成、失败)', `report_url` varchar(500) DEFAULT NULL COMMENT '报告地址', `finish_time` datetime DEFAULT NULL COMMENT '完成时间', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), KEY `idx_order_id` (`order_id`), KEY `idx_candidate_id` (`candidate_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='背调执行记录表'; -- ---------------------------- -- 7. 企业入驻申请表 (main_company_apply) -- ---------------------------- DROP TABLE IF EXISTS `main_company_apply`; CREATE TABLE `main_company_apply` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `apply_no` varchar(64) DEFAULT NULL COMMENT '申请编号', `company_name` varchar(255) DEFAULT NULL COMMENT '企业名称', `official_account` varchar(100) DEFAULT NULL COMMENT '公众号名称', `office_address` varchar(500) DEFAULT NULL COMMENT '办公地址', `credit_code` varchar(50) DEFAULT NULL COMMENT '统一社会信用代码', `auth_letter` bigint DEFAULT NULL COMMENT '授权委托书(文件ID)', `avatar` bigint DEFAULT NULL COMMENT '企业logo', `surname` varchar(50) DEFAULT NULL COMMENT '联系人姓', `name` varchar(50) DEFAULT NULL COMMENT '联系人名', `mobile` varchar(20) DEFAULT NULL COMMENT '联系电话', `apply_status` tinyint DEFAULT '0' COMMENT '申请状态(0待审核 1已通过 2已驳回)', `audit_id` bigint DEFAULT NULL COMMENT '审核ID', `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户ID', `reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_apply_no` (`apply_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业入驻申请表'; -- ---------------------------- -- 8. 岗位发布申请表 (main_post_apply) -- ---------------------------- DROP TABLE IF EXISTS `main_post_apply`; CREATE TABLE `main_post_apply` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `apply_no` varchar(64) DEFAULT NULL COMMENT '申请编号', `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户ID', `post_name` varchar(255) DEFAULT NULL COMMENT '岗位名称', `company_name` varchar(255) DEFAULT NULL COMMENT '公司名称', `post_description` varchar(500) DEFAULT NULL COMMENT '岗位描述', `work_province` varchar(100) DEFAULT NULL COMMENT '工作省份', `work_city` varchar(100) DEFAULT NULL COMMENT '工作城市', `work_district` varchar(100) DEFAULT NULL COMMENT '工作区县', `work_address` varchar(500) DEFAULT NULL COMMENT '工作详细地址', `post_type` varchar(50) DEFAULT NULL COMMENT '岗位类型(字典值)', `education_requirement` varchar(50) DEFAULT NULL COMMENT '学历要求(字典值)', `salary_type` varchar(50) DEFAULT NULL COMMENT '薪资类型(字典值)', `salary_range` varchar(100) DEFAULT NULL COMMENT '薪资范围', `recruit_num` int DEFAULT NULL COMMENT '招聘人数', `registration_start_date` datetime DEFAULT NULL COMMENT '报名开始时间', `registration_end_date` datetime DEFAULT NULL COMMENT '报名结束时间', `is_urgent` tinyint(1) DEFAULT '0' COMMENT '是否急招', `school_requirement` varchar(50) DEFAULT NULL COMMENT '学校要求(字典值)', `gender_requirement` varchar(50) DEFAULT NULL COMMENT '性别要求(字典值)', `grade_requirement` varchar(50) DEFAULT NULL COMMENT '年级要求(字典值)', `arrival_time` varchar(50) DEFAULT NULL COMMENT '到岗时间(字典值)', `internship_duration` varchar(50) DEFAULT NULL COMMENT '实习时长(字典值)', `willing_to_travel` tinyint(1) DEFAULT '0' COMMENT '是否愿意出差', `welfare_tags` varchar(500) DEFAULT NULL COMMENT '福利标签', `job_requirement` text COMMENT '岗位要求', `post_level` varchar(50) DEFAULT NULL COMMENT '岗位等级(字典值)', `assessment_time` varchar(50) DEFAULT NULL COMMENT '测评时长(分钟)', `grade_a` decimal(10,2) DEFAULT NULL COMMENT '能力A及格分', `grade_b` decimal(10,2) DEFAULT NULL COMMENT '能力B及格分', `grade_c` decimal(10,2) DEFAULT NULL COMMENT '能力C及格分', `apply_status` tinyint DEFAULT '0' COMMENT '申请状态', `audit_id` bigint DEFAULT NULL COMMENT '审核ID', `post_id` bigint DEFAULT NULL COMMENT '对应已发布岗位ID', `reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_apply_no` (`apply_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位发布申请表'; -- ---------------------------- -- 9. 审核记录表 (main_audit) -- ---------------------------- DROP TABLE IF EXISTS `main_audit`; CREATE TABLE `main_audit` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `audit_type` tinyint DEFAULT NULL COMMENT '审核类型(1企业入驻 2岗位发布)', `target_id` bigint DEFAULT NULL COMMENT '审核目标ID', `audit_result` tinyint DEFAULT NULL COMMENT '审核结果(1通过 2驳回)', `audit_remark` varchar(500) DEFAULT NULL COMMENT '审核备注', `deposit` decimal(10,2) DEFAULT NULL COMMENT '保证金', `final_payment` decimal(10,2) DEFAULT NULL COMMENT '尾款', `audit_time` datetime DEFAULT NULL COMMENT '审核时间', `audit_by` bigint DEFAULT NULL COMMENT '审核人ID', `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户ID', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_target_id` (`target_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审核记录表'; -- ---------------------------- -- 10. 字典数据 -- ---------------------------- -- 字典类型 DELETE FROM `sys_dict_type` WHERE `dict_type` = 'sys_clause_type'; INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (null, '背调条款类型', 'sys_clause_type', '0', 1, sysdate(), 1, sysdate(), '背调条款类型列表'); -- 字典数据 DELETE FROM `sys_dict_data` WHERE `dict_type` = 'sys_clause_type'; INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (null, 1, '身份风险', '身份风险', 'sys_clause_type', '', 'primary', 'N', '0', 1, sysdate(), 1, sysdate(), '身份风险'); INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (null, 2, '职业风险', '职业风险', 'sys_clause_type', '', 'warning', 'N', '0', 1, sysdate(), 1, sysdate(), '职业风险'); INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (null, 3, '能力评估', '能力评估', 'sys_clause_type', '', 'success', 'N', '0', 1, sysdate(), 1, sysdate(), '能力评估'); CREATE TABLE `sys_tag` ( `id` bigint NOT NULL COMMENT '主键ID', `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标签名称', `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '标签说明', `status` tinyint DEFAULT '0' COMMENT '状态 (0:启用, 1:停用)', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='标签定义表'; CREATE TABLE `main_position` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '岗位ID', `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户ID', `post_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '岗位名称', `post_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '岗位描述', `work_province` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工作省份', `work_city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工作城市', `work_district` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工作区县', `work_address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '详细地址', `post_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '岗位类型(字典:main_position_type)', `education_requirement` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '学历要求', `salary_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '薪资类型', `salary_range` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '薪资范围', `recruit_num` int NOT NULL COMMENT '招聘人数', `registration_start_date` date DEFAULT NULL COMMENT '报名开始时间', `registration_end_date` date DEFAULT NULL COMMENT '报名结束时间', `is_urgent` tinyint(1) DEFAULT '0' COMMENT '是否急招(0-否 1-是)', `school_requirement` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '学校要求(字典:main_education)', `gender_requirement` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '性别要求(字典:sys_user_sex)', `grade_requirement` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '年级要求(字典:main_experience)', `arrival_time` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '到岗时间(字典:main_arrival_time)', `internship_duration` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '实习时长(字典:main_internship_duration)', `willing_to_travel` tinyint(1) DEFAULT '0' COMMENT '是否愿意出差(0-否 1-是)', `welfare_tags` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '福利标签', `job_requirement` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '岗位要求', `post_level` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '岗位等级(字典:(main_position_level))', `assessment_time` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '测评时长', `grade_a` decimal(10,2) DEFAULT NULL COMMENT '能力A及格分', `grade_b` decimal(10,2) DEFAULT NULL COMMENT '能力B及格分', `grade_c` decimal(10,2) DEFAULT NULL COMMENT '能力C及格分', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='岗位表(这是要发布出去的,与sys_post不同)'; CREATE TABLE `main_student` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '学员ID', `student_no` varchar(30) NOT NULL COMMENT '学员展示编号(如U2023071567)', `name` varchar(50) NOT NULL COMMENT '学员姓名', `mobile` varchar(11) NOT NULL COMMENT '联络手机号', `email` varchar(50) DEFAULT '' COMMENT '电子邮箱', `id_card_number` varchar(18) DEFAULT '' COMMENT '证件号码', `gender` char(1) DEFAULT '0' COMMENT '性别(0男 1女 2未知)', `avatar` bigint DEFAULT NULL COMMENT '头像ID(关联oss表)', `user_type` char(1) DEFAULT '2' COMMENT '用户类型(1付费用户 2普通用户 3黑名单)', `total_amount` decimal(10,2) DEFAULT '0.00' COMMENT '历史累计消费金额', `availability` varchar(50) DEFAULT '' COMMENT '求职状态/到岗时间(如:一周内到岗)', `job_intention` varchar(255) DEFAULT '' COMMENT '求职意向(岗位ID或名称,逗号分隔)', `job_type` varchar(50) DEFAULT NULL COMMENT '建议类型(1全职 2实习 3兼职)', `school_name` varchar(100) DEFAULT '' COMMENT '毕业/就读院校', `education` varchar(50) DEFAULT '' COMMENT '学历要求(字典:main_education)', `grade` varchar(50) DEFAULT '' COMMENT '当前年级(字典:main_experience)', `internship_duration` varchar(50) DEFAULT '' COMMENT '实习时长(字典:main_internship_duration)', `resume_file` bigint DEFAULT NULL COMMENT '个人简历附件ID(关联oss表)', `status` char(1) DEFAULT '0' COMMENT '账号状态(0正常 1停用)', `del_flag` char(1) DEFAULT '0' COMMENT '逻辑删除标志(0存在 1删除)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '所属租户/企业编号', `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '注册/创建日期', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '最后信息更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注信息', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_student_no` (`student_no`) USING BTREE, UNIQUE KEY `uk_mobile` (`mobile`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='学员简历与个人信息总表'; -- 1. 学员教育经历表 CREATE TABLE IF NOT EXISTS `main_student_education` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `student_id` bigint(20) NOT NULL COMMENT '学员ID (关联 main_student.id)', `school` varchar(100) DEFAULT NULL COMMENT '学校名称', `education` varchar(50) DEFAULT NULL COMMENT '学历', `start_time` varchar(20) DEFAULT NULL COMMENT '开始时间 (如 2022.9)', `end_time` varchar(20) DEFAULT NULL COMMENT '结束时间 (如 2026.7)', `major` varchar(100) DEFAULT NULL COMMENT '专业', `campus_experience` text DEFAULT NULL COMMENT '在校经历描述', `tenant_id` bigint(20) DEFAULT '0' COMMENT '租户ID', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), KEY `idx_student_id` (`student_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学员教育经历表'; -- 2. 学员工作经历表 CREATE TABLE IF NOT EXISTS `main_student_experience` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `student_id` bigint(20) NOT NULL COMMENT '学员ID (关联 main_student.id)', `company` varchar(100) DEFAULT NULL COMMENT '公司名称', `industry` varchar(100) DEFAULT NULL COMMENT '所属行业', `start_time` varchar(20) DEFAULT NULL COMMENT '开始时间', `end_time` varchar(20) DEFAULT NULL COMMENT '结束时间', `is_internship` tinyint(1) DEFAULT '0' COMMENT '是否实习 (0否 1是)', `job_title` varchar(100) DEFAULT NULL COMMENT '职位名称', `department` varchar(100) DEFAULT NULL COMMENT '所属部门', `work_content` text DEFAULT NULL COMMENT '工作内容描述', `tenant_id` bigint(20) DEFAULT '0' COMMENT '租户ID', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), KEY `idx_student_id` (`student_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学员工作经历表'; -- 3. 学员项目经历表 CREATE TABLE IF NOT EXISTS `main_student_project` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `student_id` bigint(20) NOT NULL COMMENT '学员ID (关联 main_student.id)', `project_name` varchar(100) DEFAULT NULL COMMENT '项目名称', `role` varchar(100) DEFAULT NULL COMMENT '担任角色', `start_time` varchar(20) DEFAULT NULL COMMENT '开始时间', `end_time` varchar(20) DEFAULT NULL COMMENT '结束时间', `description` text DEFAULT NULL COMMENT '项目描述', `achievement` text DEFAULT NULL COMMENT '业绩描述', `link` varchar(255) DEFAULT NULL COMMENT '项目链接', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', PRIMARY KEY (`id`), KEY `idx_student_id` (`student_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学员项目经历表'; -- ===================================================== -- 1. 坐席配置表 -- 对应前端: SeatConfig.vue -- ===================================================== DROP TABLE IF EXISTS cs_seat_config; CREATE TABLE cs_seat_config ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '坐席ID', seat_name VARCHAR(50) NOT NULL COMMENT '坐席名称(如:客服小A)', avatar VARCHAR(500) DEFAULT NULL COMMENT '坐席头像URL', module VARCHAR(20) NOT NULL COMMENT '负责模块: mini(小程序), merchant(商家), all(全部)', status TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态: 0=停用, 1=启用', create_dept bigint DEFAULT NULL COMMENT '创建部门', create_time datetime DEFAULT NULL COMMENT '创建时间', create_by bigint DEFAULT NULL COMMENT '上传人', update_time datetime DEFAULT NULL COMMENT '更新时间', update_by bigint DEFAULT NULL COMMENT '更新人', PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='坐席配置表'; -- 坐席与客服人员关联表 DROP TABLE IF EXISTS cs_seat_waiter; CREATE TABLE cs_seat_waiter ( id BIGINT NOT NULL AUTO_INCREMENT, seat_id BIGINT NOT NULL COMMENT '坐席ID', user_id BIGINT NOT NULL COMMENT '客服用户ID(关联若依sys_user)', create_dept bigint DEFAULT NULL COMMENT '创建部门', create_time datetime DEFAULT NULL COMMENT '创建时间', create_by bigint DEFAULT NULL COMMENT '上传人', update_time datetime DEFAULT NULL COMMENT '更新时间', update_by bigint DEFAULT NULL COMMENT '更新人', PRIMARY KEY (id), KEY idx_seat_id (seat_id), KEY idx_user_id (user_id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='坐席-客服关联表'; -- 初始数据 INSERT INTO cs_seat_config (seat_name, avatar, module, status) VALUES ('客服小A', 'https://api.dicebear.com/7.x/avataaars/svg?seed=A', '小程序', 1), ('客服小B', 'https://api.dicebear.com/7.x/avataaars/svg?seed=B', '官网', 1), ('客服小C', 'https://api.dicebear.com/7.x/avataaars/svg?seed=C', '小程序', 0); -- ===================================================== -- 2. 会话表(一个 User/商家 与客服建立一个会话) -- ===================================================== DROP TABLE IF EXISTS cs_session; CREATE TABLE cs_session ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '会话ID', session_no VARCHAR(32) NOT NULL UNIQUE COMMENT '会话编号,唯一,用于WS频道路由', session_type TINYINT(1) NOT NULL COMMENT '会话类型: 1=小程序用户, 2=PC商家', from_user_id BIGINT NOT NULL COMMENT '发起用户ID(小程序用户或商家用户ID)', from_user_name VARCHAR(100) DEFAULT '' COMMENT '发起方昵称', from_user_avatarVARCHAR(500) DEFAULT '' COMMENT '发起方头像', seat_id BIGINT DEFAULT NULL COMMENT '当前分配坐席ID', waiter_id BIGINT DEFAULT NULL COMMENT '当前接待客服ID', status TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态: 1=进行中, 2=已结束', last_msg VARCHAR(500) DEFAULT '' COMMENT '最后一条消息摘要(用于列表展示)', last_msg_time DATETIME DEFAULT NULL COMMENT '最后消息时间', unread_count INT NOT NULL DEFAULT 0 COMMENT '客服侧未读消息数', create_dept bigint DEFAULT NULL COMMENT '创建部门', create_time datetime DEFAULT NULL COMMENT '创建时间', create_by bigint DEFAULT NULL COMMENT '上传人', update_time datetime DEFAULT NULL COMMENT '更新时间', update_by bigint DEFAULT NULL COMMENT '更新人', PRIMARY KEY (id), KEY idx_from_user (from_user_id), KEY idx_waiter (waiter_id), KEY idx_status (status) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客服会话表'; -- ===================================================== -- 3. 消息表(核心表,存储所有聊天消息) -- ===================================================== DROP TABLE IF EXISTS cs_message; CREATE TABLE cs_message ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '消息ID', session_id BIGINT NOT NULL COMMENT '归属会话ID', msg_no VARCHAR(32) NOT NULL UNIQUE COMMENT '消息唯一编号(客户端生成,用于幂等)', sender_type TINYINT(1) NOT NULL COMMENT '发送方类型: 1=用户/商家, 2=客服, 3=系统', sender_id BIGINT NOT NULL COMMENT '发送者ID', msg_type VARCHAR(20) NOT NULL COMMENT '消息类型: text/image/file/job_card/order_card/emoji', content TEXT DEFAULT NULL COMMENT '文本消息内容', file_url VARCHAR(500) DEFAULT NULL COMMENT '图片/文件URL', file_name VARCHAR(255) DEFAULT NULL COMMENT '文件原始名称', file_size BIGINT DEFAULT NULL COMMENT '文件大小(字节)', file_type VARCHAR(100) DEFAULT NULL COMMENT '文件MIME类型', payload JSON DEFAULT NULL COMMENT '卡片类消息的结构化数据(job_card/order_card的JSON)', status TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态: 1=正常, 2=已撤回', is_read TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已读: 0=未读, 1=已读', send_time DATETIME NOT NULL COMMENT '发送时间', create_dept bigint DEFAULT NULL COMMENT '创建部门', create_time datetime DEFAULT NULL COMMENT '创建时间', create_by bigint DEFAULT NULL COMMENT '上传人', update_time datetime DEFAULT NULL COMMENT '更新时间', update_by bigint DEFAULT NULL COMMENT '更新人', PRIMARY KEY (id), KEY idx_session (session_id), KEY idx_send_time (send_time), KEY idx_msg_type (msg_type) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='聊天消息表'; -- ===================================================== -- 4. 结算单(order_card)扩展表 -- 配合消息表中 msg_type='order_card' 的消息使用 -- 实现: 60秒倒计时自动失效 -- ===================================================== DROP TABLE IF EXISTS cs_order_card; CREATE TABLE cs_order_card ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '结算单ID', msg_id BIGINT NOT NULL COMMENT '关联消息ID', session_id BIGINT NOT NULL COMMENT '关联会话ID', order_name VARCHAR(200) NOT NULL COMMENT '项目名称', order_price DECIMAL(10, 2) NOT NULL COMMENT '支付金额', order_type VARCHAR(50) DEFAULT NULL COMMENT '订单类型说明', original_order_id BIGINT DEFAULT NULL COMMENT '关联平台真实订单ID', status VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT '状态: pending=待支付, paid=已支付, cancelled=已取消, expired=已失效', expire_time DATETIME NOT NULL COMMENT '结算单过期时间(发送时间+60s)', pay_time DATETIME DEFAULT NULL COMMENT '实际支付时间', create_dept bigint DEFAULT NULL COMMENT '创建部门', create_time datetime DEFAULT NULL COMMENT '创建时间', create_by bigint DEFAULT NULL COMMENT '上传人', update_time datetime DEFAULT NULL COMMENT '更新时间', update_by bigint DEFAULT NULL COMMENT '更新人', PRIMARY KEY (id), KEY idx_msg_id (msg_id), KEY idx_session (session_id), KEY idx_status (status), KEY idx_expire (expire_time) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='结算单表(order_card)'; -- ===================================================== -- 5. 工单表(客服工单管理) -- 对应前端: SeatConfig.vue 的工单子系统 -- ===================================================== DROP TABLE IF EXISTS cs_ticket; CREATE TABLE cs_ticket ( id VARCHAR(32) NOT NULL COMMENT '工单编号(如: 20991216194)', session_id BIGINT DEFAULT NULL COMMENT '关联会话ID(若来自在线沟通)', user_id VARCHAR(50) NOT NULL COMMENT '反馈用户ID', user_name VARCHAR(100) NOT NULL COMMENT '反馈用户昵称', content TEXT NOT NULL COMMENT '反馈内容', source VARCHAR(20) NOT NULL COMMENT '反馈渠道: 小程序/商家', category VARCHAR(50) NOT NULL COMMENT '问题分类', status VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT '状态: pending=待处理, processing=处理中, completed=已完成, abandoned=已废弃', handler_id BIGINT DEFAULT NULL COMMENT '处理客服ID', handler_reply TEXT DEFAULT NULL COMMENT '客服处理回复', create_dept bigint DEFAULT NULL COMMENT '创建部门', create_time datetime DEFAULT NULL COMMENT '创建时间', create_by bigint DEFAULT NULL COMMENT '上传人', update_time datetime DEFAULT NULL COMMENT '更新时间', update_by bigint DEFAULT NULL COMMENT '更新人', PRIMARY KEY (id), KEY idx_user (user_id), KEY idx_status (status), KEY idx_source (source) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客服工单表'; -- ===================================================== -- 7. 消息已读记录表(精确追踪已读状态) -- ===================================================== DROP TABLE IF EXISTS cs_read_record; CREATE TABLE cs_read_record ( id BIGINT NOT NULL AUTO_INCREMENT, session_id BIGINT NOT NULL COMMENT '会话ID', user_id BIGINT NOT NULL COMMENT '用户ID', last_read_msg_id BIGINT DEFAULT 0 COMMENT '已读到的消息ID', read_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, create_dept bigint DEFAULT NULL COMMENT '创建部门', create_time datetime DEFAULT NULL COMMENT '创建时间', create_by bigint DEFAULT NULL COMMENT '上传人', update_time datetime DEFAULT NULL COMMENT '更新时间', update_by bigint DEFAULT NULL COMMENT '更新人', PRIMARY KEY (id), UNIQUE KEY uk_session_user (session_id, user_id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='消息已读记录表';