若依开源1.1.1发布

This commit is contained in:
RuoYi
2018-04-23 00:00:29 +08:00
commit 262ee25d8e
453 changed files with 66923 additions and 0 deletions

View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-${classname}-add">
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName)
<div class="form-group">
<label class="col-sm-3 control-label">${column.columnComment}</label>
<div class="col-sm-8">
<input id="${column.attrname}" name="${column.attrname}" class="form-control" type="text">
</div>
</div>
#end
#end
<div class="form-group">
<div class="col-sm-8 col-sm-offset-3">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/${moduleName}/${classname}/add.js">
</script>
</body>
</html>

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-${classname}-edit">
<input id="${primaryKey.attrname}" name="${primaryKey.attrname}" th:value="${${classname}.${primaryKey.attrname}}" type="hidden">
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName)
<div class="form-group">
<label class="col-sm-3 control-label">${column.columnComment}</label>
<div class="col-sm-8">
<input id="${column.attrname}" name="${column.attrname}" th:value="${${classname}.${column.attrname}}" class="form-control" type="text">
</div>
</div>
#end
#end
<div class="form-group">
<div class="col-sm-8 col-sm-offset-3">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/${moduleName}/${classname}/edit.js">
</script>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add()'" shiro:hasPermission="${moduleName}:${classname}:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="${moduleName}:${classname}:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/${moduleName}/${classname}/${classname}.js"></script>
<script th:inline="javascript" type="text/javascript">
var editFlag = [[${@permissionService.hasPermi('${moduleName}:${classname}:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('${moduleName}:${classname}:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,123 @@
package ${package}.controller;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import ${package}.domain.${className};
import ${package}.service.I${className}Service;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.page.TableDataInfo;
import com.ruoyi.framework.web.domain.JSON;
/**
* ${tableComment} 控制层处理
*
* @author ${author}
* @date ${datetime}
*/
@Controller
@RequestMapping("/${moduleName}/${classname}")
public class ${className}Controller extends BaseController
{
private String prefix = "${moduleName}/${classname}";
@Autowired
private I${className}Service ${classname}Service;
@GetMapping()
@RequiresPermissions("${moduleName}:${classname}:view")
String ${classname}()
{
return prefix + "/${classname}";
}
/**
* 查询${tableComment}列表
*/
@GetMapping("/list")
@RequiresPermissions("${moduleName}:${classname}:list")
@ResponseBody
public TableDataInfo list(${className} ${classname})
{
setPageInfo(${classname});
List<${className}> list = ${classname}Service.select${className}List(${classname});
return getDataTable(list);
}
/**
* 新增${tableComment}
*/
@GetMapping("/add")
@RequiresPermissions("${moduleName}:${classname}:add")
public String add()
{
return prefix + "/add";
}
/**
* 修改${tableComment}
*/
@GetMapping("/edit/{${primaryKey.attrname}}")
@RequiresPermissions("${moduleName}:${classname}:edit")
public String edit(@PathVariable("${primaryKey.attrname}") ${primaryKey.attrType} ${primaryKey.attrname}, Model model)
{
${className} ${classname} = ${classname}Service.select${className}ById(${primaryKey.attrname});
model.addAttribute("${classname}", ${classname});
return prefix + "/edit";
}
/**
* 保存${tableComment}
*/
@ResponseBody
@PostMapping("/save")
@RequiresPermissions("${moduleName}:${classname}:add")
public JSON save(${className} ${classname})
{
if (${classname}Service.save${className}(${classname}) > 0)
{
return JSON.ok();
}
return JSON.error();
}
/**
* 删除${tableComment}
*/
@PostMapping( "/remove/{${primaryKey.attrname}}")
@ResponseBody
@RequiresPermissions("${moduleName}:${classname}:remove")
public JSON remove(@PathVariable("${primaryKey.attrname}") ${primaryKey.attrType} ${primaryKey.attrname})
{
if (${classname}Service.delete${className}ById(${primaryKey.attrname}) > 0)
{
return JSON.ok();
}
return JSON.error();
}
/**
* 批量删除${tableComment}
*/
@PostMapping( "/batchRemove")
@ResponseBody
@RequiresPermissions("${moduleName}:${classname}:batchRemove")
public JSON remove(@RequestParam("ids[]") ${primaryKey.attrType}[] ${primaryKey.attrname}s)
{
int rows = ${classname}Service.batchDelete${className}(${primaryKey.attrname}s);
if (rows > 0)
{
return JSON.ok();
}
return JSON.error();
}
}

View File

@ -0,0 +1,63 @@
package ${package}.dao;
import ${package}.domain.${className};
import java.util.List;
/**
* ${tableComment} 数据层
*
* @author ${author}
* @date ${datetime}
*/
public interface I${className}Dao
{
/**
* 查询${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return ${tableComment}信息
*/
public ${className} select${className}ById(${primaryKey.attrType} ${primaryKey.attrname});
/**
* 查询${tableComment}列表
*
* @param ${classname} ${tableComment}信息
* @return ${tableComment}集合
*/
public List<${className}> select${className}List(${className} ${classname});
/**
* 新增${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int insert${className}(${className} ${classname});
/**
* 修改${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int update${className}(${className} ${classname});
/**
* 删除${tableComment}
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return 结果
*/
public int delete${className}ById(${primaryKey.attrType} ${primaryKey.attrname});
/**
* 批量删除${tableComment}
*
* @param ${primaryKey.attrname}s 需要删除的数据ID
* @return 结果
*/
public int batchDelete${className}(${primaryKey.attrType}[] ${primaryKey.attrname}s);
}

View File

@ -0,0 +1,71 @@
package ${package}.service;
import ${package}.domain.${className};
import java.util.List;
/**
* ${tableComment} 服务层
*
* @author ${author}
* @date ${datetime}
*/
public interface I${className}Service
{
/**
* 查询${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return ${tableComment}信息
*/
public ${className} select${className}ById(${primaryKey.attrType} ${primaryKey.attrname});
/**
* 查询${tableComment}列表
*
* @param ${classname} ${tableComment}信息
* @return ${tableComment}集合
*/
public List<${className}> select${className}List(${className} ${classname});
/**
* 新增${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int insert${className}(${className} ${classname});
/**
* 修改${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int update${className}(${className} ${classname});
/**
* 保存${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int save${className}(${className} ${classname});
/**
* 删除${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return 结果
*/
public int delete${className}ById(${primaryKey.attrType} ${primaryKey.attrname});
/**
* 批量删除${tableComment}信息
*
* @param ${primaryKey.attrname}s 需要删除的数据ID
* @return 结果
*/
public int batchDelete${className}(${primaryKey.attrType}[] ${primaryKey.attrname}s);
}

View File

@ -0,0 +1,117 @@
package ${package}.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.StringUtils;
import ${package}.dao.I${className}Dao;
import ${package}.domain.${className};
import ${package}.service.I${className}Service;
/**
* ${tableComment} 服务层实现
*
* @author ${author}
* @date ${datetime}
*/
@Service
public class ${className}ServiceImpl implements I${className}Service
{
@Autowired
private I${className}Dao ${classname}Dao;
/**
* 查询${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return ${tableComment}信息
*/
@Override
public ${className} select${className}ById(${primaryKey.attrType} ${primaryKey.attrname})
{
return ${classname}Dao.select${className}ById(${primaryKey.attrname});
}
/**
* 查询${tableComment}列表
*
* @param ${classname} ${tableComment}信息
* @return ${tableComment}集合
*/
@Override
public List<${className}> select${className}List(${className} ${classname})
{
return ${classname}Dao.select${className}List(${classname});
}
/**
* 新增${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
@Override
public int insert${className}(${className} ${classname})
{
return ${classname}Dao.insert${className}(${classname});
}
/**
* 修改${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
@Override
public int update${className}(${className} ${classname})
{
return ${classname}Dao.update${className}(${classname});
}
/**
* 保存${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
@Override
public int save${className}(${className} ${classname})
{
${primaryKey.attrType} ${primaryKey.attrname} = ${classname}.get${primaryKey.attrName}();
int rows = 0;
if (StringUtils.isNotNull(${primaryKey.attrname}))
{
rows = ${classname}Dao.update${className}(${classname});
}
else
{
rows = ${classname}Dao.insert${className}(${classname});
}
return rows;
}
/**
* 删除${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return 结果
*/
@Override
public int delete${className}ById(${primaryKey.attrType} ${primaryKey.attrname})
{
return ${classname}Dao.delete${className}ById(${primaryKey.attrname});
}
/**
* 批量删除${tableComment}对象
*
* @param ${primaryKey.attrname}s 需要删除的数据ID
* @return 结果
*/
@Override
public int batchDelete${className}(${primaryKey.attrType}[] ${primaryKey.attrname}s)
{
return ${classname}Dao.batchDelete${className}(${primaryKey.attrname}s);
}
}

View File

@ -0,0 +1,42 @@
package ${package}.domain;
import java.io.Serializable;
import com.ruoyi.framework.web.page.PageDomain;
#if(${hasBigDecimal})
import java.math.BigDecimal;
#end
/**
* ${tableName} ${tableComment}
*
* @author ${author}
* @date ${datetime}
*/
public class ${className} extends PageDomain implements Serializable
{
private static final long serialVersionUID = 1L;
#foreach ($column in $columns)
/** $column.columnComment */
private $column.attrType $column.attrname;
#end
#foreach ($column in $columns)
/**
* 设置:${column.columnComment}
*/
public void set${column.attrName}($column.attrType $column.attrname)
{
this.$column.attrname = $column.attrname;
}
/**
* 获取:${column.columnComment}
*/
public $column.attrType get${column.attrName}()
{
return $column.attrname;
}
#end
}

View File

@ -0,0 +1,14 @@
$("#form-${classname}-add").validate({
rules:{
xxxx:{
required:true,
},
},
submitHandler:function(form){
add();
}
});
function add() {
_ajax_post("/${moduleName}/${classname}/save", $('#form-${classname}-add').serialize());
}

View File

@ -0,0 +1,14 @@
$("#form-${classname}-edit").validate({
rules:{
xxxx:{
required:true,
},
},
submitHandler:function(form){
edit();
}
});
function edit() {
_ajax_save("/${moduleName}/${classname}/save", $('#form-${classname}-edit').serialize());
}

View File

@ -0,0 +1,56 @@
var prefix = "/${moduleName}/${classname}"
$(function() {
var columns = [{
checkbox: true
},
#foreach($column in $columns)
{
field : '${column.attrname}',
title : '${column.columnComment}'
},
#end
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-primary btn-sm ' + editFlag + '" href="#" title="编辑" mce_href="#" onclick="edit(\'' + row.${primaryKey.attrname} + '\')"><i class="fa fa-edit"></i></a> ');
actions.push('<a class="btn btn-warning btn-sm ' + removeFlag + '" href="#" title="删除" onclick="remove(\'' + row.${primaryKey.attrname} + '\')"><i class="fa fa-remove"></i></a>');
return actions.join('');
}
}];
var url = prefix + "/list";
$.initTable(columns, url);
});
/*${tableComment}-新增*/
function add() {
var url = prefix + '/add';
layer_showAuto("新增${tableComment}", url);
}
/*${tableComment}-修改*/
function edit(${primaryKey.attrname}) {
var url = prefix + '/edit/' + ${primaryKey.attrname};
layer_showAuto("修改${tableComment}", url);
}
// 单条删除
function remove(id) {
$.modalConfirm("确定要删除选中${tableComment}吗?", function(r) {
_ajax(prefix + "/remove/" + id, "", "post", r);
})
}
// 批量删除
function batchRemove() {
var rows = $.getSelections("${primaryKey.attrname}");
if (rows.length == 0) {
$.modalMsg("请选择要删除的数据", "warning");
return;
}
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function(r) {
_ajax(prefix + '/batchRemove', { "ids": rows }, "post", r);
});
}

View File

@ -0,0 +1,25 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}', '3', '1', '/${moduleName}/${classname}', 'C', '0', '${moduleName}:${classname}:view', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '${tableComment}菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}查询', @parentId, '1', '#', 'F', '0', '${moduleName}:${classname}:list', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}新增', @parentId, '2', '#', 'F', '0', '${moduleName}:${classname}:add', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}修改', @parentId, '3', '#', 'F', '0', '${moduleName}:${classname}:edit', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}删除', @parentId, '4', '#', 'F', '0', '${moduleName}:${classname}:remove', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}保存', @parentId, '5', '#', 'F', '0', '${moduleName}:${classname}:save', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('批量删除', @parentId, '6', '#', 'F', '0', '${moduleName}:${classname}:batchRemove', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');

