jeecg-boot 2.0 模块开发版本发布

This commit is contained in:
zhangdaihao
2019-05-19 18:54:09 +08:00
parent 64fb100ea2
commit 4858af9f33
770 changed files with 85014 additions and 19508 deletions

View File

@ -1,15 +1,15 @@
Jeecg-Boot 快速开发平台
===============
当前最新版本: 1.1发布日期20190415
当前最新版本: 2.0.0发布日期20190518
## 后端技术架构
- 基础框架Spring Boot 2.0.3.RELEASE
- 基础框架Spring Boot 2.1.3.RELEASE
- 持久层框架Mybatis-plus_3.0.6
- 安全框架Apache Shiro 1.4.0-RC2Jwt_3.4.1
- 安全框架Apache Shiro 1.4.0Jwt_3.7.0
- 数据库连接池阿里巴巴Druid 1.1.10
@ -34,24 +34,7 @@ Jeecg-Boot 快速开发平台
- 缓存Redis
#### 技术文档
- 官方文档 [http://jeecg-boot.mydoc.io](http://jeecg-boot.mydoc.io)
- 零基础入门 [http://jeecg-boot.mydoc.io/?t=344845](http://jeecg-boot.mydoc.io/?t=344845)
- 在线演示 [http://boot.jeecg.org](http://boot.jeecg.org)
- QQ交流群 284271917
- 视频教程 https://pan.baidu.com/s/1Il0TS50I70vH1AG1y40wtw 提取码hok5
- 常见问题 [新手入门必看,汇总了常见各种问题](http://www.jeecg.org/forum.php?mod=viewthread&tid=7816&page=1&extra=#pid21237)
## 专项文档区
## 开发文档
- 查询过滤器用法
@ -98,5 +81,177 @@ QueryWrapper<?> queryWrapper = QueryGenerator.initQueryWrapper(?, req.getParamet
[在线文档](https://github.com/zhangdaiscott/autopoi)
- **代码生成器**
** 功能说明** 一键生成的代码包括controller、service、dao、mapper、entity、vue
**模板位置** src/main/resources/jeecg/code-template
**使用方法**
【**一对一模板**】
**1.**先找到**jeecg-boot/src/resources/jeecg**下的
**jeecg_config.properties**和**jeecg_database.properties**两个文件。
**jeecg_config.properties:** 用来配置文件生成的路径,
**jeecg_database.properties:** 用来配置数据库相关配置.
**2.**配置好这些配置之后,我们需要找到**jeecg-boot/src/main/java/org/jeecg/JeecgOneGUI.java**类,也就是启动一对一代码生成器的入口;
**3.**右键运行该类,紧接着会弹出一个窗口,如下图:
![](https://static.oschina.net/uploads/img/201904/14222638_Svth.png)
**4.**然后根据窗口左侧的提示,在右侧填写对应的信息即可.
【**一对多模板**】
**1.**先找到**jeecg-boot/src/resources/jeecg**下的
**jeecg_config.properties**和**jeecg_database.properties**两个文件。
**jeecg_config.properties:** 是配置文件生成路径的,
**jeecg_database.properties:** 是配置数据库相关配置的文件。
**2.**接着我们需要找到**jeecg-boot/src/main/java/org/jeecg/JeecgOneToMainUtil.java**这个类。
该类是生成一对多模板的启动入口。
**3.**该类中需要三个步骤来配置一对多表的信息。
(1) 第一步: 配置主表信息,代码如下:
```
//第一步:设置主表配置
MainTableVo mainTable = new MainTableVo();
mainTable.setTableName("jeecg_order_main");//表名
mainTable.setEntityName("TestOrderMain"); //实体名
mainTable.setEntityPackage("test2"); //包名
mainTable.setFtlDescription("订单"); //描述
```
(2) 第二步: 配置子表信息,**有多个则配置多个**, 代码如下:
①比如: 配置子表 1:
```
//第二步:设置子表集合配置
List<SubTableVo> subTables = new ArrayList<SubTableVo>();
//[1].子表一
SubTableVo po = new SubTableVo();
po.setTableName("jeecg_order_customer");//表名
po.setEntityName("TestOrderCustom"); //实体名
po.setEntityPackage("test2"); //包名
po.setFtlDescription("客户明细"); //描述
//子表外键参数配置
/*说明:
* a) 子表引用主表主键ID作为外键外键字段必须以_ID结尾;
* b) 主表和子表的外键字段名字必须相同除主键ID外;
* c) 多个外键字段,采用逗号分隔;
*/
po.setForeignKeys(new String[]{"order_id"});
subTables.add(po);
```
②比如: 配置子表 2:
```
//[2].子表二
SubTableVo po2 = new SubTableVo();
po2.setTableName("jeecg_order_ticket"); //表名
po2.setEntityName("TestOrderTicket"); //实体名
po2.setEntityPackage("test2"); //包名
po2.setFtlDescription("产品明细"); //描述
//子表外键参数配置
/*说明:
* a) 子表引用主表主键ID作为外键外键字段必须以_ID结尾;
* b) 主表和子表的外键字段名字必须相同除主键ID外;
* c) 多个外键字段,采用逗号分隔;
*/
po2.setForeignKeys(new String[]{"order_id"});
subTables.add(po2);
```
③将整合了子表VO的subTables添加到主表对象当中去:
```
mainTable.setSubTables(subTables);
```
④需要注意如下代码,该代码的作用是,为子表设置主外键关联,当添加数据时,
主表的主键将会添加到子表的"order_id"中:
```
po2.setForeignKeys(new String[]{"order_id"});
```
(3) 第三步: 启动(run)程序,生成代码, 代码如下:
```
//第三步:一对多(父子表)数据模型,代码生成
new CodeGenerateOneToMany(mainTable,subTables).generateCodeFile();
```
[在线文档](https://github.com/zhangdaiscott/autopoi)
- **编码排重使用示例**
重复校验效果:
![输入图片说明](https://static.oschina.net/uploads/img/201904/19191836_eGkQ.png "在这里输入图片标题")
1.引入排重接口,代码如下:
```
import { duplicateCheck } from '@/api/api'
```
2.找到编码必填校验规则的前端代码,代码如下:
```
<a-input placeholder="请输入编码" v-decorator="['code', validatorRules.code ]"/>
code: {
rules: [
{ required: true, message: '请输入编码!' },
{validator: this.validateCode}
]
},
```
3.找到rules里validator对应的方法在哪里,然后使用第一步中引入的排重校验接口.
以用户online表单编码为示例,其中四个必传的参数有:
```
{tableName:表名,fieldName:字段名,fieldVal:字段值,dataId:表的主键},
```
具体使用代码如下:
```
validateCode(rule, value, callback){
let pattern = /^[a-z|A-Z][a-z|A-Z|\d|_|-]{0,}$/;
if(!pattern.test(value)){
callback('编码必须以字母开头,可包含数字、下划线、横杠');
} else {
var params = {
tableName: "onl_cgreport_head",
fieldName: "code",
fieldVal: value,
dataId: this.model.id
};
duplicateCheck(params).then((res)=>{
if(res.success){
callback();
}else{
callback(res.message);
}
})
}
},
```