Merge remote-tracking branch 'origin/master'

pull/1/head
wqy 2 years ago
commit 81bd19395f

@ -169,31 +169,31 @@ http-pool:
max-total: 200
gen:
# 作者
author:
author: zcc
# 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
packageName: com.cyl.demo
packageName: com.cyl.mall
# 自动去除表前缀默认是false
autoRemovePre: true
# 表前缀(生成类名不会包含表前缀,多个用逗号分隔)
tablePrefix: cscdc_
tablePrefix: mall_
# 一级权限名
rootPermission: cscdc
rootPermission: mall
# 模板根路径
templateRootPath: vm
# 路径
path:
# 后端根目录
backPath: C:\Users\zccbbg\ichengle\ruoyi-vue-fork\
backPath: D:\java_project\mall\ruoyi-mall
# 后端 service 模块名
serviceModule: mybatis-plus-demo
serviceModule: mall
# 后端 api 模块名, 默认与 service 一致
apiModule: mybatis-plus-api
apiModule: mall
# 前端根目录
frontPath: C:\Users\zccbbg\code\cdc_front_cs\
frontPath: D:\java_project\mall\ruoyi-mall-vue
# 前端 api 目录
frontApiPath: src/api/emergencyhandle
frontApiPath: src/api/mall
# 前端 view 目录
frontViewPath: src/views/emergencyhandle
frontViewPath: src/views/mall
# sql 目录
sql: sql
# 环境变量
@ -206,7 +206,7 @@ gen:
fileMap:
"api.js.vm": "${frontPath}/${frontApiPath}/${className}.js"
"controller.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/controller/${ClassName}Controller.java"
"service.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/service/I${ClassName}Service.java"
"service.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/service/${ClassName}Service.java"
"mapper.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/mapper/${ClassName}Mapper.java"
"convert.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/convert/${ClassName}Convert.java"
"example.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/example/${ClassName}Example.java"
@ -218,6 +218,32 @@ gen:
"sql.vm": "${backPath}/sql/${className}.sql"
"h2.sql.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/db/${tableName}-h2.sql"
"add.vue.vm": "${frontPath}/${frontViewPath}/Add${ClassName}.vue"
"index.vue.vm": "${frontPath}/${frontViewPath}/index.vue"
"index.vue.vm": "${frontPath}/${frontViewPath}/${className}/index.vue"
"index-tree.vue.vm": "${frontPath}/${frontViewPath}/index.vue"
"sub-domain.java.vm": "${frontPath}/${frontViewPath}/Sub${ClassName}.vue"
templates:
- vm/js/api.js.vm
- vm/java/controller.java.vm
- vm/java/service.java.vm
- vm/java/mapper.java.vm
- vm/java/convert.java.vm
- vm/java/query.java.vm
- vm/java/dto.java.vm
- vm/java/vo.java.vm
- vm/java/domain.java.vm
- vm/xml/mapper.xml.vm
- vm/sql/sql.vm
testTemplates:
# - vm/sql/h2.sql.vm
crudTemplates:
# - vm/vue/add.vue.vm
- vm/vue/index.vue.vm
treeTemplates:
# - vm/vue/index-tree.vue.vm
subTemplates:
# - vm/vue/index.vue.vm
# - vm/java/sub-domain.java.vm
type2component:
"String": "a-input("
"LocalDate": "a-date-picker("
"LocalDateTime": "a-date-picker(format=\"YYYY-MM-DD HH:mm\""

