发布 v2.6.0

This commit is contained in:
疯狂的狮子li
2021-07-28 11:32:30 +08:00
parent a3e781915e
commit 3f3a7db544
123 changed files with 3413 additions and 1084 deletions

View File

@ -42,6 +42,10 @@ spring:
testOnReturn: false
# 注意这个值和druid原生不一致默认启动了stat
filters: stat
--- # druid 配置
spring:
datasource:
druid:
webStatFilter:
enabled: true
@ -63,7 +67,9 @@ spring:
wall:
config:
multi-statement-allow: true
# redis 配置
--- # redis 配置
spring:
redis:
# 地址
host: localhost
@ -78,7 +84,6 @@ spring:
# 是否开启ssl
ssl: false
--- # redisson 客户端配置
redisson:
# 线程池数量
threads: 16
@ -137,3 +142,42 @@ management:
endpoint:
logfile:
external-file: ./logs/sys-console.log
--- # OSS 云存储(界面 <参数设置> 可切换)
cloud-storage:
# minio配置
minio:
endpoint: http://localhost:9000
accessKey: ruoyi
secretKey: ruoyi123
bucketName: ruoyi
# 七牛云配置
qiniu:
domain: http://XXX.XXXX.com
prefix:
accessKey: XXXXXXXXXXXXXXX
secretKey: XXXXXXXXXXXXXXX
bucketName: ruoyi
isHttps: false
# z0 华东 z1 华北 z2 华南 na0 北美 as0 东南亚
# 不填为自动获取(性能低 易出问题)
region: z0
# 阿里云配置
aliyun:
endpoint: http://oss-cn-beijing.aliyuncs.com
prefix:
accessKeyId: XXXXXXXXXXXXXXX
accessKeySecret: XXXXXXXXXXXXXXX
bucketName: ruoyi
# 腾讯云配置
qcloud:
endpoint: http://cos.ap-beijing.myqcloud.com
prefix:
secretId: XXXXXXXXXXXXXXX
secretKey: XXXXXXXXXXXXXXX
# 腾讯云bucket名规则 格式为 BucketName-APPID 此处填写的存储桶名称必须为此格式
bucketName: ruoyi-1250000000
isHttps: false
# 地域名参考官方文档
# https://cloud.tencent.com/document/product/436/6224
region: ap-beijing

View File

@ -42,6 +42,10 @@ spring:
testOnReturn: false
# 注意这个值和druid原生不一致默认启动了stat
filters: stat
--- # druid 配置
spring:
datasource:
druid:
webStatFilter:
enabled: true
@ -63,7 +67,9 @@ spring:
wall:
config:
multi-statement-allow: true
# redis 配置
--- # redis 配置
spring:
redis:
# 地址
host: 172.30.0.48
@ -78,7 +84,6 @@ spring:
# 是否开启ssl
ssl: false
--- # redisson 客户端配置
redisson:
# 线程池数量
threads: 16
@ -137,3 +142,42 @@ management:
endpoint:
logfile:
external-file: ./logs/sys-console.log
--- # OSS 云存储(界面 <参数设置> 可切换)
cloud-storage:
# minio配置
minio:
endpoint: http://172.30.0.54:9000
accessKey: ruoyi
secretKey: ruoyi123
bucketName: ruoyi
# 七牛云配置
qiniu:
domain: http://XXX.XXXX.com
prefix:
accessKey: XXXXXXXXXXXXXXX
secretKey: XXXXXXXXXXXXXXX
bucketName: ruoyi
isHttps: false
# z0 华东 z1 华北 z2 华南 na0 北美 as0 东南亚
# 不填为自动获取(性能低 易出问题)
region: z0
# 阿里云配置
aliyun:
endpoint: http://oss-cn-beijing.aliyuncs.com
prefix:
accessKeyId: XXXXXXXXXXXXXXX
accessKeySecret: XXXXXXXXXXXXXXX
bucketName: ruoyi
# 腾讯云配置
qcloud:
endpoint: http://cos.ap-beijing.myqcloud.com
prefix:
secretId: XXXXXXXXXXXXXXX
secretKey: XXXXXXXXXXXXXXX
# 腾讯云bucket名规则 格式为 BucketName-APPID 此处填写的存储桶名称必须为此格式
bucketName: ruoyi-1250000000
isHttps: false
# 地域名参考官方文档
# https://cloud.tencent.com/document/product/436/6224
region: ap-beijing

View File

@ -18,6 +18,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<select id="customPageList" resultType="com.ruoyi.demo.domain.vo.TestDemoVo">
SELECT * FROM test_demo ${ew.customSqlSegment}
</select>
</mapper>
</mapper>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.SysOssMapper">
<resultMap type="com.ruoyi.system.domain.SysOss" id="SysOssResult">
<result property="ossId" column="oss_id"/>
<result property="fileName" column="file_name"/>
<result property="fileSuffix" column="file_suffix"/>
<result property="url" column="url"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="service" column="service"/>
</resultMap>
</mapper>

View File

@ -1,45 +0,0 @@
package ${packageName}.bo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import javax.validation.constraints.*;
#foreach ($import in $importList)
import ${import};
#end
/**
* ${functionName}添加对象 ${tableName}
*
* @author ${author}
* @date ${datetime}
*/
@Data
@ApiModel("${functionName}添加对象")
public class ${ClassName}AddBo {
#foreach ($column in $columns)
#if($column.isInsert && $column.isPk!=1)
/** $column.columnComment */
@ApiModelProperty("$column.columnComment")
#if($column.isRequired==1)
#if($column.javaType == 'String')
@NotBlank(message = "$column.columnComment不能为空")
#else
@NotNull(message = "$column.columnComment不能为空")
#end
#end
private $column.javaType $column.javaField;
#end
#end
#if($table.sub)
/** $table.subTable.functionName信息 */
@ApiModelProperty("$table.subTable.functionName")
private List<${subClassName}> ${subclassName}List;
#end
}

View File

@ -0,0 +1,88 @@
package ${packageName}.domain.bo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
#foreach ($import in $importList)
import ${import};
#end
#if($table.crud || $table.sub)
import com.ruoyi.common.core.domain.BaseEntity;
#elseif($table.tree)
import com.ruoyi.common.core.domain.TreeEntity;
#end
/**
* ${functionName}业务对象 ${tableName}
*
* @author ${author}
* @date ${datetime}
*/
#if($table.crud || $table.sub)
#set($Entity="BaseEntity")
#elseif($table.tree)
#set($Entity="TreeEntity")
#end
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("${functionName}业务对象")
public class ${ClassName}Bo extends ${Entity} {
#foreach ($column in $columns)
#if(!$table.isSuperColumn($column.javaField) && ($column.query || $column.isInsert || $column.isEdit))
/**
* $column.columnComment
*/
@ApiModelProperty("$column.columnComment")
#if($column.isInsert && $column.isEdit)
#set($Group="AddGroup.class, EditGroup.class")
#elseif($column.isInsert)
#set($Group="AddGroup.class")
#elseif($column.isEdit)
#set($Group="EditGroup.class")
#end
#if($column.isRequired == 1)
#if($column.javaType == 'String')
@NotBlank(message = "$column.columnComment不能为空", groups = { $Group })
#else
@NotNull(message = "$column.columnComment不能为空", groups = { $Group })
#end
#end
private $column.javaType $column.javaField;
#end
#end
/**
* 分页大小
*/
@ApiModelProperty("分页大小")
private Integer pageSize;
/**
* 当前页数
*/
@ApiModelProperty("当前页数")
private Integer pageNum;
/**
* 排序列
*/
@ApiModelProperty("排序列")
private String orderByColumn;
/**
* 排序的方向desc或者asc
*/
@ApiModelProperty(value = "排序的方向", example = "asc,desc")
private String isAsc;
}

View File

