From 241e5188c6de64eefb9db3935a1777c4bb446787 Mon Sep 17 00:00:00 2001 From: liuxing Date: Thu, 17 Sep 2020 12:06:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0springboot=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E8=87=B32.1.16.RELEASE=EF=BC=8C=E9=9B=86=E6=88=90myba?= =?UTF-8?q?tis-plus=EF=BC=8C=E6=B7=BB=E5=8A=A0lombok=EF=BC=8C=E5=A4=9A?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 19 +- pom.xml | 30 +-- .../main/java/com/ruoyi/RuoYiApplication.java | 4 +- ...lication-druid.yml => application-dev.yml} | 121 ++++++------ .../src/main/resources/application-prod.yml | 64 ++++++ .../src/main/resources/application.yml | 56 ++++-- ruoyi-admin/src/main/resources/logback.xml | 187 +++++++++--------- ruoyi-common/pom.xml | 15 +- .../ruoyi/common/core/domain/BaseEntity.java | 6 +- .../ruoyi/common/core/domain/TreeEntity.java | 7 +- .../common/core/mapper/BaseCrudMapper.java | 11 ++ .../common/core/service/BaseService.java | 11 ++ .../core/service/impl/BaseServiceImpl.java | 11 ++ ruoyi-framework/pom.xml | 2 +- .../ruoyi/framework/config/MyBatisConfig.java | 108 ---------- .../framework/config/MybatisPlusConfig.java | 21 ++ .../src/main/resources/vm/java/domain.java.vm | 105 +++++----- .../src/main/resources/vm/java/mapper.java.vm | 46 ++--- .../main/resources/vm/java/service.java.vm | 34 ++-- .../resources/vm/java/serviceImpl.java.vm | 47 +++-- .../main/resources/vm/java/sub-domain.java.vm | 66 ++++--- 21 files changed, 529 insertions(+), 442 deletions(-) rename ruoyi-admin/src/main/resources/{application-druid.yml => application-dev.yml} (74%) create mode 100644 ruoyi-admin/src/main/resources/application-prod.yml create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseCrudMapper.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/service/BaseService.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/service/impl/BaseServiceImpl.java delete mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java diff --git a/README.md b/README.md index 0535be600..f9fdabeee 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,22 @@ ## 平台简介 +本项目FORK自 [若依/RuoYi](https://gitee.com/y_project/RuoYi) + +花了点时间做了以下改动: +###### 更新springboot +更新springboot版本至2.1.16.RELEASE + +###### 集成mybatis-plus +一直在项目中使用mybatis-plus,觉得这个方便好用,尽量保持原代码以方便从主干合并, +core包提供BaseCrudMapper、BaseService、BaseServiceImpl继承即可,并且在代码生成器中已更新 + +###### 添加lombok +为开发方便集成了lombok以提高开发效率 + +###### 控制台日志分等级彩色渲染和多环境修改 +具体看logback-spring.xml和application.xml改动 + + 一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套后台系统。如此有了若依。她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。 性别男,若依是给还没有出生女儿取的名字(寓意:你若不离不弃,我必生死相依) @@ -84,4 +101,4 @@ ## 若依交流群 -QQ群: [![加入QQ群](https://img.shields.io/badge/已满-1389287-blue.svg)](https://jq.qq.com/?_wv=1027&k=5HBAaYN) [![加入QQ群](https://img.shields.io/badge/已满-1679294-blue.svg)](https://jq.qq.com/?_wv=1027&k=5cHeRVW) [![加入QQ群](https://img.shields.io/badge/已满-1529866-blue.svg)](https://jq.qq.com/?_wv=1027&k=53R0L5Z) [![加入QQ群](https://img.shields.io/badge/已满-1772718-blue.svg)](https://jq.qq.com/?_wv=1027&k=5g75dCU) [![加入QQ群](https://img.shields.io/badge/已满-1366522-blue.svg)](https://jq.qq.com/?_wv=1027&k=58cPoHA) [![加入QQ群](https://img.shields.io/badge/已满-1382251-blue.svg)](https://jq.qq.com/?_wv=1027&k=5Ofd4Pb) [![加入QQ群](https://img.shields.io/badge/已满-1145125-blue.svg)](https://jq.qq.com/?_wv=1027&k=5yugASz) [![加入QQ群](https://img.shields.io/badge/已满-86752435-blue.svg)](https://jq.qq.com/?_wv=1027&k=5Rf3d2P) [![加入QQ群](https://img.shields.io/badge/已满-134072510-blue.svg)](https://jq.qq.com/?_wv=1027&k=5ZIjaeP) [![加入QQ群](https://img.shields.io/badge/已满-210336300-blue.svg)](https://jq.qq.com/?_wv=1027&k=5CJw1jY) [![加入QQ群](https://img.shields.io/badge/已满-339522636-blue.svg)](https://jq.qq.com/?_wv=1027&k=5omzbKc) [![加入QQ群](https://img.shields.io/badge/130035985-blue.svg)](https://jq.qq.com/?_wv=1027&k=qPIKBb7s) \ No newline at end of file +QQ群: [![加入QQ群](https://img.shields.io/badge/已满-1389287-blue.svg)](https://jq.qq.com/?_wv=1027&k=5HBAaYN) [![加入QQ群](https://img.shields.io/badge/已满-1679294-blue.svg)](https://jq.qq.com/?_wv=1027&k=5cHeRVW) [![加入QQ群](https://img.shields.io/badge/已满-1529866-blue.svg)](https://jq.qq.com/?_wv=1027&k=53R0L5Z) [![加入QQ群](https://img.shields.io/badge/已满-1772718-blue.svg)](https://jq.qq.com/?_wv=1027&k=5g75dCU) [![加入QQ群](https://img.shields.io/badge/已满-1366522-blue.svg)](https://jq.qq.com/?_wv=1027&k=58cPoHA) [![加入QQ群](https://img.shields.io/badge/已满-1382251-blue.svg)](https://jq.qq.com/?_wv=1027&k=5Ofd4Pb) [![加入QQ群](https://img.shields.io/badge/已满-1145125-blue.svg)](https://jq.qq.com/?_wv=1027&k=5yugASz) [![加入QQ群](https://img.shields.io/badge/已满-86752435-blue.svg)](https://jq.qq.com/?_wv=1027&k=5Rf3d2P) [![加入QQ群](https://img.shields.io/badge/已满-134072510-blue.svg)](https://jq.qq.com/?_wv=1027&k=5ZIjaeP) [![加入QQ群](https://img.shields.io/badge/已满-210336300-blue.svg)](https://jq.qq.com/?_wv=1027&k=5CJw1jY) [![加入QQ群](https://img.shields.io/badge/已满-339522636-blue.svg)](https://jq.qq.com/?_wv=1027&k=5omzbKc) [![加入QQ群](https://img.shields.io/badge/130035985-blue.svg)](https://jq.qq.com/?_wv=1027&k=qPIKBb7s) diff --git a/pom.xml b/pom.xml index caff0075b..d460e2724 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ ruoyi http://www.ruoyi.vip 若依管理系统 - + 4.4.0 UTF-8 @@ -19,11 +19,12 @@ 1.6.0 2.0.0 1.3.2 - 1.1.22 + 1.1.23 1.19 2.3.2 2.9.2 - 1.2.5 + 1.3.0 + 3.4.0 1.2.73 3.9.1 2.5 @@ -35,23 +36,23 @@ - + org.springframework.boot spring-boot-dependencies - 2.1.1.RELEASE + 2.1.16.RELEASE pom import - + com.alibaba druid-spring-boot-starter ${druid.version} - + com.github.penggle @@ -79,7 +80,7 @@ shiro-ehcache ${shiro.version} - + com.github.theborakompanioni @@ -101,6 +102,13 @@ ${pagehelper.boot.version} + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis.plus.version} + + com.github.oshi @@ -131,7 +139,7 @@ springfox-swagger-ui ${swagger.version} - + commons-io @@ -166,7 +174,7 @@ fastjson ${fastjson.version} - + com.ruoyi @@ -260,4 +268,4 @@ - \ No newline at end of file + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index a0e726bd4..eb99b9442 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; /** * 启动程序 - * + * * @author ruoyi */ @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) @@ -27,4 +27,4 @@ public class RuoYiApplication " | | \\ / \\ / \n" + " ''-' `'-' `-..-' "); } -} \ No newline at end of file +} diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-dev.yml similarity index 74% rename from ruoyi-admin/src/main/resources/application-druid.yml rename to ruoyi-admin/src/main/resources/application-dev.yml index d69c66d27..8b005c873 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -1,57 +1,64 @@ -# 数据源配置 -spring: - datasource: - type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver - druid: - # 主库数据源 - master: - url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - username: root - password: password - # 从库数据源 - slave: - # 从数据源开关/默认关闭 - enabled: false - url: - username: - password: - # 初始连接数 - initialSize: 5 - # 最小连接池数量 - minIdle: 10 - # 最大连接池数量 - maxActive: 20 - # 配置获取连接等待超时的时间 - maxWait: 60000 - # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 - timeBetweenEvictionRunsMillis: 60000 - # 配置一个连接在池中最小生存的时间,单位是毫秒 - minEvictableIdleTimeMillis: 300000 - # 配置一个连接在池中最大生存的时间,单位是毫秒 - maxEvictableIdleTimeMillis: 900000 - # 配置检测连接是否有效 - validationQuery: SELECT 1 FROM DUAL - testWhileIdle: true - testOnBorrow: false - testOnReturn: false - webStatFilter: - enabled: true - statViewServlet: - enabled: true - # 设置白名单,不填则允许所有访问 - allow: - url-pattern: /druid/* - # 控制台管理用户名和密码 - login-username: - login-password: - filter: - stat: - enabled: true - # 慢SQL记录 - log-slow-sql: true - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true \ No newline at end of file +server: + # 服务器的HTTP端口,默认为80 + port: 8081 + servlet: + # 应用的访问路径 + context-path: / + +# 数据源配置 +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.mysql.cj.jdbc.Driver + druid: + # 主库数据源 + master: + url: jdbc:mysql://106.75.99.248:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: ry + password: hyWaxqSnANWgYRnmjABmdEk6SbMyCzma + # 从库数据源 + slave: + # 从数据源开关/默认关闭 + enabled: false + url: + username: + password: + # 初始连接数 + initialSize: 5 + # 最小连接池数量 + minIdle: 10 + # 最大连接池数量 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 300000 + # 配置一个连接在池中最大生存的时间,单位是毫秒 + maxEvictableIdleTimeMillis: 900000 + # 配置检测连接是否有效 + validationQuery: SELECT 1 FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + webStatFilter: + enabled: true + statViewServlet: + enabled: true + # 设置白名单,不填则允许所有访问 + allow: + url-pattern: /druid/* + # 控制台管理用户名和密码 + login-username: + login-password: + filter: + stat: + enabled: true + # 慢SQL记录 + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: true + wall: + config: + multi-statement-allow: true diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml new file mode 100644 index 000000000..8b005c873 --- /dev/null +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -0,0 +1,64 @@ +server: + # 服务器的HTTP端口,默认为80 + port: 8081 + servlet: + # 应用的访问路径 + context-path: / + +# 数据源配置 +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.mysql.cj.jdbc.Driver + druid: + # 主库数据源 + master: + url: jdbc:mysql://106.75.99.248:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: ry + password: hyWaxqSnANWgYRnmjABmdEk6SbMyCzma + # 从库数据源 + slave: + # 从数据源开关/默认关闭 + enabled: false + url: + username: + password: + # 初始连接数 + initialSize: 5 + # 最小连接池数量 + minIdle: 10 + # 最大连接池数量 + maxActive: 20 + # 配置获取连接等待超时的时间 + maxWait: 60000 + # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 + timeBetweenEvictionRunsMillis: 60000 + # 配置一个连接在池中最小生存的时间,单位是毫秒 + minEvictableIdleTimeMillis: 300000 + # 配置一个连接在池中最大生存的时间,单位是毫秒 + maxEvictableIdleTimeMillis: 900000 + # 配置检测连接是否有效 + validationQuery: SELECT 1 FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + webStatFilter: + enabled: true + statViewServlet: + enabled: true + # 设置白名单,不填则允许所有访问 + allow: + url-pattern: /druid/* + # 控制台管理用户名和密码 + login-username: + login-password: + filter: + stat: + enabled: true + # 慢SQL记录 + log-slow-sql: true + slow-sql-millis: 1000 + merge-sql: true + wall: + config: + multi-statement-allow: true diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index e46f8be01..53c91efab 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -15,11 +15,6 @@ ruoyi: # 开发环境配置 server: - # 服务器的HTTP端口,默认为80 - port: 80 - servlet: - # 应用的访问路径 - context-path: / tomcat: # tomcat的URI编码 uri-encoding: UTF-8 @@ -27,7 +22,8 @@ server: max-threads: 800 # Tomcat启动初始化的线程数,默认值25 min-spare-threads: 30 - + connection-timeout: 5000 + # 日志配置 logging: level: @@ -55,8 +51,8 @@ spring: jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss - profiles: - active: druid + profiles: + active: dev # 文件上传 servlet: multipart: @@ -70,21 +66,41 @@ spring: # 热部署开关 enabled: true -# MyBatis -mybatis: - # 搜索指定包别名 - typeAliasesPackage: com.ruoyi.**.domain - # 配置mapper的扫描,找到所有的mapper.xml映射文件 - mapperLocations: classpath*:mapper/**/*Mapper.xml - # 加载全局的配置文件 - configLocation: classpath:mybatis/mybatis-config.xml +# MyBatis Plus +mybatis-plus: + # MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名,注册后在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名 (即 XML 中调用的时候不用包含包名) + type-aliases-package: com.ruoyi.**.domain + # MyBatis Mapper 所对应的 XML 文件位置,如果您在 Mapper 中有自定义方法 (XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置。Maven 多模块项目的扫描路径需以 classpath*: 开头 (即加载多个 jar 包下的 XML 文件) + mapper-locations: classpath*:mapper/**/*.xml + # MyBatis 配置文件位置,如果您有单独的 MyBatis 配置,请将其路径配置到 configLocation 中 + # config-location: classpath:mybatis/mybatis-config.xml + global-config: + db-config: + # 全局默认主键类型 + id-type: auto + # 逻辑已删除值,默认为 1 + logic-delete-value: -1 + # 逻辑未删除值,默认为 0 + logic-not-delete-value: 0 + banner: false + configuration: + # 全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true + cache-enabled: false + # 允许 JDBC 支持自动生成主键,默认为 true + # use-generated-keys: true + # 配置默认的执行器 + default-executor-type: reuse + # 指定所用日志的具体实现 + log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl + call-setters-on-nulls: true + jdbc-type-for-null: 'null' # PageHelper分页插件 -pagehelper: +pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true - params: count=countSql + params: count=countSql # Shiro shiro: @@ -101,7 +117,7 @@ shiro: captchaType: math cookie: # 设置Cookie的域名 默认空,即当前访问的域名 - domain: + domain: # 设置cookie的有效访问路径 path: / # 设置HttpOnly属性 @@ -123,7 +139,7 @@ shiro: kickoutAfter: false # 防止XSS攻击 -xss: +xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) diff --git a/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml index d69a57207..caea5abec 100644 --- a/ruoyi-admin/src/main/resources/logback.xml +++ b/ruoyi-admin/src/main/resources/logback.xml @@ -1,93 +1,94 @@ - - - - - - - - - - - ${log.pattern} - - - - - - ${log.path}/sys-info.log - - - - ${log.path}/sys-info.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - - - INFO - - ACCEPT - - DENY - - - - - ${log.path}/sys-error.log - - - - ${log.path}/sys-error.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - - - ERROR - - ACCEPT - - DENY - - - - - - ${log.path}/sys-user.log - - - ${log.path}/sys-user.%d{yyyy-MM-dd}.log - - 60 - - - ${log.pattern} - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + ${log.colorPattern} + + + + + + ${log.path}/sys-info.log + + + + ${log.path}/sys-info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/sys-error.log + + + + ${log.path}/sys-error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + ${log.path}/sys-user.log + + + ${log.path}/sys-user.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 57e07ef7a..6bd9467f9 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -34,7 +34,7 @@ org.apache.shiro shiro-core - + org.apache.shiro @@ -47,6 +47,12 @@ pagehelper-spring-boot-starter + + + com.baomidou + mybatis-plus-boot-starter + + javax.validation @@ -101,6 +107,11 @@ javax.servlet-api + + org.projectlombok + lombok + + - \ No newline at end of file + diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java index 0fc68beb5..0549084e1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java @@ -4,11 +4,13 @@ import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; + +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; /** * Entity基类 - * + * * @author ruoyi */ public class BaseEntity implements Serializable @@ -16,6 +18,7 @@ public class BaseEntity implements Serializable private static final long serialVersionUID = 1L; /** 搜索值 */ + @TableField(exist = false) private String searchValue; /** 创建者 */ @@ -36,6 +39,7 @@ public class BaseEntity implements Serializable private String remark; /** 请求参数 */ + @TableField(exist = false) private Map params; public String getSearchValue() diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java index 7a0efe62a..21dbf5089 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java @@ -1,8 +1,10 @@ package com.ruoyi.common.core.domain; +import com.baomidou.mybatisplus.annotation.TableField; + /** * Tree基类 - * + * * @author ruoyi */ public class TreeEntity extends BaseEntity @@ -10,6 +12,7 @@ public class TreeEntity extends BaseEntity private static final long serialVersionUID = 1L; /** 父菜单名称 */ + @TableField(exist = false) private String parentName; /** 父菜单ID */ @@ -60,4 +63,4 @@ public class TreeEntity extends BaseEntity { this.ancestors = ancestors; } -} \ No newline at end of file +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseCrudMapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseCrudMapper.java new file mode 100644 index 000000000..1592408cc --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseCrudMapper.java @@ -0,0 +1,11 @@ +package com.ruoyi.common.core.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 基础CRUD的父类Mapper + * + * @author liuxing + */ +public interface BaseCrudMapper extends BaseMapper { +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/BaseService.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/BaseService.java new file mode 100644 index 000000000..fda83b0f1 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/BaseService.java @@ -0,0 +1,11 @@ +package com.ruoyi.common.core.service; + +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 基础服务Service + * + * @author liuxing + */ +public interface BaseService extends IService { +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/service/impl/BaseServiceImpl.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/impl/BaseServiceImpl.java new file mode 100644 index 000000000..7768bcac7 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/service/impl/BaseServiceImpl.java @@ -0,0 +1,11 @@ +package com.ruoyi.common.core.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.mapper.BaseCrudMapper; +import com.ruoyi.common.core.service.BaseService; + +/** + * @author liuxing + */ +public class BaseServiceImpl, T> extends ServiceImpl implements BaseService { +} diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index 498eb87b4..a9a51703d 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -89,4 +89,4 @@ - \ No newline at end of file + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java deleted file mode 100644 index 0bc8a2bec..000000000 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.ruoyi.framework.config; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import javax.sql.DataSource; -import org.apache.ibatis.io.VFS; -import org.apache.ibatis.session.SqlSessionFactory; -import org.mybatis.spring.SqlSessionFactoryBean; -import org.mybatis.spring.boot.autoconfigure.SpringBootVFS; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.env.Environment; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; -import org.springframework.core.io.support.PathMatchingResourcePatternResolver; -import org.springframework.core.io.support.ResourcePatternResolver; -import org.springframework.core.type.classreading.CachingMetadataReaderFactory; -import org.springframework.core.type.classreading.MetadataReader; -import org.springframework.core.type.classreading.MetadataReaderFactory; -import org.springframework.util.ClassUtils; - -/** - * Mybatis支持*匹配扫描包 - * - * @author ruoyi - */ -@Configuration -public class MyBatisConfig -{ - @Autowired - private Environment env; - - static final String DEFAULT_RESOURCE_PATTERN = "**/*.class"; - - public static String setTypeAliasesPackage(String typeAliasesPackage) - { - ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); - MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); - List allResult = new ArrayList(); - try - { - for (String aliasesPackage : typeAliasesPackage.split(",")) - { - List result = new ArrayList(); - aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX - + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN; - Resource[] resources = resolver.getResources(aliasesPackage); - if (resources != null && resources.length > 0) - { - MetadataReader metadataReader = null; - for (Resource resource : resources) - { - if (resource.isReadable()) - { - metadataReader = metadataReaderFactory.getMetadataReader(resource); - try - { - result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName()); - } - catch (ClassNotFoundException e) - { - e.printStackTrace(); - } - } - } - } - if (result.size() > 0) - { - HashSet hashResult = new HashSet(result); - allResult.addAll(hashResult); - } - } - if (allResult.size() > 0) - { - typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0])); - } - else - { - throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包"); - } - } - catch (IOException e) - { - e.printStackTrace(); - } - return typeAliasesPackage; - } - - @Bean - public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception - { - String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage"); - String mapperLocations = env.getProperty("mybatis.mapperLocations"); - String configLocation = env.getProperty("mybatis.configLocation"); - typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage); - VFS.addImplClass(SpringBootVFS.class); - - final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); - sessionFactory.setDataSource(dataSource); - sessionFactory.setTypeAliasesPackage(typeAliasesPackage); - sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations)); - sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation)); - return sessionFactory.getObject(); - } -} \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java new file mode 100644 index 000000000..5596f02ef --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java @@ -0,0 +1,21 @@ +package com.ruoyi.framework.config; + +import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; +import com.baomidou.mybatisplus.core.injector.ISqlInjector; +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * mybatis-plus配置 + * + * @author Mark sunlightcs@gmail.com + */ +@Configuration +public class MybatisPlusConfig { + + @Bean + public ISqlInjector sqlInjector() { + return new DefaultSqlInjector(); + } +} diff --git a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm index a9d18f097..30c5e1641 100644 --- a/ruoyi-generator/src/main/resources/vm/java/domain.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/domain.java.vm @@ -3,6 +3,10 @@ package ${packageName}.domain; #foreach ($import in $importList) import ${import}; #end +import lombok.Data; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -14,7 +18,7 @@ import com.ruoyi.common.core.domain.TreeEntity; /** * ${functionName}对象 ${tableName} - * + * * @author ${author} * @date ${datetime} */ @@ -23,6 +27,8 @@ import com.ruoyi.common.core.domain.TreeEntity; #elseif($table.tree) #set($Entity="TreeEntity") #end +@Data +@TableName("${tableName}") public class ${ClassName} extends ${Entity} { private static final long serialVersionUID = 1L; @@ -44,6 +50,9 @@ public class ${ClassName} extends ${Entity} #else @Excel(name = "${comment}") #end +#end +#if($column.pk) +@TableId(type = IdType.AUTO) #end private $column.javaType $column.javaField; @@ -54,51 +63,51 @@ public class ${ClassName} extends ${Entity} private List<${subClassName}> ${subclassName}List; #end -#foreach ($column in $columns) -#if(!$table.isSuperColumn($column.javaField)) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - public void set${AttrName}($column.javaType $column.javaField) - { - this.$column.javaField = $column.javaField; - } - - public $column.javaType get${AttrName}() - { - return $column.javaField; - } -#end -#end - -#if($table.sub) - public List<${subClassName}> get${subClassName}List() - { - return ${subclassName}List; - } - - public void set${subClassName}List(List<${subClassName}> ${subclassName}List) - { - this.${subclassName}List = ${subclassName}List; - } - -#end - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) -#foreach ($column in $columns) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - .append("${column.javaField}", get${AttrName}()) -#end -#if($table.sub) - .append("${subclassName}List", get${subClassName}List()) -#end - .toString(); - } +###foreach ($column in $columns) +###if(!$table.isSuperColumn($column.javaField)) +###if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) +###set($AttrName=$column.javaField) +###else +###set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +###end +## public void set${AttrName}($column.javaType $column.javaField) +## { +## this.$column.javaField = $column.javaField; +## } +## +## public $column.javaType get${AttrName}() +## { +## return $column.javaField; +## } +###end +###end +## +###if($table.sub) +## public List<${subClassName}> get${subClassName}List() +## { +## return ${subclassName}List; +## } +## +## public void set${subClassName}List(List<${subClassName}> ${subclassName}List) +## { +## this.${subclassName}List = ${subclassName}List; +## } +## +###end +## @Override +## public String toString() { +## return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) +###foreach ($column in $columns) +###if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) +###set($AttrName=$column.javaField) +###else +###set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +###end +## .append("${column.javaField}", get${AttrName}()) +###end +###if($table.sub) +## .append("${subclassName}List", get${subClassName}List()) +###end +## .toString(); +## } } diff --git a/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm b/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm index d25ec18cb..add8865e6 100644 --- a/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm @@ -5,87 +5,87 @@ import ${packageName}.domain.${ClassName}; #if($table.sub) import ${packageName}.domain.${subClassName}; #end - +import com.ruoyi.common.core.mapper.BaseCrudMapper; /** * ${functionName}Mapper接口 - * + * * @author ${author} * @date ${datetime} */ -public interface ${ClassName}Mapper +public interface ${ClassName}Mapper extends BaseCrudMapper<${ClassName}> { /** * 查询${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}ID * @return ${functionName} */ - public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); + ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); /** * 查询${functionName}列表 - * + * * @param ${className} ${functionName} * @return ${functionName}集合 */ - public List<${ClassName}> select${ClassName}List(${ClassName} ${className}); + List<${ClassName}> select${ClassName}List(${ClassName} ${className}); /** * 新增${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ - public int insert${ClassName}(${ClassName} ${className}); + int insert${ClassName}(${ClassName} ${className}); /** * 修改${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ - public int update${ClassName}(${ClassName} ${className}); + int update${ClassName}(${ClassName} ${className}); /** * 删除${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}ID * @return 结果 */ - public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); + int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); /** * 批量删除${functionName} - * + * * @param ${pkColumn.javaField}s 需要删除的数据ID * @return 结果 */ - public int delete${ClassName}ByIds(String[] ${pkColumn.javaField}s); + int delete${ClassName}ByIds(String[] ${pkColumn.javaField}s); #if($table.sub) /** * 批量删除${subTable.functionName} - * + * * @param customerIds 需要删除的数据ID * @return 结果 */ - public int delete${subClassName}By${subTableFkClassName}s(String[] ${pkColumn.javaField}s); - + int delete${subClassName}By${subTableFkClassName}s(String[] ${pkColumn.javaField}s); + /** * 批量新增${subTable.functionName} - * + * * @param ${subclassName}List ${subTable.functionName}列表 * @return 结果 */ - public int batch${subClassName}(List<${subClassName}> ${subclassName}List); - + int batch${subClassName}(List<${subClassName}> ${subclassName}List); + /** * 通过${functionName}ID删除${subTable.functionName}信息 - * + * * @param roleId 角色ID * @return 结果 */ - public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); + int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); #end } diff --git a/ruoyi-generator/src/main/resources/vm/java/service.java.vm b/ruoyi-generator/src/main/resources/vm/java/service.java.vm index e073cc82b..a9a59f243 100644 --- a/ruoyi-generator/src/main/resources/vm/java/service.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/service.java.vm @@ -5,69 +5,69 @@ import ${packageName}.domain.${ClassName}; #if($table.tree) import com.ruoyi.common.core.domain.Ztree; #end - +import com.ruoyi.common.core.service.BaseService; /** * ${functionName}Service接口 - * + * * @author ${author} * @date ${datetime} */ -public interface I${ClassName}Service +public interface I${ClassName}Service extends BaseService<${ClassName}> { /** * 查询${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}ID * @return ${functionName} */ - public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); + ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); /** * 查询${functionName}列表 - * + * * @param ${className} ${functionName} * @return ${functionName}集合 */ - public List<${ClassName}> select${ClassName}List(${ClassName} ${className}); + List<${ClassName}> select${ClassName}List(${ClassName} ${className}); /** * 新增${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ - public int insert${ClassName}(${ClassName} ${className}); + int insert${ClassName}(${ClassName} ${className}); /** * 修改${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ - public int update${ClassName}(${ClassName} ${className}); + int update${ClassName}(${ClassName} ${className}); /** * 批量删除${functionName} - * + * * @param ids 需要删除的数据ID * @return 结果 */ - public int delete${ClassName}ByIds(String ids); + int delete${ClassName}ByIds(String ids); /** * 删除${functionName}信息 - * + * * @param ${pkColumn.javaField} ${functionName}ID * @return 结果 */ - public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); + int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); #if($table.tree) /** * 查询${functionName}树列表 - * + * * @return 所有${functionName}信息 */ - public List select${ClassName}Tree(); + List select${ClassName}Tree(); #end } diff --git a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm index 4592abce8..3b7622bad 100644 --- a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.Ztree; #end #foreach ($column in $columns) #if($column.javaField == 'createTime' || $column.javaField == 'updateTime') +import com.ruoyi.common.core.service.impl.BaseServiceImpl; import com.ruoyi.common.utils.DateUtils; #break #end @@ -26,43 +27,41 @@ import com.ruoyi.common.core.text.Convert; /** * ${functionName}Service业务层处理 - * + * * @author ${author} * @date ${datetime} */ @Service -public class ${ClassName}ServiceImpl implements I${ClassName}Service +public class ${ClassName}ServiceImpl extends BaseServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service { - @Autowired - private ${ClassName}Mapper ${className}Mapper; /** * 查询${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}ID * @return ${functionName} */ @Override public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}) { - return ${className}Mapper.select${ClassName}ById(${pkColumn.javaField}); + return this.baseMapper.select${ClassName}ById(${pkColumn.javaField}); } /** * 查询${functionName}列表 - * + * * @param ${className} ${functionName} * @return ${functionName} */ @Override public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) { - return ${className}Mapper.select${ClassName}List(${className}); + return this.baseMapper.select${ClassName}List(${className}); } /** * 新增${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -78,17 +77,17 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service #end #end #if($table.sub) - int rows = ${className}Mapper.insert${ClassName}(${className}); + int rows = this.baseMapper.insert${ClassName}(${className}); insert${subClassName}(${className}); return rows; #else - return ${className}Mapper.insert${ClassName}(${className}); + return this.baseMapper.insert${ClassName}(${className}); #end } /** * 修改${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -104,15 +103,15 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service #end #end #if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); + this.baseMapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); insert${subClassName}(${className}); #end - return ${className}Mapper.update${ClassName}(${className}); + return this.baseMapper.update${ClassName}(${className}); } /** * 删除${functionName}对象 - * + * * @param ids 需要删除的数据ID * @return 结果 */ @@ -123,14 +122,14 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service public int delete${ClassName}ByIds(String ids) { #if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(Convert.toStrArray(ids)); + this.baseMapper.delete${subClassName}By${subTableFkClassName}s(Convert.toStrArray(ids)); #end - return ${className}Mapper.delete${ClassName}ByIds(Convert.toStrArray(ids)); + return this.baseMapper.delete${ClassName}ByIds(Convert.toStrArray(ids)); } /** * 删除${functionName}信息 - * + * * @param ${pkColumn.javaField} ${functionName}ID * @return 结果 */ @@ -138,21 +137,21 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}) { #if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); + this.baseMapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); #end - return ${className}Mapper.delete${ClassName}ById(${pkColumn.javaField}); + return this.baseMapper.delete${ClassName}ById(${pkColumn.javaField}); } #if($table.tree) /** * 查询${functionName}树列表 - * + * * @return 所有${functionName}信息 */ @Override public List select${ClassName}Tree() { - List<${ClassName}> ${className}List = ${className}Mapper.select${ClassName}List(new ${ClassName}()); + List<${ClassName}> ${className}List = this.baseMapper.select${ClassName}List(new ${ClassName}()); List ztrees = new ArrayList(); for (${ClassName} ${className} : ${className}List) { @@ -173,7 +172,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service /** * 新增${subTable.functionName}信息 - * + * * @param ${className} ${functionName}对象 */ public void insert${subClassName}(${ClassName} ${className}) @@ -190,7 +189,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service } if (list.size() > 0) { - ${className}Mapper.batch${subClassName}(list); + this.baseMapper.batch${subClassName}(list); } } } diff --git a/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm b/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm index 3539474cc..989e65957 100644 --- a/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/sub-domain.java.vm @@ -7,13 +7,15 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; /** * ${subTable.functionName}对象 ${subTableName} - * + * * @author ${author} * @date ${datetime} */ +@Data public class ${subClassName} extends BaseEntity { private static final long serialVersionUID = 1L; @@ -40,36 +42,36 @@ public class ${subClassName} extends BaseEntity #end #end -#foreach ($column in $subTable.columns) -#if(!$table.isSuperColumn($column.javaField)) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - public void set${AttrName}($column.javaType $column.javaField) - { - this.$column.javaField = $column.javaField; - } +###foreach ($column in $subTable.columns) +###if(!$table.isSuperColumn($column.javaField)) +###if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) +###set($AttrName=$column.javaField) +###else +###set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +###end +## public void set${AttrName}($column.javaType $column.javaField) +## { +## this.$column.javaField = $column.javaField; +## } +## +## public $column.javaType get${AttrName}() +## { +## return $column.javaField; +## } +###end +###end - public $column.javaType get${AttrName}() - { - return $column.javaField; - } -#end -#end - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) -#foreach ($column in $subTable.columns) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - .append("${column.javaField}", get${AttrName}()) -#end - .toString(); - } +## @Override +## public String toString() { +## return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) +###foreach ($column in $subTable.columns) +###if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) +###set($AttrName=$column.javaField) +###else +###set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) +###end +## .append("${column.javaField}", get${AttrName}()) +###end +## .toString(); +## } } From 0023c2a5c3a1549d34bebb6b145cb61ef3fbf648 Mon Sep 17 00:00:00 2001 From: liuxing Date: Sat, 19 Sep 2020 10:36:19 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=8D=87=E7=BA=A7springboot=E5=88=B02.1.17?= =?UTF-8?q?=20=E6=8F=90=E5=8D=87=E5=AE=89=E5=85=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f9fdabeee..ba35158ab 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ 花了点时间做了以下改动: ###### 更新springboot -更新springboot版本至2.1.16.RELEASE +更新springboot版本至2.1.17.RELEASE ###### 集成mybatis-plus 一直在项目中使用mybatis-plus,觉得这个方便好用,尽量保持原代码以方便从主干合并, From 3eac5e93f8510f5e3b94a3c593ad142a2dcfbfee Mon Sep 17 00:00:00 2001 From: liuxing Date: Sat, 19 Sep 2020 11:40:19 +0800 Subject: [PATCH 3/3] =?UTF-8?q?AjaxResult=E9=87=8D=E5=86=99put=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E4=BB=A5=E6=96=B9=E4=BE=BF=E9=93=BE=E5=BC=8F?= =?UTF-8?q?=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/core/domain/AjaxResult.java | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java index ef89f5c84..8bc96d404 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java @@ -5,7 +5,7 @@ import com.ruoyi.common.utils.StringUtils; /** * 操作消息提醒 - * + * * @author ruoyi */ public class AjaxResult extends HashMap @@ -54,7 +54,7 @@ public class AjaxResult extends HashMap /** * 初始化一个新创建的 AjaxResult 对象 - * + * * @param type 状态类型 * @param msg 返回内容 */ @@ -66,7 +66,7 @@ public class AjaxResult extends HashMap /** * 初始化一个新创建的 AjaxResult 对象 - * + * * @param type 状态类型 * @param msg 返回内容 * @param data 数据对象 @@ -83,7 +83,7 @@ public class AjaxResult extends HashMap /** * 返回成功消息 - * + * * @return 成功消息 */ public static AjaxResult success() @@ -93,7 +93,7 @@ public class AjaxResult extends HashMap /** * 返回成功数据 - * + * * @return 成功消息 */ public static AjaxResult success(Object data) @@ -103,7 +103,7 @@ public class AjaxResult extends HashMap /** * 返回成功消息 - * + * * @param msg 返回内容 * @return 成功消息 */ @@ -114,7 +114,7 @@ public class AjaxResult extends HashMap /** * 返回成功消息 - * + * * @param msg 返回内容 * @param data 数据对象 * @return 成功消息 @@ -126,7 +126,7 @@ public class AjaxResult extends HashMap /** * 返回警告消息 - * + * * @param msg 返回内容 * @return 警告消息 */ @@ -137,7 +137,7 @@ public class AjaxResult extends HashMap /** * 返回警告消息 - * + * * @param msg 返回内容 * @param data 数据对象 * @return 警告消息 @@ -149,7 +149,7 @@ public class AjaxResult extends HashMap /** * 返回错误消息 - * + * * @return */ public static AjaxResult error() @@ -159,7 +159,7 @@ public class AjaxResult extends HashMap /** * 返回错误消息 - * + * * @param msg 返回内容 * @return 警告消息 */ @@ -170,7 +170,7 @@ public class AjaxResult extends HashMap /** * 返回错误消息 - * + * * @param msg 返回内容 * @param data 数据对象 * @return 警告消息 @@ -179,4 +179,17 @@ public class AjaxResult extends HashMap { return new AjaxResult(Type.ERROR, msg, data); } + + /** + * 方便链式调用 + * + * @param key + * @param value + * @return + */ + @Override + public AjaxResult put(String key, Object value) { + super.put(key, value); + return this; + } }