@ -1,34 +1,27 @@
package com.ruoyi.generator.controller;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
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.page.TableDataInfo;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
import com.ruoyi.generator.service.IGenTableColumnService;
import com.ruoyi.generator.service.IGenTableService;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
@ -61,12 +54,12 @@ public class GenController extends BaseController
*
*/
@PreAuthorize("@ss.hasPermi('tool:gen:query')")
@GetMapping(value = "/{talbleId}")
public AjaxResult getInfo(@PathVariable Long talbleId)
@GetMapping(value = "/{tableId}")
public AjaxResult getInfo(@PathVariable Long tableId)
{
GenTable table = genTableService.selectGenTableById(talbleId);
GenTable table = genTableService.selectGenTableById(tableId);
List<GenTable> tables = genTableService.selectGenTableAll();
List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(talbleId);
List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(tableId);
Map<String, Object> map = new HashMap<String, Object>();
map.put("info", table);
map.put("rows", list);

@ -191,7 +191,13 @@ public class GenUtils {
* @return
*/
public static String getBusinessName(String tableName) {
return StrUtil.toCamelCase(tableName);
boolean autoRemovePre = genConfig.isAutoRemovePre();
String tablePrefix = genConfig.getTablePrefix();
if (autoRemovePre && StringUtils.isNotEmpty(tablePrefix)) {
String[] searchList = StringUtils.split(tablePrefix, ",");
tableName = replaceFirst(tableName, searchList);
}
return StringUtils.convertToCamelCase(tableName);
}
/**

@ -1,5 +1,6 @@
package com.ruoyi.generator.util;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.constant.GenConstants;
import com.ruoyi.common.utils.DateUtils;
@ -163,7 +164,7 @@ public class VelocityUtils {
// 大写类名
String className = genTable.getClassName();
// 业务名称
String businessName = genTable.getBusinessName();
String businessName = StrUtil.lowerFirst(genTable.getBusinessName());
String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/");
String mybatisPath = MYBATIS_PATH + "/" + moduleName;

@ -1,12 +1,13 @@
# 代码生成
gen:
# 作者
author: zcc
# 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
packageName: com.cyl.mall
# 自动去除表前缀默认是false
autoRemovePre: false
autoRemovePre: true
# 表前缀(生成类名不会包含表前缀,多个用逗号分隔)
tablePrefix: mall_
tablePrefix: ums_
# 一级权限名
rootPermission: mall
# 模板根路径
templateRootPath: vm

@ -1,6 +1,13 @@
package ${packageName}.controller;
package ${fullPackage};
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@ -13,94 +20,74 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import ${packageName}.domain.${ClassName};
import ${packageName}.service.I${ClassName}Service;
import ${_fullClass.convert};
import ${_fullClass.domain};
import ${_fullClass.query};
import ${_fullClass.service};
import ${_fullClass.vo};
import com.ruoyi.common.utils.poi.ExcelUtil;
#if($table.crud || $table.sub)
import com.ruoyi.common.core.page.TableDataInfo;
#elseif($table.tree)
#end
/**
* ${functionName}Controller
*
* @author ${author}
* @date ${datetime}
*/
@Api(description ="${functionName}接口列表")
@RestController
@RequestMapping("/${moduleName}/${businessName}")
public class ${ClassName}Controller extends BaseController {
@RequestMapping("/${moduleName}/${className}")
public class ${_className.controller} extends BaseController {
@Autowired
private ${_className.service} service;
@Autowired
private I${ClassName}Service ${className}Service;
private ${_className.convert} convert;
/**
* 查询${functionName}列表
*/
@ApiOperation("查询${functionName}列表")
@PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')")
@GetMapping("/list")
#if($table.crud || $table.sub)
public TableDataInfo list(${ClassName} ${className}) {
startPage();
List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
return getDataTable(list);
}
#elseif($table.tree)
public AjaxResult list(${ClassName} ${className}) {
List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
return AjaxResult.success(list);
@PostMapping("/list")
public ResponseEntity<Page<${_className.domain}>> list(@RequestBody ${_className.query} query, Pageable page) {
List<${_className.domain}> list = service.selectList(query, page);
return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal()));
}
#end
/**
* 导出${functionName}列表
*/
@ApiOperation("导出${functionName}列表")
@PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')")
@Log(title = "${functionName}", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(${ClassName} ${className}) {
List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class);
return util.exportExcel(list, "${functionName}数据");
public ResponseEntity<String> export(${_className.query} query) {
List<${ClassName}> list = service.selectList(query, null);
ExcelUtil<${_className.vo}> util = new ExcelUtil<>(${_className.vo}.class);
return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "${functionName}数据"));
}
/**
* 获取${functionName}详细信息
*/
@ApiOperation("获取${functionName}详细信息")
@PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')")
@GetMapping(value = "/{${pkColumn.javaField}}")
public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) {
return AjaxResult.success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}));
public ResponseEntity<${ClassName}> getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) {
return ResponseEntity.ok(service.selectBy${pkColumn.capJavaField}(${pkColumn.javaField}));
}
/**
* 新增${functionName}
*/
@ApiOperation("新增${functionName}")
@PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')")
@Log(title = "${functionName}", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody ${ClassName} ${className}) {
return toAjax(${className}Service.insert${ClassName}(${className}));
public ResponseEntity<Integer> add(@RequestBody ${ClassName} ${className}) {
return ResponseEntity.ok(service.insert(${className}));
}
/**
* 修改${functionName}
*/
@ApiOperation("修改${functionName}")
@PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')")
@Log(title = "${functionName}", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody ${ClassName} ${className}) {
return toAjax(${className}Service.update${ClassName}(${className}));
public ResponseEntity<Integer> edit(@RequestBody ${ClassName} ${className}) {
return ResponseEntity.ok(service.update(${className}));
}
/**
* 删除${functionName}
*/
@ApiOperation("删除${functionName}")
@PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')")
@Log(title = "${functionName}", businessType = BusinessType.DELETE)
@DeleteMapping("/{${pkColumn.javaField}s}")
public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) {
return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s));
public ResponseEntity<Integer> remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) {
return ResponseEntity.ok(service.deleteBy${pkColumn.capJavaField}s(${pkColumn.javaField}s));
}
}

@ -1,11 +1,10 @@
package ${packageName}.convert;
package ${fullPackage};
import org.mapstruct.Mapper;
import ${packageName}.model.entity.${ClassName};
import ${packageName}.pojo.dto.${ClassName}DTO;
#if($table.sub)
import ${packageName}.convert.${subClassName}Convert;
#end
import ${_fullClass.domain};
import ${_fullClass.dto};
import ${_fullClass.vo};
import java.util.List;
/**
* ${functionName} DO <=> DTO <=> VO / BO / Query
*
@ -25,4 +24,6 @@ public interface ${ClassName}Convert {
* @return DO
*/
${ClassName} dto2do(${ClassName}DTO source);
List<${_className.vo}> dos2vos(List<${_className.domain}> list);
}

@ -1,33 +1,33 @@
package ${packageName}.model.entity;
package ${fullPackage};
#foreach ($import in $importList)
import ${import};
#end
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
#if(($table.crud || $table.sub) && $table.audit == 1)
import com.bryx.core.common.base.entity.BaseAudit;
#elseif($table.tree)
import com.ruoyi.common.core.domain.TreeEntity;
import ${env.baseAudit};
#end
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
/**
* ${functionName}对象 ${tableName}
*
* @author ${author}
*/
@ApiModel(description="${functionName}对象")
#if(($table.crud || $table.sub) && $table.audit == 1)
#set($Entity="BaseAudit")
#elseif($table.tree)
#set($Entity="TreeEntity")
#end
@Data
@TableName("${tableName}")
public class ${ClassName}#if($Entity) extends ${Entity}#end {
private static final long serialVersionUID = 1L;
#foreach ($column in $columns)
#if(!$table.isSuperColumn($column.javaField))
/** $column.columnComment */
@ApiModelProperty("$column.columnComment")
#if($column.list)
#set($parentheseIndex=$column.columnComment.indexOf(""))
#if($parentheseIndex != -1)
@ -38,7 +38,6 @@ public class ${ClassName}#if($Entity) extends ${Entity}#end {
#if($parentheseIndex != -1)
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
#elseif($column.isDate())
@JsonFormat(pattern = "${column.dateFormat}")
@Excel(name = "${comment}", width = 30, dateFormat = "${column.dateFormat}")
#else
@Excel(name = "${comment}")

@ -1,10 +1,10 @@
package ${packageName}.pojo.dto;
package ${fullPackage};
#foreach ($import in $importList)
import ${import};
#end
#if( ${table.audit} == 1 )
import com.bryx.core.common.base.entity.BaseAudit;
import ${env.baseAudit};
#end
import lombok.Data;
/**
@ -15,7 +15,7 @@ import lombok.Data;
@Data
public class ${ClassName}DTO#if( ${table.audit} == 1 ) extends BaseAudit#end {
#foreach ($column in $columns)
#if(!$table.isSuperColumn($column.javaField))
#if(!$table.isSuperColumn($column.javaField) and $column.javaField != "delFlag")
private $column.javaType $column.javaField;
#end
#end

@ -0,0 +1,305 @@
package ${fullPackage};
#foreach ($import in $importList)
import ${import};
#end
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.time.LocalDate;
import java.time.LocalDateTime;
public class ${ClassName}Example {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public ${ClassName}Example() {
oredCriteria = new ArrayList<>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
protected void addCriterionForJDBCDate(String condition, Date value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
addCriterion(condition, new java.sql.Date(value.getTime()), property);
}
protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
if (values == null || values.size() == 0) {
throw new RuntimeException("Value list for " + property + " cannot be null or empty");
}
List<java.sql.Date> dateList = new ArrayList<>();
Iterator<Date> iter = values.iterator();
while (iter.hasNext()) {
dateList.add(new java.sql.Date(iter.next().getTime()));
}
addCriterion(condition, dateList, property);
}
protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
}
#foreach ($column in $columns)
public Criteria and${column.capJavaField}IsNull() {
addCriterion("${column.columnName} is null");
return (Criteria) this;
}
public Criteria and${column.capJavaField}IsNotNull() {
addCriterion("${column.columnName} is not null");
return (Criteria) this;
}
public Criteria and${column.capJavaField}EqualTo(${column.javaType} value) {
addCriterion("${column.columnName} =", value, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}NotEqualTo(${column.javaType} value) {
addCriterion("${column.columnName} <>", value, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}GreaterThan(${column.javaType} value) {
addCriterion("${column.columnName} >", value, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}GreaterThanOrEqualTo(${column.javaType} value) {
addCriterion("${column.columnName} >=", value, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}LessThan(${column.javaType} value) {
addCriterion("${column.columnName} <", value, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}LessThanOrEqualTo(${column.javaType} value) {
addCriterion("${column.columnName} <=", value, "${column.javaField}");
return (Criteria) this;
}
#if($column.javaType == 'String')
public Criteria and${column.capJavaField}Like(${column.javaType} value) {
addCriterion("${column.columnName} like", value, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}NotLike(${column.javaType} value) {
addCriterion("${column.columnName} not like", value, "${column.javaField}");
return (Criteria) this;
}
#end
public Criteria and${column.capJavaField}In(List<${column.javaType}> values) {
addCriterion("${column.columnName} in", values, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}NotIn(List<${column.javaType}> values) {
addCriterion("${column.columnName} not in", values, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}Between(${column.javaType} value1, ${column.javaType} value2) {
addCriterion("${column.columnName} between", value1, value2, "${column.javaField}");
return (Criteria) this;
}
public Criteria and${column.capJavaField}NotBetween(${column.javaType} value1, ${column.javaType} value2) {
addCriterion("${column.columnName} not between", value1, value2, "${column.javaField}");
return (Criteria) this;
}
#end
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

@ -1,97 +1,28 @@
package ${packageName}.mapper;
package ${fullPackage};
import java.util.List;
import ${packageName}.domain.${ClassName};
#if($table.sub)
import ${packageName}.domain.${subClassName};
#end
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import ${_fullClass.domain};
/**
* ${functionName}Mapper接口
*
* @author ${author}
*/
public interface ${ClassName}Mapper {
/**
* 查询${functionName}
*
* @param ${pkColumn.javaField} ${functionName}主键
* @return ${functionName}
*/
${ClassName} selectBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
public interface ${ClassName}Mapper extends BaseMapper<${ClassName}> {
/**
* 查询${functionName}列表
*
* @param ${className} ${functionName}
* @return ${functionName}集合
*/
List<${ClassName}> selectList(${ClassName} ${className});
/**
* 新增${functionName}
*
* @param ${className} ${functionName}
* @return 结果
*/
int insert(${ClassName} ${className});
List<${ClassName}> selectByEntity(${ClassName} ${className});
/**
* 修改${functionName}
*
* @param ${className} ${functionName}
* @return 结果
*/
int update(${ClassName} ${className});
/**
* 删除${functionName}
*
* @param ${pkColumn.javaField} ${functionName}主键
* @return 结果
*/
int deleteBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
/**
* 批量删除${functionName}
*
* @param ${pkColumn.javaField}s 需要删除的数据主键集合
* @return 结果
*/
int deleteBy${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
/**
* 更新或插入${functionName}
*
* @param ${className} ${functionName}
* @return 结果
*/
int insertOrUpdate(${ClassName} ${className});
#if($table.sub)
/**
* 批量删除${subTable.functionName}
*
* @param ${pkColumn.javaField}s 需要删除的数据主键集合
* @return 结果
*/
int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
/**
* 批量新增${subTable.functionName}
*
* @param ${subclassName}List ${subTable.functionName}列表
* @return 结果
*/
int batch${subClassName}(List<${subClassName}> ${subclassName}List);
/**
* 通过${functionName}主键删除${subTable.functionName}信息
*
* @param ${pkColumn.javaField} ${functionName}ID
* @return 结果
* 批量软删除
* @param ids
* @return
*/
int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField});
#end
int updateDelFlagByIds(@Param("ids") Long[] ids);
}

@ -1,38 +1,32 @@
package ${packageName}.pojo.query;
import com.ruoyi.common.core.domain.IQuery;
import ${packageName}.domain.${ClassName};
import lombok.Setter;
package ${fullPackage};
import java.util.HashMap;
import java.util.Map;
#foreach ($import in $importList)
import ${import};
#end
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* ${functionName} 查询 对象
*
* @author ${author}
*/
@Setter
public class ${ClassName}Query extends ${ClassName} implements IQuery {
/**
* 搜索值
*/
private String searchValue;
/**
* 请求参数
*/
private Map<String, Object> params;
@Override
public String getSearchValue() {
return this.searchValue;
}
@ApiModel(description="${functionName} 查询 对象")
@Data
public class ${_className.query} {
#foreach($column in $columns)
#if($column.query)
## 根据查询类型生成 EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围
## 范围查询, 使用数组实现
#if($column.queryType == 'BETWEEN')
@ApiModelProperty("${column.genLabel()} 范围")
private ${column.javaType}[] ${column.javaField}${column.queryField};
#else
@ApiModelProperty("${column.genLabel()} 精确匹配")
private ${column.javaType} ${column.javaField}${column.queryField};
#end
@Override
public Map<String, Object> getParams() {
if (params == null) {
params = new HashMap<>();
}
return params;
}
#end
#end
}

@ -1,29 +1,85 @@
package ${packageName}.service;
package ${fullPackage};
#foreach ($import in $importList)
import ${import};
#end
import java.util.Arrays;
import java.util.List;
import ${packageName}.domain.${ClassName};
#if($table.hasDate())
#foreach($date in $table.dateImports())
import $date;
#end
#end
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import ${_fullClass.mapper};
import #evaluate(${_fullClass.domain});
import #evaluate(${_fullClass.query});
/**
* ${functionName}Service接口
* ${functionName}Service业务层处理
*
*
* @author ${author}
*/
public interface I${ClassName}Service {
@Service
public class ${ClassName}Service {
@Autowired
private ${_className.mapper} ${className}Mapper;
/**
* 查询${functionName}
*
* @param ${pkColumn.javaField} ${functionName}主键
* @return ${functionName}
*/
${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
public ${ClassName} selectBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
return ${className}Mapper.selectById(${pkColumn.javaField});
}
/**
* 查询${functionName}列表
*
* @param ${className} ${functionName}
* @return ${functionName}集合
* @param query 查询条件
* @param page 分页条件
* @return ${functionName}
*/
List<${ClassName}> select${ClassName}List(${ClassName} ${className});
public List<${_className.domain}> selectList(${_className.query} query, Pageable page) {
if (page != null) {
PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize());
}
QueryWrapper<${_className.domain}> qw = new QueryWrapper<>();
qw.eq("del_flag",0);
#foreach($column in $columns)
#if($column.query)
## 根据查询类型生成 EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围
## 范围查询, 使用数组实现
#if($column.queryType == 'BETWEEN')
${column.javaType}[] ${column.javaField}${column.queryField} = query.get${column.capJavaField}${column.queryField}();
if (${column.javaField}${column.queryField} != null && ${column.javaField}${column.queryField}.length == 2) {
${column.javaType} start = ${column.javaField}${column.queryField}[0];
if (#if($column.javaType == 'String')!StringUtils.isEmpty(start)#{else}start != null#end) {
qw.ge("${column.columnName}", start);
}
${column.javaType} end = ${column.javaField}Range[0];
if (#if($column.javaType == 'String')!StringUtils.isEmpty(end) #{else}end != null#end) {
qw.le("${column.columnName}", end);
}
}
#else
${column.javaType} ${column.javaField}${column.queryField} = query.get${column.capJavaField}${column.queryField}();
if (#if($column.javaType == 'String')!StringUtils.isEmpty(${column.javaField}${column.queryField})#{else}${column.javaField}${column.queryField} != null#end) {
qw.${column.queryMethod}("${column.columnName}", ${column.javaField}${column.queryField});
}
#end
#end
#end
return ${className}Mapper.selectList(qw);
}
/**
* 新增${functionName}
@ -31,7 +87,24 @@ public interface I${ClassName}Service {
* @param ${className} ${functionName}
* @return 结果
*/
int insert${ClassName}(${ClassName} ${className});
#if($table.sub)
@Transactional
#end
public int insert(${ClassName} ${className}) {
${className}.setDelFlag(0);
#foreach ($column in $columns)
#if($column.javaField == 'createTime')
${className}.setCreateTime(#if($column.javaType == "Date")new Date()#else${column.javaType}.now()#end);
#end
#end
#if($table.sub)
int rows = ${className}Mapper.insert(${className});
insert${subClassName}(${className});
return rows;
#else
return ${className}Mapper.insert(${className});
#end
}
/**
* 修改${functionName}
@ -39,15 +112,29 @@ public interface I${ClassName}Service {
* @param ${className} ${functionName}
* @return 结果
*/
int update${ClassName}(${ClassName} ${className});
#if($table.sub)
@Transactional
#end
public int update(${ClassName} ${className}) {
#if($table.sub)
${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());
insert${subClassName}(${className});
#end
return ${className}Mapper.updateById(${className});
}
/**
* 批量删除${functionName}
*
* @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合
* @param ${pkColumn.javaField}s 需要删除的${functionName}主键
* @return 结果
*/
int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
#if($table.sub)
@Transactional
#end
public int deleteBy${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) {
return ${className}Mapper.updateDelFlagByIds(${pkColumn.javaField}s);
}
/**
* 删除${functionName}信息
@ -55,5 +142,8 @@ public interface I${ClassName}Service {
* @param ${pkColumn.javaField} ${functionName}主键
* @return 结果
*/
int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
public int deleteBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
Long[] ${pkColumn.javaField}s = {${pkColumn.javaField}};
return ${className}Mapper.updateDelFlagByIds(${pkColumn.javaField}s);
}
}

@ -1,22 +1,22 @@
package ${packageName}.service.impl;
package ${fullPackage};
import java.util.Arrays;
import java.util.List;
#if($table.hasDate())
#foreach($date in $table.dateImports())
import $date;
#end
#end
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
#if($table.sub)
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import ${packageName}.domain.${subClassName};
#end
import ${packageName}.mapper.${ClassName}Mapper;
import ${packageName}.domain.${ClassName};
import ${packageName}.service.I${ClassName}Service;
import org.apache.commons.lang3.StringUtils;
import ${_fullClass.mapper};
import ${_fullClass.domain};
import ${_fullClass.query};
import ${_fullClass.service};
/**
* ${functionName}Service业务层处理
@ -24,9 +24,9 @@ import ${packageName}.service.I${ClassName}Service;
* @author ${author}
*/
@Service
public class ${ClassName}ServiceImpl implements I${ClassName}Service {
public class ${_className.serviceImpl} implements ${_className.service} {
@Autowired
private ${ClassName}Mapper ${className}Mapper;
private ${_className.mapper} ${className}Mapper;
/**
* 查询${functionName}
@ -35,19 +35,48 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
* @return ${functionName}
*/
@Override
public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
public ${ClassName} selectBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
return ${className}Mapper.selectBy${pkColumn.capJavaField}(${pkColumn.javaField});
}
/**
* 查询${functionName}列表
*
* @param ${className} ${functionName}
* @param query 查询条件
* @param page 分页条件
* @return ${functionName}
*/
@Override
public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) {
return ${className}Mapper.selectList(${className});
public List<${_className.domain}> selectList(${_className.query} query, Pageable page) {
if (page != null) {
PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize());
}
QueryWrapper<${_className.domain}> qw = new QueryWrapper<>();
#foreach($column in $columns)
#if($column.query)
## 根据查询类型生成 EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围
## 范围查询, 使用数组实现
#if($column.queryType == 'BETWEEN')
${column.javaType}[] ${column.javaField}${column.queryField} = query.get${column.capJavaField}${column.queryField}();
if (${column.javaField}${column.queryField} != null && ${column.javaField}${column.queryField}.length == 2) {
${column.javaType} start = ${column.javaField}${column.queryField}[0];
if (#if($column.javaType == 'String')!StringUtils.isEmpty(start)#{else}start != null#end) {
qw.ge("${column.columnName}", start);
}
${column.javaType} end = ${column.javaField}Range[0];
if (#if($column.javaType == 'String')!StringUtils.isEmpty(end) #{else}end != null#end) {
qw.le("${column.columnName}", end);
}
}
#else
${column.javaType} ${column.javaField}${column.queryField} = query.get${column.capJavaField}${column.queryField}();
if (#if($column.javaType == 'String')!StringUtils.isEmpty(${column.javaField}${column.queryField})#{else}${column.javaField}${column.queryField} != null#end) {
qw.${column.queryMethod}("${column.columnName}", ${column.javaField}${column.queryField});
}
#end
#end
#end
return ${className}Mapper.selectList(qw);
}
/**
@ -60,7 +89,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
@Transactional
#end
@Override
public int insert${ClassName}(${ClassName} ${className}) {
public int insert(${ClassName} ${className}) {
#foreach ($column in $columns)
#if($column.javaField == 'createTime')
${className}.setCreateTime(#if($column.javaType == "Date")new Date()#else${column.javaType}.now()#end);
@ -85,17 +114,12 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
@Transactional
#end
@Override
public int update${ClassName}(${ClassName} ${className}) {
#foreach ($column in $columns)
#if($column.javaField == 'updateTime')
${className}.setUpdateTime(DateUtils.getNowDate());
#end
#end
public int update(${ClassName} ${className}) {
#if($table.sub)
${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());
insert${subClassName}(${className});
#end
return ${className}Mapper.update(${className});
return ${className}Mapper.updateById(${className});
}
/**
@ -108,11 +132,11 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
@Transactional
#end
@Override
public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) {
public int deleteBy${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) {
#if($table.sub)
${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s);
#end
return ${className}Mapper.deleteBy${pkColumn.capJavaField}s(${pkColumn.javaField}s);
return ${className}Mapper.deleteBatchIds(Arrays.asList(${pkColumn.javaField}s));
}
/**
@ -122,32 +146,10 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
* @return 结果
*/
@Override
public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
public int deleteBy${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) {
#if($table.sub)
${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField});
#end
return ${className}Mapper.deleteBy${pkColumn.capJavaField}(${pkColumn.javaField});
}
#if($table.sub)
/**
* 新增${subTable.functionName}信息
*
* @param ${className} ${functionName}对象
*/
public void insert${subClassName}(${ClassName} ${className}) {
List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List();
${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}();
if (StringUtils.isNotNull(${subclassName}List)) {
List<${subClassName}> list = new ArrayList<${subClassName}>();
for (${subClassName} ${subclassName} : ${subclassName}List) {
${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
list.add(${subclassName});
}
if (list.size() > 0) {
${className}Mapper.batch${subClassName}(list);
return ${className}Mapper.deleteById(${pkColumn.javaField});
}
}
}
#end
}

@ -1,10 +1,12 @@
package ${packageName}.pojo.vo;
package ${fullPackage};
#foreach ($import in $importList)
import ${import};
#end
import com.ruoyi.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
#if(${table.audit} == 1)
import com.bryx.core.common.base.entity.BaseAudit;
import ${env.baseAudit};
#end
#if($table.sub)
import ${packageName}.pojo.dto.${subClassName}DTO;
@ -18,7 +20,24 @@ import lombok.Data;
@Data
public class ${ClassName}VO #if(${table.audit} == 1)extends BaseAudit#end {
#foreach ($column in $columns)
#if(!$table.isSuperColumn($column.javaField))
#if(!$table.isSuperColumn($column.javaField) and $column.javaField != "delFlag")
/** $column.columnComment */
#if($column.list)
#set($parentheseIndex=$column.columnComment.indexOf(""))
#if($parentheseIndex != -1)
#set($comment=$column.columnComment.substring(0, $parentheseIndex))
#else
#set($comment=$column.columnComment)
#end
#if($parentheseIndex != -1)
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
#elseif($column.isDate())
@JsonFormat(pattern = "${column.dateFormat}")
@Excel(name = "${comment}", width = 30, dateFormat = "${column.dateFormat}")
#else
@Excel(name = "${comment}")
#end
#end
private $column.javaType $column.javaField;
#end
#end