@ -13,11 +13,11 @@ import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import ${packageName}.vo.${ClassName}Vo;
import ${packageName}.bo.${ClassName}QueryBo;
import ${packageName}.bo.${ClassName}AddBo;
import ${packageName}.bo.${ClassName}EditBo;
import ${packageName}.domain.vo.${ClassName}Vo;
import ${packageName}.domain.bo.${ClassName}Bo;
import ${packageName}.service.I${ClassName}Service;
import com.ruoyi.common.utils.poi.ExcelUtil;
#if($table.crud || $table.sub)
@ -49,11 +49,11 @@ public class ${ClassName}Controller extends BaseController {
@PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')")
@GetMapping("/list")
#if($table.crud || $table.sub)
public TableDataInfo<${ClassName}Vo> list(@Validated ${ClassName}QueryBo bo) {
public TableDataInfo<${ClassName}Vo> list(@Validated ${ClassName}Bo bo) {
return i${ClassName}Service.queryPageList(bo);
}
#elseif($table.tree)
public AjaxResult<List<${ClassName}Vo>> list(@Validated ${ClassName}QueryBo bo) {
public AjaxResult<List<${ClassName}Vo>> list(@Validated ${ClassName}Bo bo) {
List<${ClassName}Vo> list = i${ClassName}Service.queryList(bo);
return AjaxResult.success(list);
}
@ -66,7 +66,7 @@ public class ${ClassName}Controller extends BaseController {
@PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')")
@Log(title = "${functionName}", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult<${ClassName}Vo> export(@Validated ${ClassName}QueryBo bo) {
public AjaxResult<${ClassName}Vo> export(@Validated ${ClassName}Bo bo) {
List<${ClassName}Vo> list = i${ClassName}Service.queryList(bo);
ExcelUtil<${ClassName}Vo> util = new ExcelUtil<${ClassName}Vo>(${ClassName}Vo.class);
return util.exportExcel(list, "${functionName}");
@ -91,8 +91,8 @@ public class ${ClassName}Controller extends BaseController {
@Log(title = "${functionName}", businessType = BusinessType.INSERT)
@RepeatSubmit
@PostMapping()
public AjaxResult<Void> add(@Validated @RequestBody ${ClassName}AddBo bo) {
return toAjax(i${ClassName}Service.insertByAddBo(bo) ? 1 : 0);
public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody ${ClassName}Bo bo) {
return toAjax(i${ClassName}Service.insertByBo(bo) ? 1 : 0);
}
/**
@ -103,8 +103,8 @@ public class ${ClassName}Controller extends BaseController {
@Log(title = "${functionName}", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping()
public AjaxResult<Void> edit(@Validated @RequestBody ${ClassName}EditBo bo) {
return toAjax(i${ClassName}Service.updateByEditBo(bo) ? 1 : 0);
public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody ${ClassName}Bo bo) {
return toAjax(i${ClassName}Service.updateByBo(bo) ? 1 : 0);
}
/**

View File

@ -1,46 +0,0 @@
package ${packageName}.bo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import javax.validation.constraints.*;
#foreach ($import in $importList)
import ${import};
#end
/**
* ${functionName}编辑对象 ${tableName}
*
* @author ${author}
* @date ${datetime}
*/
@Data
@ApiModel("${functionName}编辑对象")
public class ${ClassName}EditBo {
#foreach ($column in $columns)
#if($column.isEdit || $column.isPk==1)
/**
* $column.columnComment
*/
@ApiModelProperty("$column.columnComment")
#if($column.isRequired==1)
#if($column.javaType == 'String')
@NotBlank(message = "$column.columnComment不能为空")
#else
@NotNull(message = "$column.columnComment不能为空")
#end
#end
private $column.javaType $column.javaField;
#end
#end
#if($table.sub)
/** $table.subTable.functionName信息 */
@ApiModelProperty("$table.subTable.functionName")
private List<${subClassName}> ${subclassName}List;
#end
}

View File

@ -1,68 +0,0 @@
package ${packageName}.bo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
#foreach ($import in $importList)
import ${import};
#end
#if($table.crud || $table.sub)
import com.ruoyi.common.core.domain.BaseEntity;
#elseif($table.tree)
import com.ruoyi.common.core.domain.TreeEntity;
#end
/**
* ${functionName}分页查询对象 ${tableName}
*
* @author ${author}
* @date ${datetime}
*/
#if($table.crud || $table.sub)
#set($Entity="BaseEntity")
#elseif($table.tree)
#set($Entity="TreeEntity")
#end
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("${functionName}分页查询对象")
public class ${ClassName}QueryBo extends ${Entity} {
/**
* 分页大小
*/
@ApiModelProperty("分页大小")
private Integer pageSize;
/**
* 当前页数
*/
@ApiModelProperty("当前页数")
private Integer pageNum;
/**
* 排序列
*/
@ApiModelProperty("排序列")
private String orderByColumn;
/**
* 排序的方向desc或者asc
*/
@ApiModelProperty(value = "排序的方向", example = "asc,desc")
private String isAsc;
#foreach ($column in $columns)
#if(!$table.isSuperColumn($column.javaField) && $column.query)
/**
* $column.columnComment
*/
@ApiModelProperty("$column.columnComment")
private $column.javaType $column.javaField;
#end
#end
}

View File

@ -1,10 +1,8 @@
package ${packageName}.service;
import ${packageName}.domain.${ClassName};
import ${packageName}.vo.${ClassName}Vo;
import ${packageName}.bo.${ClassName}QueryBo;
import ${packageName}.bo.${ClassName}AddBo;
import ${packageName}.bo.${ClassName}EditBo;
import ${packageName}.domain.vo.${ClassName}Vo;
import ${packageName}.domain.bo.${ClassName}Bo;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
#if($table.crud || $table.sub)
import com.ruoyi.common.core.page.TableDataInfo;
@ -19,7 +17,7 @@ import java.util.List;
* @author ${author}
* @date ${datetime}
*/
public interface I${ClassName}Service extends IServicePlus<${ClassName}> {
public interface I${ClassName}Service extends IServicePlus<${ClassName}, ${ClassName}Vo> {
/**
* 查询单个
* @return
@ -30,27 +28,27 @@ public interface I${ClassName}Service extends IServicePlus<${ClassName}> {
/**
* 查询列表
*/
TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}QueryBo bo);
TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo);
#end
/**
* 查询列表
*/
List<${ClassName}Vo> queryList(${ClassName}QueryBo bo);
List<${ClassName}Vo> queryList(${ClassName}Bo bo);
/**
* 根据新增业务对象插入${functionName}
* @param bo ${functionName}新增业务对象
* @return
*/
Boolean insertByAddBo(${ClassName}AddBo bo);
Boolean insertByBo(${ClassName}Bo bo);
/**
* 根据编辑业务对象修改${functionName}
* @param bo ${functionName}编辑业务对象
* @return
*/
Boolean updateByEditBo(${ClassName}EditBo bo);
Boolean updateByBo(${ClassName}Bo bo);
/**
* 校验并删除数据

View File

@ -11,12 +11,10 @@ import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import ${packageName}.bo.${ClassName}AddBo;
import ${packageName}.bo.${ClassName}QueryBo;
import ${packageName}.bo.${ClassName}EditBo;
import ${packageName}.domain.bo.${ClassName}Bo;
import ${packageName}.domain.vo.${ClassName}Vo;
import ${packageName}.domain.${ClassName};
import ${packageName}.mapper.${ClassName}Mapper;
import ${packageName}.vo.${ClassName}Vo;
import ${packageName}.service.I${ClassName}Service;
import java.util.List;
@ -30,27 +28,27 @@ import java.util.Collection;
* @date ${datetime}
*/
@Service
public class ${ClassName}ServiceImpl extends ServicePlusImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service {
public class ${ClassName}ServiceImpl extends ServicePlusImpl<${ClassName}Mapper, ${ClassName}, ${ClassName}Vo> implements I${ClassName}Service {
@Override
public ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}){
return getVoById(${pkColumn.javaField}, ${ClassName}Vo.class);
return getVoById(${pkColumn.javaField});
}
#if($table.crud || $table.sub)
@Override
public TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}QueryBo bo) {
PagePlus<${ClassName}, ${ClassName}Vo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo), ${ClassName}Vo.class);
public TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo) {
PagePlus<${ClassName}, ${ClassName}Vo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
return PageUtils.buildDataInfo(result);
}
#end
@Override
public List<${ClassName}Vo> queryList(${ClassName}QueryBo bo) {
return listVo(buildQueryWrapper(bo), ${ClassName}Vo.class);
public List<${ClassName}Vo> queryList(${ClassName}Bo bo) {
return listVo(buildQueryWrapper(bo));
}
private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}QueryBo bo) {
private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<${ClassName}> lqw = Wrappers.lambdaQuery();
#foreach($column in $columns)
@ -78,14 +76,14 @@ public class ${ClassName}ServiceImpl extends ServicePlusImpl<${ClassName}Mapper,
}
@Override
public Boolean insertByAddBo(${ClassName}AddBo bo) {
public Boolean insertByBo(${ClassName}Bo bo) {
${ClassName} add = BeanUtil.toBean(bo, ${ClassName}.class);
validEntityBeforeSave(add);
return save(add);
}
@Override
public Boolean updateByEditBo(${ClassName}EditBo bo) {
public Boolean updateByBo(${ClassName}Bo bo) {
${ClassName} update = BeanUtil.toBean(bo, ${ClassName}.class);
validEntityBeforeSave(update);
return updateById(update);

View File

@ -1,4 +1,4 @@
package ${packageName}.vo;
package ${packageName}.domain.vo;
import com.ruoyi.common.annotation.Excel;
#foreach ($import in $importList)