441 lines
8.9 KiB
Markdown
441 lines
8.9 KiB
Markdown
|
|
# 项目改造说明文档
|
|||
|
|
|
|||
|
|
## 改造概述
|
|||
|
|
|
|||
|
|
本项目基于开源RuoYi-Vue框架(v3.9.0)进行深度定制,改造为"动动脑新闻管理系统" v1.0.0。
|
|||
|
|
|
|||
|
|
改造时间:2025年
|
|||
|
|
目标:将开源框架定制为公司专有系统,便于后续持续完善和扩展。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、改造内容清单
|
|||
|
|
|
|||
|
|
### 1. 项目基础信息改造
|
|||
|
|
|
|||
|
|
#### Maven项目配置
|
|||
|
|
- **GroupId**: `com.ruoyi` → `com.ddnai`
|
|||
|
|
- **ArtifactId**: `ruoyi` → `ry-news`
|
|||
|
|
- **Version**: `3.9.0` → `1.0.0`
|
|||
|
|
- **项目名称**: `若依管理系统` → `动动脑新闻系统`
|
|||
|
|
|
|||
|
|
#### 模块重命名
|
|||
|
|
| 原模块名 | 新模块名 | 说明 |
|
|||
|
|
|---------|---------|------|
|
|||
|
|
| ruoyi-admin | ry-news-admin | Web服务入口模块 |
|
|||
|
|
| ruoyi-framework | ry-news-framework | 框架核心模块 |
|
|||
|
|
| ruoyi-system | ry-news-system | 系统管理模块 |
|
|||
|
|
| ruoyi-common | ry-news-common | 通用工具模块 |
|
|||
|
|
| ruoyi-generator | ry-news-generator | 代码生成器模块 |
|
|||
|
|
| ruoyi-quartz | ry-news-quartz | 定时任务模块 |
|
|||
|
|
|
|||
|
|
### 2. Java包名重构
|
|||
|
|
|
|||
|
|
**完整重构路径:**
|
|||
|
|
```
|
|||
|
|
com.ruoyi.* → com.ddnai.*
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**涉及范围:**
|
|||
|
|
- 所有Java源文件的package声明
|
|||
|
|
- 所有import语句
|
|||
|
|
- MyBatis XML映射文件的namespace
|
|||
|
|
- Spring配置文件的扫描路径
|
|||
|
|
- 代码生成器模板
|
|||
|
|
|
|||
|
|
**文件修改数量:** 260+ Java文件
|
|||
|
|
|
|||
|
|
### 3. 品牌标识全面更换
|
|||
|
|
|
|||
|
|
#### 系统名称
|
|||
|
|
- `若依` → `动动脑`
|
|||
|
|
- `RuoYi` → `DDNAI` (英文标识)
|
|||
|
|
|
|||
|
|
#### 修改文件清单
|
|||
|
|
- ✅ 后端配置文件 (`application.yml`)
|
|||
|
|
- ✅ 启动Banner (`banner.txt`)
|
|||
|
|
- ✅ 前端配置 (`package.json`, `vue.config.js`, `settings.js`)
|
|||
|
|
- ✅ 数据库SQL脚本 (`ry_20250522.sql`)
|
|||
|
|
- ✅ README文档
|
|||
|
|
- ✅ 启动脚本 (`ry.bat`, `ry.sh`)
|
|||
|
|
|
|||
|
|
### 4. 配置文件调整
|
|||
|
|
|
|||
|
|
#### application.yml
|
|||
|
|
```yaml
|
|||
|
|
ruoyi:
|
|||
|
|
name: 动动脑新闻系统
|
|||
|
|
version: 1.0.0
|
|||
|
|
profile: D:/ddnai/uploadPath # 文件上传路径
|
|||
|
|
|
|||
|
|
referer:
|
|||
|
|
allowed-domains: localhost,127.0.0.1,ddnai.com,www.ddnai.com
|
|||
|
|
|
|||
|
|
logging:
|
|||
|
|
level:
|
|||
|
|
com.ddnai: debug # 日志包路径
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 代码生成器配置 (generator.yml)
|
|||
|
|
```yaml
|
|||
|
|
gen:
|
|||
|
|
author: ddnai
|
|||
|
|
packageName: com.ddnai.system
|
|||
|
|
tablePrefix: sys_,ddn_ # 支持新旧表前缀
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5. 数据库改造建议
|
|||
|
|
|
|||
|
|
#### 现有系统表
|
|||
|
|
保持原有`sys_`前缀,兼容现有数据结构:
|
|||
|
|
- sys_user (用户表)
|
|||
|
|
- sys_dept (部门表)
|
|||
|
|
- sys_role (角色表)
|
|||
|
|
- sys_menu (菜单表)
|
|||
|
|
- 等...
|
|||
|
|
|
|||
|
|
#### 新业务表(建议使用新前缀)
|
|||
|
|
```sql
|
|||
|
|
-- 新闻业务表使用 ddn_ 前缀
|
|||
|
|
CREATE TABLE ddn_news (...);
|
|||
|
|
CREATE TABLE ddn_category (...);
|
|||
|
|
CREATE TABLE ddn_tag (...);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 6. 前端改造
|
|||
|
|
|
|||
|
|
#### package.json
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"name": "ry-news",
|
|||
|
|
"version": "1.0.0",
|
|||
|
|
"description": "DDNAI新闻管理系统",
|
|||
|
|
"author": "DDNAI",
|
|||
|
|
"repository": {
|
|||
|
|
"type": "git",
|
|||
|
|
"url": "https://github.com/ddnai/ry-news.git"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 页面标题
|
|||
|
|
- 浏览器标题:`动动脑新闻管理系统`
|
|||
|
|
- 版权信息:`Copyright © 2025 动动脑(DDNAI). All Rights Reserved.`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、目录结构(改造后)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ry-news/
|
|||
|
|
├── ry-news-admin/ # 启动模块
|
|||
|
|
├── ry-news-framework/ # 框架核心
|
|||
|
|
├── ry-news-system/ # 系统管理
|
|||
|
|
├── ry-news-common/ # 通用工具
|
|||
|
|
├── ry-news-generator/ # 代码生成器
|
|||
|
|
├── ry-news-quartz/ # 定时任务
|
|||
|
|
├── ruoyi-ui/ # 前端项目(目录名未改,内部已全部定制)
|
|||
|
|
├── sql/ # 数据库脚本
|
|||
|
|
├── pom.xml # 主POM配置
|
|||
|
|
├── ry.bat # Windows启动脚本
|
|||
|
|
├── ry.sh # Linux启动脚本
|
|||
|
|
└── README.md # 项目说明
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、启动配置
|
|||
|
|
|
|||
|
|
### 1. 数据库配置
|
|||
|
|
|
|||
|
|
修改 `application-druid.yml`:
|
|||
|
|
```yaml
|
|||
|
|
spring:
|
|||
|
|
datasource:
|
|||
|
|
druid:
|
|||
|
|
master:
|
|||
|
|
url: jdbc:mysql://localhost:3306/ry_news?useUnicode=true&characterEncoding=utf8&...
|
|||
|
|
username: root
|
|||
|
|
password: 你的密码
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. Redis配置
|
|||
|
|
|
|||
|
|
修改 `application.yml`:
|
|||
|
|
```yaml
|
|||
|
|
spring:
|
|||
|
|
redis:
|
|||
|
|
host: localhost
|
|||
|
|
port: 6379
|
|||
|
|
password: 你的密码
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 文件上传路径
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
ruoyi:
|
|||
|
|
profile: D:/ddnai/uploadPath # Windows
|
|||
|
|
# profile: /home/ddnai/uploadPath # Linux
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. JWT密钥(必须修改!)
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
token:
|
|||
|
|
secret: 请修改为你自己的32位随机字符串
|
|||
|
|
expireTime: 30
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、编译和启动
|
|||
|
|
|
|||
|
|
### 后端启动
|
|||
|
|
|
|||
|
|
#### 方式一:IDE启动
|
|||
|
|
1. 打开 `ry-news-admin/src/main/java/com/ddnai/RyNewsApplication.java`
|
|||
|
|
2. 右键运行 Run 或 Debug
|
|||
|
|
|
|||
|
|
#### 方式二:命令行启动
|
|||
|
|
```bash
|
|||
|
|
# 编译打包
|
|||
|
|
mvn clean package -Dmaven.test.skip=true
|
|||
|
|
|
|||
|
|
# 启动(Windows)
|
|||
|
|
ry.bat
|
|||
|
|
|
|||
|
|
# 启动(Linux)
|
|||
|
|
./ry.sh start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 方式三:JAR包启动
|
|||
|
|
```bash
|
|||
|
|
cd ry-news-admin/target
|
|||
|
|
java -jar ry-news-admin.jar
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 前端启动
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd ruoyi-ui
|
|||
|
|
|
|||
|
|
# 安装依赖(首次)
|
|||
|
|
npm install
|
|||
|
|
|
|||
|
|
# 开发环境启动
|
|||
|
|
npm run dev
|
|||
|
|
|
|||
|
|
# 生产环境打包
|
|||
|
|
npm run build:prod
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
访问地址:`http://localhost:80`
|
|||
|
|
|
|||
|
|
默认账号:`admin/admin123`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 五、代码生成器使用
|
|||
|
|
|
|||
|
|
### 1. 配置数据源
|
|||
|
|
|
|||
|
|
在 `generator.yml` 中已配置:
|
|||
|
|
```yaml
|
|||
|
|
gen:
|
|||
|
|
author: ddnai
|
|||
|
|
packageName: com.ddnai.system
|
|||
|
|
tablePrefix: sys_,ddn_
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 使用步骤
|
|||
|
|
|
|||
|
|
1. 登录系统
|
|||
|
|
2. 进入【系统工具】→【代码生成】
|
|||
|
|
3. 点击【导入】选择数据表
|
|||
|
|
4. 点击【生成】下载代码
|
|||
|
|
5. 解压到对应模块目录
|
|||
|
|
|
|||
|
|
### 3. 生成的代码包含
|
|||
|
|
|
|||
|
|
- Java实体类 (Domain)
|
|||
|
|
- Mapper接口和XML
|
|||
|
|
- Service接口和实现
|
|||
|
|
- Controller控制器
|
|||
|
|
- Vue前端页面
|
|||
|
|
- SQL菜单脚本
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 六、后续开发建议
|
|||
|
|
|
|||
|
|
### 1. Git版本控制
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 建议的分支策略
|
|||
|
|
git remote add origin [你的仓库地址]
|
|||
|
|
git branch -M master
|
|||
|
|
git push -u origin master
|
|||
|
|
|
|||
|
|
# 创建开发分支
|
|||
|
|
git checkout -b develop
|
|||
|
|
|
|||
|
|
# 功能分支
|
|||
|
|
git checkout -b feature/news-module
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 开发规范
|
|||
|
|
|
|||
|
|
#### 包命名规范
|
|||
|
|
```
|
|||
|
|
com.ddnai.{module}.{layer}
|
|||
|
|
|
|||
|
|
示例:
|
|||
|
|
com.ddnai.news.domain # 新闻实体
|
|||
|
|
com.ddnai.news.mapper # 数据访问
|
|||
|
|
com.ddnai.news.service # 业务逻辑
|
|||
|
|
com.ddnai.news.controller # 控制器
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 数据库表命名
|
|||
|
|
```
|
|||
|
|
ddn_{module}_{table}
|
|||
|
|
|
|||
|
|
示例:
|
|||
|
|
ddn_news_article # 新闻文章表
|
|||
|
|
ddn_news_category # 新闻分类表
|
|||
|
|
ddn_news_tag # 新闻标签表
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 接口规范
|
|||
|
|
```
|
|||
|
|
GET /news/article/list # 查询列表
|
|||
|
|
GET /news/article/{id} # 查询详情
|
|||
|
|
POST /news/article # 新增
|
|||
|
|
PUT /news/article # 修改
|
|||
|
|
DELETE /news/article/{id} # 删除
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 新增业务模块
|
|||
|
|
|
|||
|
|
#### 步骤一:创建数据库表
|
|||
|
|
```sql
|
|||
|
|
CREATE TABLE ddn_news_article (
|
|||
|
|
article_id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|||
|
|
title VARCHAR(200) NOT NULL COMMENT '标题',
|
|||
|
|
content TEXT COMMENT '内容',
|
|||
|
|
...
|
|||
|
|
create_time DATETIME COMMENT '创建时间',
|
|||
|
|
update_time DATETIME COMMENT '更新时间'
|
|||
|
|
) COMMENT='新闻文章表';
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 步骤二:使用代码生成器
|
|||
|
|
1. 系统工具 → 代码生成 → 导入
|
|||
|
|
2. 配置生成信息
|
|||
|
|
3. 生成代码并下载
|
|||
|
|
|
|||
|
|
#### 步骤三:添加菜单权限
|
|||
|
|
1. 系统管理 → 菜单管理 → 新增
|
|||
|
|
2. 配置菜单URL和权限标识
|
|||
|
|
3. 分配给相应角色
|
|||
|
|
|
|||
|
|
### 4. 性能优化建议
|
|||
|
|
|
|||
|
|
- 使用Redis缓存热点数据
|
|||
|
|
- 数据库表添加适当索引
|
|||
|
|
- 大数据量查询使用分页
|
|||
|
|
- 图片视频使用OSS存储
|
|||
|
|
- 开启Druid监控分析SQL
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 七、注意事项
|
|||
|
|
|
|||
|
|
### ⚠️ 安全配置(必须修改)
|
|||
|
|
|
|||
|
|
1. **JWT密钥** (`application.yml`)
|
|||
|
|
```yaml
|
|||
|
|
token:
|
|||
|
|
secret: 修改为32位随机字符串
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **数据库密码** (`application-druid.yml`)
|
|||
|
|
|
|||
|
|
3. **Redis密码** (`application.yml`)
|
|||
|
|
|
|||
|
|
4. **生产环境关闭Swagger** (`application.yml`)
|
|||
|
|
```yaml
|
|||
|
|
swagger:
|
|||
|
|
enabled: false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 📋 清理checklist
|
|||
|
|
|
|||
|
|
- [ ] 删除target编译目录
|
|||
|
|
- [ ] 删除node_modules前端依赖
|
|||
|
|
- [ ] 修改所有默认密码
|
|||
|
|
- [ ] 检查敏感配置信息
|
|||
|
|
- [ ] 更新README联系方式
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 八、技术支持
|
|||
|
|
|
|||
|
|
### 开发环境要求
|
|||
|
|
- JDK 1.8+
|
|||
|
|
- MySQL 5.7+
|
|||
|
|
- Redis 3.0+
|
|||
|
|
- Maven 3.6+
|
|||
|
|
- Node.js 14+
|
|||
|
|
|
|||
|
|
### 常见问题
|
|||
|
|
|
|||
|
|
**Q1: 编译报错找不到包?**
|
|||
|
|
A: 执行 `mvn clean install` 重新安装依赖
|
|||
|
|
|
|||
|
|
**Q2: 前端启动报错?**
|
|||
|
|
A: 删除 `node_modules` 和 `package-lock.json` 重新 `npm install`
|
|||
|
|
|
|||
|
|
**Q3: 数据库连接失败?**
|
|||
|
|
A: 检查 `application-druid.yml` 配置和MySQL服务状态
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 九、改造总结
|
|||
|
|
|
|||
|
|
### 完成度
|
|||
|
|
✅ 项目基础信息改造 (100%)
|
|||
|
|
✅ Java包名重构 (100%)
|
|||
|
|
✅ 品牌标识更换 (100%)
|
|||
|
|
✅ 配置文件调整 (100%)
|
|||
|
|
✅ 前端定制化 (100%)
|
|||
|
|
✅ 代码生成器配置 (100%)
|
|||
|
|
✅ 文档更新 (100%)
|
|||
|
|
|
|||
|
|
### 改造文件统计
|
|||
|
|
- Maven配置文件:7个
|
|||
|
|
- Java源文件:260+
|
|||
|
|
- 配置文件:15+
|
|||
|
|
- 前端文件:200+
|
|||
|
|
- 启动脚本:6个
|
|||
|
|
- 文档文件:2个
|
|||
|
|
|
|||
|
|
**总计修改:480+ 文件**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十、版本历史
|
|||
|
|
|
|||
|
|
### v1.0.0 (2025-10-30)
|
|||
|
|
- 基于RuoYi-Vue v3.9.0进行深度定制
|
|||
|
|
- 完成包名、模块名、品牌全面改造
|
|||
|
|
- 建立开发规范和文档体系
|
|||
|
|
- 为后续新闻业务开发做好准备
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**改造完成!** 🎉
|
|||
|
|
|
|||
|
|
现在可以基于此框架进行业务功能开发了。建议先熟悉现有功能,再逐步添加新闻相关业务模块。
|
|||
|
|
|