若依的代码生成功能一直是这个系统的重要核心功能,它能极大的简化开发流程,我们将会用它来新增一个模块
1,新增模块
首先复制一个模块如ruoyi-system
我们将新模块粘贴到同级目录下,并命名为ruoyi-ai
2,修改配置
首先是新模块的pom.xml,修改描述和模块id
application.yml修改端口和应用名:
启动类名称也修改一下
3,nacos注册
在nacos上新增ruoyi-ai的yml文件配置
4,新建数据表
我们新增的功能需要能够进行ai对话的管理,并且留下接口为后续的对话界面做准备
数据表设计规范:
必备字段
create_dept 创建部门 用于标记数据所属部门 为后续数据审计数据权限使用
create_by 创建人 用于标记数据创建人 为后续数据审计数据权限使用
create_time 创建时间 用于标记数据创建时间 为后续数据审计 数据排序 问题查找使用
update_by 修改人 用于标记数据修改人 为后续数据审计 问题查找使用
update_time 修改时间 用于标记数据修改时间 为后续数据审计 问题查找使用
可选字段
tenant_id 租户ID 标记数据所属租户 如不需要租户可在yml关闭租户功能或者放行单表
del_flag 删除标记 逻辑删除字段 用于标记数据的逻辑删除状态 如果不加为真实删除 注意必须在数据库设置默认值为0
version 乐观锁字段 用于标记数据版本 注意标注默认值从什么版本开始 建议标注0
CREATE TABLE ai_conversation (
id bigint NOT NULL COMMENT '主键',
tenant_id varchar(20) NULL DEFAULT '000000' COMMENT '租户编号',
title varchar(255) NULL DEFAULT NULL COMMENT '对话标题',
status varchar(32) NULL DEFAULT 'active' COMMENT '状态(active/archived)',
start_time datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '开始时间',
end_time datetime NULL DEFAULT NULL COMMENT '结束时间',
del_flag int(0) NULL DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)',
version int NULL DEFAULT 0 COMMENT '乐观锁版本',
create_dept bigint NULL DEFAULT NULL COMMENT '创建部门',
create_by bigint NULL DEFAULT NULL COMMENT '创建人',
create_time datetime NULL DEFAULT NULL COMMENT '创建时间',
update_by bigint NULL DEFAULT NULL COMMENT '更新人',
update_time datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB COMMENT = 'AI对话会话表';
CREATE TABLE ai_message (
id bigint NOT NULL COMMENT '主键',
tenant_id varchar(20) NULL DEFAULT '000000' COMMENT '租户编号',
conversation_id bigint NOT NULL COMMENT '所属会话ID',
sender_type varchar(16) NOT NULL COMMENT '发送方类型(user/ai)',
content text NOT NULL COMMENT '消息内容',
token_count int NULL DEFAULT 0 COMMENT 'Token计数',
order_no int NOT NULL COMMENT '消息顺序号',
del_flag int(0) NULL DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)',
version int NULL DEFAULT 0 COMMENT '乐观锁版本',
create_dept bigint NULL DEFAULT NULL COMMENT '创建部门',
create_by bigint NULL DEFAULT NULL COMMENT '创建人',
create_time datetime NULL DEFAULT NULL COMMENT '创建时间',
update_by bigint NULL DEFAULT NULL COMMENT '更新人',
update_time datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (id) USING BTREE,
INDEX idx_conversation (conversation_id) USING BTREE
) ENGINE = InnoDB COMMENT = 'AI对话消息表';
5,代码生成
启动项目并打开代码生成功能,导入数据表并写入如下配置:
接下来将代码导出得到如下文件:
把sql导入并将main下的文件放到后端相应位置,vue下文件放到前端相应位置
6,测试运行
我们启动后发现多出了相应的功能
后续开发在这个模式上进行扩展