View File

@ -0,0 +1,69 @@
<?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="${package}.dao.I${className}Dao">
<resultMap type="${className}" id="${className}Result">
#foreach ($column in $columns)
<result property="${column.attrname}" column="${column.columnName}" />
#end
</resultMap>
<select id="select${className}ById" parameterType="${primaryKey.attrType}" resultMap="${className}Result">
select #foreach($column in $columns) $column.columnName #if($velocityCount != $columns.size()),#end#end from ${tableName}
where ${primaryKey.columnName} = #{${primaryKey.attrname}}
</select>
<select id="select${className}List" parameterType="${className}" resultMap="${className}Result">
select #foreach($column in $columns) $column.columnName #if($velocityCount != $columns.size()),#end#end from ${tableName}
<where>
#foreach($column in $columns)
<if test="$column.attrname != null and $column.attrname.trim() != ''"> and $column.columnName = #{$column.attrname} </if>
#end
</where>
</select>
<insert id="insert${className}" parameterType="${className}"#if($primaryKey.extra == 'auto_increment') useGeneratedKeys="true" keyProperty="$primaryKey.attrname"#end>
insert into ${tableName}
(
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName || $primaryKey.extra != 'auto_increment')
$column.columnName#if($velocityCount != $columns.size()), #end
#end
#end
)
values
(
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName || $primaryKey.extra != 'auto_increment')
#{$column.attrname}#if($velocityCount != $columns.size()), #end
#end
#end
)
</insert>
<update id="update${className}" parameterType="${className}">
update ${tableName}
<set>
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName)
<if test="$column.attrname != null">`$column.columnName` = #{$column.attrname}#if($velocityCount != $columns.size()), #end</if>
#end
#end
</set>
where ${primaryKey.columnName} = #{${primaryKey.attrname}}
</update>
<delete id="delete${className}ById">
delete from ${tableName} where ${primaryKey.columnName} = #{value}
</delete>
<delete id="batchDelete${className}">
delete from ${tableName} where ${primaryKey.columnName} in
<foreach item="${primaryKey.attrname}" collection="array" open="(" separator="," close=")">
#{${primaryKey.attrname}}
</foreach>
</delete>
</mapper>