@ -1,18 +1,19 @@
import request from '@/utils/request'
// 查询${functionName}列表
export function list${BusinessName}(query) {
export function list${BusinessName}(query, pageReq) {
return request({
url: '/${moduleName}/${businessName}/list',
method: 'get',
params: query
url: '/${moduleName}/${className}/list',
method: 'post',
data: query,
params: pageReq
})
}
// 查询${functionName}详细
export function get${BusinessName}(${pkColumn.javaField}) {
return request({
url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField},
url: '/${moduleName}/${className}/' + ${pkColumn.javaField},
method: 'get'
})
}
@ -20,7 +21,7 @@ export function get${BusinessName}(${pkColumn.javaField}) {
// 新增${functionName}
export function add${BusinessName}(data) {
return request({
url: '/${moduleName}/${businessName}',
url: '/${moduleName}/${className}',
method: 'post',
data: data
})
@ -29,7 +30,7 @@ export function add${BusinessName}(data) {
// 修改${functionName}
export function update${BusinessName}(data) {
return request({
url: '/${moduleName}/${businessName}',
url: '/${moduleName}/${className}',
method: 'put',
data: data
})
@ -38,7 +39,7 @@ export function update${BusinessName}(data) {
// 删除${functionName}
export function del${BusinessName}(${pkColumn.javaField}) {
return request({
url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField},
url: '/${moduleName}/${className}/' + ${pkColumn.javaField},
method: 'delete'
})
}
@ -46,7 +47,7 @@ export function del${BusinessName}(${pkColumn.javaField}) {
// 导出${functionName}
export function export${BusinessName}(query) {
return request({
url: '/${moduleName}/${businessName}/export',
url: '/${moduleName}/${className}/export',
method: 'get',
params: query
})

@ -1,22 +1,22 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 1, sysdate(), '', null, '${functionName}菜单');
values('${functionName}', '${parentMenuId}', '1', '${className}', '${moduleName}/${className}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 1, sysdate(), 1, null, '${functionName}菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${functionName}查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 1, sysdate(), '', null, '');
values('${functionName}查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 1, sysdate(), 1, null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${functionName}新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 1, sysdate(), '', null, '');
values('${functionName}新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 1, sysdate(), 1, null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${functionName}修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 1, sysdate(), '', null, '');
values('${functionName}修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 1, sysdate(), 1, null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${functionName}删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 1, sysdate(), '', null, '');
values('${functionName}删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 1, sysdate(), 1, null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${functionName}导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 1, sysdate(), '', null, '');
values('${functionName}导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 1, sysdate(), 1, null, '');

@ -18,7 +18,7 @@
#if($column.htmlType == "input")
<el-form-item label="${comment}" prop="${column.javaField}">
<el-input
v-model="queryParams.${column.javaField}"
v-model.trim="queryParams.${column.javaField}"
placeholder="请输入${comment}"
clearable
size="small"
@ -41,7 +41,7 @@
</el-select>
</el-form-item>
#elseif($column.htmlType == "datetime" || $column.htmlType == "date")
#set($valueFormat = 'yyyy-MM-dd HH:mm:ss')
#set($valueFormat = 'yyyy-MM-ddTHH:mm:ss')
#if($column.htmlType == "date")
#set($valueFormat = 'yyyy-MM-dd')
#end
@ -143,7 +143,7 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange">
<WmsTable v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
#set($count0 = 0)
#foreach($column in $columns)
@ -155,7 +155,7 @@
#set($comment=$column.columnComment)
#end
#if($column.pk)
<el-table-column label="${comment}" align="center" prop="${javaField}" />
## id字段不展示
#elseif($column.list)
#if($column.htmlType == "datetime" || $column.htmlType == "date" || $column.htmlType == "time")
#set($valueFormat = '')
@ -199,7 +199,7 @@
>删除</el-button>
</template>
</el-table-column>
</el-table>
</WmsTable>
<pagination
v-show="total>0"
@ -214,7 +214,7 @@
<el-form ref="form" :model="form" :rules="rules" label-width="108px" inline class="dialog-form-two">
#foreach($column in $columns)
#set($field=$column.javaField)
#if($column.insert && !$column.pk)
#if($column.insert && !$column.pk && $field!="delFlag")
#if(($column.usableColumn) || (!$column.superColumn))
#set($parentheseIndex=$column.columnComment.indexOf(""))
#if($parentheseIndex != -1)
@ -225,7 +225,7 @@
#set($dictType=$column.dictType)
#if($column.htmlType == "input")
<el-form-item label="${comment}" prop="${field}">
<el-input v-model="form.${field}" placeholder="请输入${comment}" />
<el-input v-model.trim="form.${field}" placeholder="请输入${comment}" />
</el-form-item>
#elseif($column.htmlType == "imageUpload")
<el-form-item label="${comment}">
@ -290,7 +290,7 @@
</el-radio-group>
</el-form-item>
#elseif($column.htmlType == "datetime" || $column.htmlType == "date" || $column.htmlType == "time")
#set($valueFormat = 'yyyy-MM-dd HH:mm:ss')
#set($valueFormat = 'yyyy-MM-ddTHH:mm:ss')
#if($column.htmlType == "date")
#set($valueFormat = 'yyyy-MM-dd')
#elseif($column.htmlType == "time")
@ -322,7 +322,7 @@
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete${subClassName}">删除</el-button>
</el-col>
</el-row>
<el-table :data="${subclassName}List" :row-class-name="row${subClassName}Index" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
<WmsTable :data="${subclassName}List" :row-class-name="row${subClassName}Index" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
#foreach($column in $subTable.columns)
@ -337,12 +337,12 @@
#elseif($column.list && "" != $javaField)
<el-table-column label="$comment" prop="${javaField}">
<template slot-scope="scope">
<el-input v-model="scope.row.$javaField" placeholder="请输入$comment" />
<el-input v-model.trim="scope.row.$javaField" placeholder="请输入$comment" />
</template>
</el-table-column>
#end
#end
</el-table>
</WmsTable>
#end
</el-form>
<div slot="footer" class="dialog-footer">
@ -354,7 +354,7 @@
</template>
<script>
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}";
import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${className}";
export default {
name: "${BusinessName}",
@ -414,7 +414,7 @@ export default {
// 表单校验
rules: {
#foreach ($column in $columns)
#if($column.required)
#if($column.required && $column.javaField!="delFlag")
#set($parentheseIndex=$column.columnComment.indexOf(""))
#if($parentheseIndex != -1)
#set($comment=$column.columnComment.substring(0, $parentheseIndex))
@ -464,9 +464,13 @@ export default {
}
#end
#end
list${BusinessName}(this.queryParams).then(response => {
this.${businessName}List = response.rows;
this.total = response.total;
const {pageNum, pageSize} = this.queryParams;
const query = {...this.queryParams, pageNum: undefined, pageSize: undefined};
const pageReq = {page: pageNum - 1, size: pageSize};
list${BusinessName}(query, pageReq).then(response => {
const { content, totalElements } = response
this.${businessName}List = content;
this.total = totalElements;
this.loading = false;
});
},
@ -479,6 +483,7 @@ export default {
reset() {
this.form = {
#foreach ($column in $columns)
#if($column.javaField != "delFlag")
#if($column.htmlType == "radio")
$column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0#else"0"#end#if($velocityCount != $columns.size()),#end
@ -488,6 +493,7 @@ export default {
#else
$column.javaField: null#if($velocityCount != $columns.size()),#end
#end
#end
#end
};
@ -529,7 +535,7 @@ export default {
this.reset();
const ${pkColumn.javaField} = row.${pkColumn.javaField} || this.ids
get${BusinessName}(${pkColumn.javaField}).then(response => {
this.form = response.data;
this.form = response;
#foreach ($column in $columns)
#if($column.htmlType == "checkbox")
this.form.$column.javaField = this.form.${column.javaField}.split(",");
@ -620,7 +626,7 @@ export default {
this.exportLoading = true;
return export${BusinessName}(queryParams);
}).then(response => {
this.download(response.msg);
this.$download.download(response);
this.exportLoading = false;
}).catch(() => {});
}

@ -15,30 +15,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" />
#end
</resultMap>
#if($table.sub)
<resultMap id="${ClassName}${subClassName}Result" type="${ClassName}" extends="${ClassName}Result">
<collection property="${subclassName}List" notNullColumn="sub_${subTable.pkColumn.columnName}" javaType="java.util.List" resultMap="${subClassName}Result" />
</resultMap>
<resultMap type="${subClassName}" id="${subClassName}Result">
#foreach ($column in $subTable.columns)
<result property="${column.javaField}" column="sub_${column.columnName}" />
#end
#if(${subTable.audit} == 1)
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time" />
#end
</resultMap>
#end
<sql id="select${ClassName}Vo">
select#foreach($column in $columns) $column.columnName#if($velocityCount != $columns.size()),#end#end #if(${table.audit} == 1), create_by, create_time, update_by, update_time#end from ${tableName}
select#foreach($column in $columns) $column.columnName#if($velocityCount != $columns.size()),#end#end #if(${table.audit} == 1) #end from ${tableName}
</sql>
<select id="selectList" parameterType="${ClassName}" resultMap="${ClassName}Result">
<select id="selectByEntity" parameterType="${ClassName}" resultMap="${ClassName}Result">
<include refid="select${ClassName}Vo"/>
<where>
#foreach($column in $columns)
@ -70,131 +52,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<select id="selectBy${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}" resultMap="#if($table.sub)${subClassName}Result#else${ClassName}Result#end">
#if($table.crud || $table.tree)
<include refid="select${ClassName}Vo"/>
where ${pkColumn.columnName} = #{${pkColumn.javaField}}
#elseif($table.sub)
select#foreach($column in $columns) a.$column.columnName#if($velocityCount != $columns.size()),#end#end,
#foreach($column in $subTable.columns) b.$column.columnName as sub_$column.columnName#if($velocityCount != $subTable.columns.size()),#end#end
from ${tableName} a
left join ${subTableName} b on b.${subTableFkName} = a.${pkColumn.columnName}
where a.${pkColumn.columnName} = #{${pkColumn.javaField}}
#end
</select>
<insert id="insert" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end>
insert into ${tableName}
<trim prefix="(" suffix=")" suffixOverrides=",">
#foreach($column in $columns)
<if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName,</if>
#end
#if(${table.audit} == 1)
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
#end
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#foreach($column in $columns)
<if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">#{$column.javaField},</if>
#end
#if(${table.audit} == 1)
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
#end
</trim>
</insert>
<update id="update" parameterType="${ClassName}">
update ${tableName}
<trim prefix="SET" suffixOverrides=",">
#foreach($column in $columns)
#if($column.columnName != $pkColumn.columnName)
<if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName = #{$column.javaField},</if>
#end
#end
#if(${table.audit} == 1)
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
#end
</trim>
where ${pkColumn.columnName} = #{${pkColumn.javaField}}
<update id="updateDelFlagByIds">
update ${tableName} set del_flag=1
<where>
id in <foreach collection="ids" open="(" item="it" close=")" separator=",">#{it}</foreach>
</where>
</update>
<delete id="deleteBy${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}">
delete from ${tableName} where ${pkColumn.columnName} = #{${pkColumn.javaField}}
</delete>
<delete id="deleteBy${pkColumn.capJavaField}s" parameterType="String">
delete from ${tableName} where ${pkColumn.columnName} in
<foreach item="${pkColumn.javaField}" collection="array" open="(" separator="," close=")">
#{${pkColumn.javaField}}
</foreach>
</delete>
<insert id="insertOrUpdate" parameterType="${ClassName}" useGeneratedKeys="true" keyProperty="id">
insert into ${tableName}
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="$pkColumn.javaField != null">
$pkColumn.columnName,
</if>
#foreach($column in $columns)#if($column.javaField != $pkColumn.javaField) ${column.columnName},#end#end
#if(${table.audit} == 1)create_by, create_time, update_by, update_time#end
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="$pkColumn.javaField != null">
#{$pkColumn.javaField, jdbcType=$pkColumn.CapColumnType},
</if>
#foreach($column in $columns)#if($column.javaField != $pkColumn.javaField)#{${column.javaField}, jdbcType=$column.CapColumnType},#end#end
#if(${table.audit} == 1)#{createBy}, #{createTime}, #{updateBy}, #{updateTime}#end
</trim>
on duplicate key update
<trim suffixOverrides=",">
<if test="$pkColumn.javaField != null">
${pkColumn.javaField} = #{${pkColumn.javaField},jdbcType=${pkColumn.CapColumnType}},
</if>
#foreach($column in $columns)
#if($column.javaField != $pkColumn.javaField)
${column.columnName} = #{${column.javaField}, jdbcType=$column.CapColumnType},
#end
#end
#if(${table.audit} == 1)
create_by = #{createBy},
create_time = #{createTime},
update_by = #{updateBy},
update_time = #{updateTime},
#end
</trim>
</insert>
#if($table.sub)
<delete id="delete${subClassName}By${subTableFkClassName}s" parameterType="String">
delete from ${subTableName} where ${subTableFkName} in
<foreach item="${subTableFkclassName}" collection="array" open="(" separator="," close=")">
#{${subTableFkclassName}}
</foreach>
</delete>
<delete id="delete${subClassName}By${subTableFkClassName}" parameterType="${pkColumn.javaType}">
delete from ${subTableName} where ${subTableFkName} = #{${subTableFkclassName}}
</delete>
<insert id="batch${subClassName}">
insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($velocityCount != $subTable.columns.size()),#end#end #if(${table.audit} == 1), create_by, create_time, update_by, update_time#end) values
<foreach item="item" index="index" collection="list" separator=",">
(#foreach($column in $subTable.columns)#{item.$column.javaField}#if($velocityCount != $subTable.columns.size()), #end#end #if(${table.audit} == 1), #{createBy}, #{createTime}, #{updateBy}, #{updateTime}#end)
</foreach>
</insert>
#end
</mapper>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save