# 自然语言查询 **Repository Path**: tangx0809/natural-language-query ## Basic Information - **Project Name**: 自然语言查询 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-03 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 组件管理平台(前后端分离项目) 本仓库为一个**组件 / 产品信息管理与下载平台**,采用前后端分离架构,包含: - **前端**:基于 `Vue 3 + Vite` 搭建的单页应用,使用 Naive UI、Pinia、Vue Router 等技术构建管理后台与展示页面,并集成 3D 模型预览能力。 - **后端**:基于 `Spring Boot 3` 的 RESTful 服务,集成 Spring Security + JWT 进行认证授权,使用 MyBatis-Plus 操作 MySQL 数据库,并提供产品、分类、文件格式、下载资源等领域模型的接口。 - **数据库初始化**:提供 MySQL 初始化脚本与 Flyway 迁移脚本,用于创建必要的表结构。 --- ## 项目结构 ```text 无偿小项目/ ├── README.md # 项目总说明(当前文件) └── 源代码/ ├── README.md # 早期说明(编码格式可能为 UTF-16,可忽略) ├── mysql-init/ │ └── init.sql # MySQL 初始化 SQL(建库建表/初始化数据) ├── 前端/ # 前端工程(Vue 3 + Vite) │ ├── package.json │ ├── vite.config.js │ ├── Dockerfile # 前端打包镜像配置 │ ├── nginx.conf # 前端容器内 Nginx 配置 │ ├── public/ # 静态资源(Logo、Vite 图标、WebIFC wasm 等) │ └── src/ │ ├── api/ # 与后端交互的接口封装(auth、products、taxonomy 等) │ ├── assets/ # 静态资源(例如 3D 模型 1.fbx 等) │ ├── components/ # 通用组件(头部、底部、3D 预览、富文本编辑器等) │ ├── router/ # 前端路由配置 │ ├── stores/ # Pinia 状态管理(用户、产品、分类/树形结构等) │ ├── utils/ # 工具函数(请求封装、图片地址处理等) │ └── views/ # 页面视图(主页、分类、产品详情、登录、后台管理等) └── 后端/ # 后端工程(Spring Boot) ├── pom.xml ├── Dockerfile # 后端打包镜像配置 ├── src/ │ ├── main/ │ │ ├── java/com/stx/componet/ │ │ │ ├── ComponetApplication.java # Spring Boot 启动类 │ │ │ ├── config/ # MyBatis-Plus、Web MVC 等配置 │ │ │ ├── controller/ # 认证、分类、产品、文件、分类树等控制器 │ │ │ ├── dto/ # 接口层 DTO / 请求响应对象 │ │ │ ├── entity/ # 实体映射(Category、Product、User 等) │ │ │ ├── mapper/ # MyBatis-Plus Mapper 接口 │ │ │ ├── service/ # 领域服务及实现 │ │ │ ├── security/ # Spring Security + JWT 配置与工具 │ │ │ ├── handler/ # 全局异常处理等 │ │ │ └── util/ # JWT 工具等 │ │ └── resources/ │ │ ├── application.yml # 应用配置(数据源、端口等) │ │ ├── db/migration/ # Flyway 迁移脚本(V1~V4) │ │ └── mapper/ # MyBatis XML 映射文件 │ └── test/ # 单元测试与数据初始化 ``` --- ## 技术栈概览 - **前端** - 框架:Vue 3 - 构建工具:Vite - UI 组件库:Naive UI - 状态管理:Pinia - 路由:Vue Router - HTTP 客户端:Axios - 富文本:Quill - 3D 模型 & 可视化:Three.js、TroisJS、vue-3d-loader、WebIFC 相关组件 - **后端** - 框架:Spring Boot 3(Java 17) - 安全:Spring Security + JWT - ORM:MyBatis-Plus - 数据库:MySQL - 数据迁移:Flyway(`db/migration` 下的 V1~V4 脚本) - 其他:Lombok、Jsoup、epublib 等 --- ## 快速开始 > 说明:下面的命令均假设你已经安装了对应的运行环境(Node.js、Java 17、Maven、MySQL、Docker 等),如未安装,请先根据自身环境调整。 ### 1. 数据库准备 1. 在 MySQL 中创建数据库(名称可自定,例如 `componet`)。 2. 执行 `源代码/mysql-init/init.sql` 或根据 `后端/src/main/resources/db/migration` 中的脚本创建表结构。 3. 在 `后端/src/main/resources/application.yml` 中配置正确的数据库连接信息(URL、用户名、密码等)。 ### 2. 启动后端服务(本地方式) ```bash cd 源代码/后端 mvn clean package mvn spring-boot:run ``` 默认端口以 `application.yml` 为准(典型为 `8080` 或自定义端口),前端通过该接口地址访问。 ### 3. 启动前端项目(本地方式) ```bash cd 源代码/前端 npm install # 或 pnpm install / yarn,根据你本机习惯选择 npm run dev ``` Vite 默认在 `http://localhost:5173` 启动开发服务器,可在 `.env` 或 `src/utils/request.js` 中调整后端 API 根地址。 --- ## Docker / 容器部署(示意) 本项目在前后端目录均提供了 `Dockerfile`,可以结合 `docker-compose` 或 K8s 进行容器化部署。典型思路如下: - **后端容器** - 基于 Maven 构建可执行 Jar。 - 使用 `openjdk:17-jdk` 等基础镜像运行 Spring Boot 应用。 - 通过环境变量注入数据库连接信息与 JWT 密钥等配置。 - **前端容器** - 使用 Node 镜像完成 `npm install && npm run build`。 - 使用 Nginx 镜像托管 `dist` 静态文件,并通过 `nginx.conf` 配置反向代理后端接口。 > 由于具体部署方案与环境相关(端口映射、域名、HTTPS 等),请根据实际运维环境自行补充 `docker-compose.yml` 或 K8s 配置。 --- ## 功能概述(基于代码结构推断) - **用户认证** - 登录接口、JWT 颁发与校验。 - 用户基本信息查询。 - **分类 / 分类树(Taxonomy)管理** - 分类树结构的增删改查。 - 分类与产品之间的关联。 - **产品管理** - 产品基本信息维护(名称、描述、封面、标签等)。 - 产品列表、详情、搜索与筛选。 - 产品关联的多种资源:图片、手册、3D 模型、可下载文件等。 - **文件与格式管理** - `FileFormat` 等实体对应不同文件格式。 - 文件上传接口及存储服务(如本地/对象存储,具体可在 `FileStorageService` 实现中查看)。 - **前台展示 & 后台管理** - 前台:主页、分类页、产品列表、产品详情、下载入口等。 - 后台:分类/产品/模型管理界面、富文本编辑与 3D 模型预览等。 > 以上为根据目录推断的功能概览,具体业务逻辑可参考 `controller`、`service` 与前端 `views` 中的实现。 --- ## 后续可完善内容建议 - 在根目录补充 `docker-compose.yml`,一键启动 MySQL + 后端 + 前端。 - 在 `源代码/README.md` 或分别在 `前端/README.md`、`后端/README.md` 中丰富: - 接口文档 / API 列表(可结合 Swagger/OpenAPI)。 - 权限说明(角色、菜单、接口权限等)。 - 更详细的部署案例(测试环境 / 生产环境)。