xinli/项目介绍/项目改造说明.md
xiao@123.123 fdf83af45a xiao
2025-11-03 18:21:32 +08:00

441 lines
8.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 项目改造说明文档
## 改造概述
本项目基于开源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进行深度定制
- 完成包名、模块名、品牌全面改造
- 建立开发规范和文档体系
- 为后续新闻业务开发做好准备
---
**改造完成!** 🎉
现在可以基于此框架进行业务功能开发了。建议先熟悉现有功能,再逐步添加新闻相关业务模块。