Skip to content

Commit

Permalink
add doc
Browse files Browse the repository at this point in the history
  • Loading branch information
enilu committed Jun 29, 2019
1 parent adc766a commit 2a848a2
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 96 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ web-flash包含了成熟的后台管理功能和手机端h5内容站点系统
- 业务日志:通过注解的方式记录用户操作日志,并提供日志查询功能
- 登录日志:查看用户登录登出日志
- cms内容管理,配合flash-vue-h5提供了手机端内容展示系统
- 消息管理:配置消息模板,发送短信,邮件消息
- 基于idea插件的代码生成

**后续考虑添加的功能**
- 消息管理:配置并发送消息的功能,消息类型可以包括:短信,邮件,微信模版消息,钉钉提醒等。

## 使用

- 克隆本项目
- 导入idea或者eclipse
- 创建数据库:web-flash
- 修改flash-api中数据库连接配置
- 在开发环境中配置了系统启动后自动创建数据库和初始化数据,所以不需要开发人员手动初始化数据库
- 启动flash-api,访问http://localhost:8082/swagger-ui.html , 保证api服务启动成功
- 进入flash-vue-admin目录
- 运行 npm install --registry=https://registry.npm.taobao.org
Expand Down
108 changes: 14 additions & 94 deletions docs/ecosystem/code-generator.md
Original file line number Diff line number Diff line change
@@ -1,100 +1,20 @@
# web-flash代码生成工具

本项目提供了基于IDEA的插件来生成代码,你可以再idea插件仓库中索webflash-generator,或者直接从本地安装插件:flash-generator/idea-plugin.jar即可
用法如下:
- 首先写好实体类,打开实体类,右键选择Generator(或者Alt+Insert)

![](../img/plugin/generator.jpg)

- 选择web-flash mvc,在弹框中勾选生成选项

![](../img/plugin/generator-config.jpg)
- 点击生成即可,生成完毕后在vue的router/index.js添加路由,启动api和vue项目,配置上菜单和角色后即可使用


## 使用方法

- 准备工作
```shell

-- 克隆本项目
git clone https://github.com/enilu/sbvue-coder.git

-- 安装到本地仓库
cd sbvue-coder
mvn install

--在web-flash的flash-core的pom.xml文件中添加依赖:web-flash/flash-core/pom.xml

<dependency>
<groupId>cn.enilu</groupId>
<artifactId>sbvue-coder</artifactId>
<version>1.0</version>
</dependency>
```

- 在Intellij IDEA中新建一个Run Config,如下图所示
![run config](./doc/run_config.jpg)
- 上图三个配置分别为
- 1,运行的代码生成主类
- 2,代码生成参数,详见下面说明
- 3,在哪个模块中执行代码生成:flash-core,因为代码生成是通过读取flash-core中的实体类的注解实现,所以这里选择flash-core

- 新建配置文件:flash-core/src/main/resources/code/code.json,配置文件内容如下,下面内容指定了生成的相关代码分别放在哪个模块下,考虑到有的同学可能会更改项目名和模块名,增加该配置,开发人员可以自行配置模块名
```json
{
"codeConfig": {
"type": "CodeConfig",
"fields": {
entityModel: "flash-core",
daoModel: "flash-core",
serviceModel: "flash-core",
controllerModel: "flash-api",
viewModel: "flash-vue-admin"
}
}
}
```

## 代码生成参数
执行生成的时候,在Program arguments配置为:-h 运行后将会输出下面参数帮助提示

```shell
usage: Generator [options] [all|entity|service|controller|view]
-f,--force force generate file even if file exists
-h,--help show help message
-i,--include <arg> include table pattern
-module,--module <arg> current module name
-p,--package <arg> base package name,default:cn.enilu.guns
-u,--base-uri <arg> base uri prefix, default is /
-x,--exclude <arg> exclude table pattern
```
比如在Program arguments配置 -mudule test 将会根据flash-core/src/main/java/cn/enilu/guns/bean/entity/test/目录下所有的java类生成其CRUD相关代码
如果程序运行参数更改为 -mudule test -i t_test_boy 将会根据上述目录下的Boy实体生成其相关CRUD代码,注意这里-i 后面的参数值是实体中配置的表名称,而不是实体名本身。
测试实体Boy内容如下
```java
package cn.enilu.flash.bean.entity.test;

import cn.enilu.flash.bean.entity.BaseEntity;
import lombok.Data;
import org.hibernate.annotations.Table;
import javax.persistence.Column;
import javax.persistence.Entity;

/**
* 该实体用于测试生成代码
*/
@Entity(name="t_test_boy")
@Table(appliesTo = "t_test_boy",comment = "男孩")
@Data

public class Boy extends BaseEntity {
@Column(columnDefinition = "VARCHAR(32) COMMENT '姓名'")
private String name;
@Column(columnDefinition = "INT COMMENT '年龄'")
private Integer age;
@Column(columnDefinition = "VARCHAR(12) COMMENT '生日'")
private String birthday;
@Column(name = "has_girl_friend",columnDefinition = "TINYINT COMMENT '是否有女朋友'")
private Boolean hasGirFriend;
}

```
注意如果要根据实体生成代码,实体中的@Table注解要配置为@org.hibernate.annotations.Table而不是能配置为:@javax.persistence.Table,因为前者可以配置注释comment

以Boy实体为例,执行代码生成后将会生成如下文件:
![run code_add](./doc/code_add.jpg)
![code_add](./doc/code_add.jpg)

代码生成后,在flash-vue-admin的路由配置文件中flash-vue-admin/src/router/index.js,增加如下内容:
```javascript
Expand All @@ -103,7 +23,7 @@ public class Boy extends BaseEntity {
name: 'Boy',
component: () => import('@/views/test/boy/index'),
meta: {
title: '鲜肉管理'
title: '男孩管理'
}
}
```
Expand Down
Binary file modified docs/ecosystem/doc/code_add.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 2a848a2

Please sign in to comment.