# quick-start
**Repository Path**: handuan-cloud/quick-start
## Basic Information
- **Project Name**: quick-start
- **Description**: handuan cloud quick start
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-06-05
- **Last Updated**: 2024-06-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Quick Start
## 相关文档
- [基础服务安装](docs/core-services.md)
## 后端开发入门
### 工具
| 类型 | 工具名称 | 下载地址 |
|------|-------------|-----------------------------------------------|
| 版本控制 | git | / |
| IDE | idea | https://www.jetbrains.com/zh-cn/idea/download |
| 数据建模 | pdManer | http://www.pdmaner.com/download/v4.9.0 |
| 工具 | SwitchHosts | https://github.com/oldj/SwitchHosts/releases |
| | | |
#### SwitchHosts
> 方便进行hosts切换,hosts权限设置,请参考以下文档:
- https://blog.csdn.net/aiains/article/details/139218503
### 框架及版本
| 类型 | 框架 | 版本号 | 说明 |
|-------|------------------|------------|------------------|
| 基础框架 | openJDK | 17 | |
| 基础框架 | spring-boot | 3.2.6 | |
| 基础框架 | spring-cloud | 2023.0.1 | |
| 基础框架 | alibaba-cloud | 2023.0.1.0 | |
| 基础框架 | springdoc | 2.5.0 | |
| 基础框架 | querydsl | 5.1.0 | 查询构造 |
| 基础框架 | lombok | 1.18.22 | |
| 基础框架 | mapstruct | 1.5.0.RC1 | 各种实体转换,bean copy |
| 基础框架 | hutool | 5.8.27 | 工具类汇总 |
| 自定义框架 | handuanframework | 3.2.5.4 | 基础框架封装 |
| 自定义框架 | handuan-cloud | 3.2.5.1 | 基础模块实现封装 |
### 包结构说明
> 请见 samples/core

- web API 请求入口
- service 逻辑层及实现类
- model 模型层,包括:DTO、SaveModel、SearchParam 等
- entity 实体层及实体对应的 Repo
- converter 转换层,实体、模型间转换
### 代码生成器
- 使用 pdManer 设计数据表,并按需指定字段相关用途 
- 设置实体路径及变量 
- 引用已经设计好的实体(按需)
- 生成代码 
### 数据库设计
- 支持数据库模版:**MySQL**及**DM**;
- 数据库设计时,表名和字段名,均小写,多个单词以下划线区分;
- 在生成实际数据库脚本时,系统会自动按需调整脚本的大小写规则(例如:MySQL 小写,DM 大写);
#### 数据表设计
- 表名规则:通用前缀\_名称,小写;
- 创建新的数据表时,系统会自动生成默认字段,请根据需求进行删减;
- 如需要调整默认字段,请在设置的缺省字段设置中调整;
- 数据字段可以按需选择字段设置,代码生成器会根据字段的设置生成相应的代码
#### 数据字典设计
- 当数据库对应字段为数据字典时,数据域选择“数据字典”,同时新增或选择现有的数据字典
- 数据字典字段说明 
### 命名规范
> **所有数据库的结构性调整,必须在 pdManer 中进行设置!**
#### 数据库命名
- 表名:通用前缀\_名称,均小写,例如:sys_user;
- 字段名:小写,多个单词以下划线分隔,例如:user_name;
- 索引:idx\_索引名称,小写,例如:idx_login_id;
#### 代码命名
- 实体名称:数据库表名去掉前缀\_,例如:User;
- 其他常用 bean 对象命名:XxxDTO、XxxSaveModel、SxxSearchParam
#### 接口规范
- controller 入口请求均为主题域对象全小写+s,例如 user,接口地址为: /users
- 接口命名遵循 restfull 命名规则,例如
- 新增用户: POST /users
- 更新用户: PUT /users
- 删除用户: DELETE /users/{id}
- 查询用户列表:GET /users
- 查询用户详情: GET /users/{id}
### 开发场景
#### 单元测试
- 相关依赖,参见 samples/junit-test/pom.xml
```xml
com.handuanframework
handuan-boot-starter-test
test
h2
com.h2database
test
```
- 单元测试写法与 springBoot 保持一致,请参阅官方文档,示例代码:samples/junit-test/src/test/java/com/samples/crud/T01BasicCrudTest.java
#### 多表联查
- samples/junit-test/src/test/java/com/samples/crud/T02MultiEntitiesQueryTest.java
- samples/core/src/main/java/com/samples/service/impl/DeptServiceImpl.java
## 前端开发入门
### 前端依赖框架与组件
- Vue3 使用文档
https://cn.vuejs.org/guide/quick-start.html
- Element-Plus 使用文档
https://element-plus.org/zh-CN/component/tree.html
### 安装 nodejs
#### 下载
- 版本要求 18+

- 下载地址:https://nodejs.org/en/download/prebuilt-installer
#### 安装完成测试
- 终端查看 node 版本
```
node -v
```

- 终端查看 npm 版本
```
npm -v
```

### 开发环境启动
- 终端进入 web/目录下
```
cd web
```

- 在 web 目录下安装启动依赖
```
npm i
```

- 在 web 目录下启动环境
```
npm run dev
```

- 默认情况下,会直接在浏览器中打开,如果没有打开,可以根据上一步骤中提示的启动服务 ip 和端口进行访问
- 账号 / 密码: admin / admin123

### 页面开发
#### 新增路由
- 在 web/src/router/index.js 中新增路由配置表
- 在 constantRoutes 变量下新增自己对应的路由表

- 新增路由表配置信息示例如下:
```
{
name: 'test', // 路由名称
path: 'test', // 路由路径,可以与name名称保持一致
meta: {
title: 'Test', // 菜单名称
noCache: true, // 固定属性值,就按照这个属性值配置
icon: 'user', // 菜单名称前的图标
},
hidden: false, // 固定属性值,就按照这个属性值配置
component: () => import('@/views/demo/test/index'), // 路由对应的显示组件地址,@表示web/src这一级目录。 加完这个配置,记得去component值对应的目录下新增index.vue文件
}
```
##### 新增页面
- 在 web/src/views 下新增路由表配置中 component 对应的地址文件

- 在 index.vue 中编写 vue 单文件代码即可,示例如下:
```
测试文件
```
- 页面效果如下:
