controller.java.vm
package ${packageName}.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import com.zzyl.common.core.domain.R; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.zzyl.common.annotation.Log; import com.zzyl.common.core.controller.BaseController; import com.zzyl.common.core.domain.AjaxResult; import com.zzyl.common.enums.BusinessType; import ${packageName}.domain.${ClassName}; import ${packageName}.service.I${ClassName}Service; import com.zzyl.common.utils.poi.ExcelUtil; #if($table.crud || $table.sub) import com.zzyl.common.core.page.TableDataInfo; #elseif($table.tree) #end /** * ${functionName}Controller * * @author ${author} * @date ${datetime} */ ("/${moduleName}/${businessName}") (tags = "${functionName}相关接口") public class ${ClassName}Controller extends BaseController { private I${ClassName}Service ${className}Service; /** * 查询${functionName}列表 */ ("@ss.hasPermi('${permissionPrefix}:list')") ("/list") ("查询${functionName}列表") #if($table.crud || $table.sub) public TableDataInfo<List<${ClassName}>> 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 success(list); } #end /** * 导出${functionName}列表 */ ("@ss.hasPermi('${permissionPrefix}:export')") (title = "${functionName}", businessType = BusinessType.EXPORT) ("/export") ("导出${functionName}列表") public void export(HttpServletResponse response, ${ClassName} ${className}) { List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class); util.exportExcel(response, list, "${functionName}数据"); } /** * 获取${functionName}详细信息 */ ("@ss.hasPermi('${permissionPrefix}:query')") (value = "/{${pkColumn.javaField}}") ("获取${functionName}详细信息") public R<${ClassName}> getInfo((value = "${functionName}ID", required = true) ("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) { return R.ok(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField})); } /** * 新增${functionName} */ ("@ss.hasPermi('${permissionPrefix}:add')") (title = "${functionName}", businessType = BusinessType.INSERT) ("新增${functionName}") public AjaxResult add((value = "${functionName}实体", required = true) ${ClassName} ${className}) { return toAjax(${className}Service.insert${ClassName}(${className})); } /** * 修改${functionName} */ ("@ss.hasPermi('${permissionPrefix}:edit')") (title = "${functionName}", businessType = BusinessType.UPDATE) ("修改${functionName}") public AjaxResult edit((value = "${functionName}实体", required = true) ${ClassName} ${className}) { return toAjax(${className}Service.update${ClassName}(${className})); } /** * 删除${functionName} */ ("@ss.hasPermi('${permissionPrefix}:remove')") (title = "${functionName}", businessType = BusinessType.DELETE) ("/{${pkColumn.javaField}s}") ("删除${functionName}") public AjaxResult remove((value = "${functionName}IDS", required = true) ${pkColumn.javaType}[] ${pkColumn.javaField}s) { return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s)); } }
domain.java.vm
package ${packageName}.domain; #foreach ($import in $importList) import ${import}; #end import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import com.zzyl.common.annotation.Excel; #if($table.crud || $table.sub) import com.zzyl.common.core.domain.BaseEntity; #elseif($table.tree) import com.zzyl.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 (callSuper = true) ("${functionName}实体") public class ${ClassName} extends ${Entity} { private static final long serialVersionUID = 1L; #foreach ($column in $columns) #if(!$table.isSuperColumn($column.javaField)) /** * $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) (name = "${comment}", readConverterExp = "$column.readConverterExp()") ## #elseif($column.javaType == 'Date' ) ## (pattern = "yyyy-MM-dd") #elseif($column.javaType == 'Date'|| $column.javaType == 'LocalDateTime') (pattern = "yyyy-MM-dd HH:mm:ss") (name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") #else (name = "${comment}") #end #end #if($column.javaField == 'id') (value = "主键ID") private $column.javaType $column.javaField; #else (value = "${comment}") private $column.javaType $column.javaField; #end #end #end ###if($table.sub) ## /** $table.subTable.functionName信息 */ ## 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 ## ## 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(); ## } }
mapper.java.vm
package ${packageName}.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import ${packageName}.domain.${ClassName}; #if($table.sub) import ${packageName}.domain.${subClassName}; #end /** * ${functionName}Mapper接口 * * @author ${author} * @date ${datetime} */ public interface ${ClassName}Mapper extends BaseMapper<${ClassName}> { /** * 查询${functionName} * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); /** * 查询${functionName}列表 * * @param ${className} ${functionName} * @return ${functionName}集合 */ public List<${ClassName}> select${ClassName}List(${ClassName} ${className}); /** * 新增${functionName} * * @param ${className} ${functionName} * @return 结果 */ public int insert${ClassName}(${ClassName} ${className}); /** * 修改${functionName} * * @param ${className} ${functionName} * @return 结果 */ public int update${ClassName}(${ClassName} ${className}); /** * 删除${functionName} * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); /** * 批量删除${functionName} * * @param ${pkColumn.javaField}s 需要删除的数据主键集合 * @return 结果 */ public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); #if($table.sub) /** * 批量删除${subTable.functionName} * * @param ${pkColumn.javaField}s 需要删除的数据主键集合 * @return 结果 */ public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); /** * 批量新增${subTable.functionName} * * @param ${subclassName}List ${subTable.functionName}列表 * @return 结果 */ public int batch${subClassName}(List<${subClassName}> ${subclassName}List); /** * 通过${functionName}主键删除${subTable.functionName}信息 * * @param ${pkColumn.javaField} ${functionName}ID * @return 结果 */ public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); #end }
service.java.vm
package ${packageName}.service; import java.util.List; import ${packageName}.domain.${ClassName}; import com.baomidou.mybatisplus.extension.service.IService; /** * ${functionName}Service接口 * * @author ${author} * @date ${datetime} */ public interface I${ClassName}Service extends IService<${ClassName}> { /** * 查询${functionName} * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); /** * 查询${functionName}列表 * * @param ${className} ${functionName} * @return ${functionName}集合 */ public List<${ClassName}> select${ClassName}List(${ClassName} ${className}); /** * 新增${functionName} * * @param ${className} ${functionName} * @return 结果 */ public int insert${ClassName}(${ClassName} ${className}); /** * 修改${functionName} * * @param ${className} ${functionName} * @return 结果 */ public int update${ClassName}(${ClassName} ${className}); /** * 批量删除${functionName} * * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合 * @return 结果 */ public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); /** * 删除${functionName}信息 * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); }
serviceImpl.java.vm
package ${packageName}.service.impl; import java.util.List; #if($table.sub) import java.util.ArrayList; import com.zzyl.common.utils.StringUtils; import org.springframework.transaction.annotation.Transactional; import ${packageName}.domain.${subClassName}; #end import org.springframework.stereotype.Service; import ${packageName}.domain.${ClassName}; import ${packageName}.service.I${ClassName}Service; import ${packageName}.mapper.${ClassName}Mapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javax.annotation.Resource; #foreach ($column in $columns) #if($column.javaField == 'createTime' || $column.javaField == 'updateTime') #break #end #end /** * ${functionName}Service业务层处理 * * @author ${author} * @date ${datetime} */ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service { private ${ClassName}Mapper ${className}Mapper; /** * 查询${functionName} * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { ##return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); return getById(${pkColumn.javaField}); } /** * 查询${functionName}列表 * * @param ${className} ${functionName} * @return ${functionName} */ public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) { return ${className}Mapper.select${ClassName}List(${className}); } /** * 新增${functionName} * * @param ${className} ${functionName} * @return 结果 */ #if($table.sub) #end public int insert${ClassName}(${ClassName} ${className}) { ## #foreach ($column in $columns) ## #if($column.javaField == 'createTime') ## ${className}.setCreateTime(DateUtils.getNowDate()); ## #end ## #end #if($table.sub) int rows = ${className}Mapper.insert${ClassName}(${className}); insert${subClassName}(${className}); return rows; #else ##return ${className}Mapper.insert${ClassName}(${className}); return save(${className}) ? 1 : 0; #end } /** * 修改${functionName} * * @param ${className} ${functionName} * @return 结果 */ #if($table.sub) #end public int update${ClassName}(${ClassName} ${className}) { ## #foreach ($column in $columns) ## #if($column.javaField == 'updateTime') ## ${className}.setUpdateTime(DateUtils.getNowDate()); ## #end ## #end ## #if($table.sub) ## ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()) ## ; ## insert${subClassName}(${className}); ## #end ## return ${className}Mapper.update${ClassName}(${className}); return updateById(${className}) ? 1 : 0; } /** * 批量删除${functionName} * * @param ${pkColumn.javaField}s 需要删除的数据主键集合 * @return 结果 */ #if($table.sub) #end public int delete${ClassName}By${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.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s); } /** * 删除${functionName}信息 * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ #if($table.sub) #end public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { #if($table.sub) ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); #end ## return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); return removeById(${pkColumn.javaField}) ? 1 : 0; } #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); } } } #end }