MyBatis+LayUI+CRUD+部门员工

1.js

     employee

layui.use(['form','layer','jquery','laypage','table'], function(){
    var table = layui.table;
    $ = layui.jquery;
    var form=layui.form;

    form.verify({
        //用户名认证规则
        length: function(value, item) {
            if(value.trim()&&value.length<6){
                return "输入的用户名不能少于6个字符";
            }
        },
        checkName:function(value, item) {
            var html=$.ajax({
                url:"/employee/checkName",
                data:{"username":value,"id":$("input[username='id']").val()},
                async:false
            }).responseText;
            if(html=='false'){
                return "用户名重复";
            }
        }
    });

    table.render({
        elem: '#test'
        ,url:'/employee/list'
        ,toolbar: '#toolbarDemo'
        ,title: '用户数据表'
        ,cols: [[
            {type: 'checkbox', fixed: 'left'}
            ,{field:'id', title:'ID', fixed: 'left', unresize: true, sort: true}
            ,{field:'username', title:'员工账号',  edit: 'text'}
            ,{field:'realnam', title:'真实姓名',  edit: 'text'}
            ,{field:'tel', title:'电话',  edit: 'text'}
            ,{field:'inputtime', title:'录入时间',edit: 'text', sort: true}
            ,{field:'department', title:'部门',  sort: true, templet: function(res){
                     return '<em>'+ res.department.name +'</em>';
                }}
            ,{field:'state', title:'状态',  edit: 'text',
                templet : function(data) {// 替换数据
                    if(data.state==0){
                        return "离职";
                    }
                    else if(data.state==1){
                        return "在职";
                    }
                }
       }
            ,{field:'rool', title:'角色',  edit: 'text'}
            ,{field:'unionid', title:'第三方ID',  edit: 'text'}
            ,{field:'tenant', title:'所属租户',  edit: 'text'}
            ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
        ]]
        ,page: true
    });
    //部门下拉框选择
    $.get("/department/list",function (result) {
        var select = $("select[name='department.id']");
        select.empty();

        select.append("<option value=''>请选择</option>");
               console.debug(result);/**/
        $.each(result.data,function (index,obj) {
            //console.debug(obj);
            select.append("<option value='"+obj.id+"'>"+obj.name+"</option>");

        });
        form.render('select');
    })
    //头工具栏事件
    table.on('toolbar(test)', function(obj){
        var checkStatus = table.checkStatus(obj.config.id);
        switch(obj.event){
            //新增
            case 'add':
                //清空form表单
                $("#addForm").clearForm();
                var data = checkStatus.data;
                layer.open({
                    title : "新增用户",
                    type:1,
                    skin:'layui-layer-rim',
                    area: ['350px', '400px'],
                    content: $("#add"),
                    success : function(layero, index){
                        setTimeout(function(){
                            layui.layer.tips('点击此处可返回', '.layui-layer-setwin .layui-layer-close', {
                                tips: 3
                            });
                        },500)
                    }
                })
                break;
            case 'search':
                table.reload('test', {
                    where: $("#searchForm").serializeObject()//用jquery.jdirk.js实现的,将form表单中的input值转成json格式
                    ,page: {
                        curr: 1 //重新从第 1 页开始
                    }
                });
                break;
            case 'batchDel':
                var data = checkStatus.data;
                if(data.length==0){
                    layer.alert("请至少选中一行再进行操作",{
                        icon:2,
                        title:'错误'
                    });
                    break;
                }
                //准备一个id数组
                var ids=[];
                $.each(data,function (index, obj) {
                    ids.push(obj.id)
                })
                layer.confirm('确定删除这些数据?', function(index) {
                    $.post("/employee/batchDel", {"ids": ids.toString()}, function (result) {
                        if (result.succe) {
                            //刷新页面
                            table.reload('test',{page:{curr:1}});
                            layer.close(index);
                        } else {
                            layer.alert(result.backMessage, {
                                icon: 2,
                                title: '错误'
                            });
                        }
                    })
                })
                break;
        };
    });

    //监听行工具事件
    table.on('tool(test)', function(obj){
        var data = obj.data;
        //console.log(obj)
        if(obj.event === 'del'){
            layer.confirm('真的删除行么', function(index){
                //删除请求
                $.get("/employee/delete",{id: data.id},function (result) {
                    if(result.succe){
                        //刷新页面
                        table.reload('test',{page:{curr:1}});
                        layer.close(index);
                    }else {
                        layer.alert(result.backMessage,{
                            icon:2,
                            title:'错误'
                        });
                    }
                })
            });
        } else if(obj.event === 'edit'){
            layer.open({
                title : "修改用户",
                type:1,
                skin:'layui-layer-rim',
                area: ['350px', '400px'],
                content: $("#add"),
                success : function(layero, index){
                    setTimeout(function(){
                        layui.layer.tips('点击此处可返回', '.layui-layer-setwin .layui-layer-close', {
                            tips: 3
                        });
                    },200)
                }
            })
            //动态赋值解决下拉框字段不一样
            if(data.department){
                data['department.id']=data.department.id;
            }
            form.val("editForm", data)
        }
    });
    //提交保存
    form.on('submit(*)', function(data){

        var url = "/employee/save";
        //获取id
        var id = data.field.id;
        if (id) {
            url = "/employee/update?param=update";
        }
        $.post(url,data.field,function (result) {
            if(result.succe){
                //弹出结果信息
                layer.msg(result.backMessage);
                //关闭窗口
                layer.closeAll();
                //刷新页面
                table.reload("test");
            }else {
                layer.alert(result.backMessage,{
                    icon:2,
                    title:'错误'
                });
            }
        })
        return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
    });
    //监听单元格编辑
    table.on('edit(test)', function(obj){
        var value = obj.value //修改后的单元格的值
            ,data = obj.data //修改单元格所属的该行所有对象
            ,field = obj.field; //单元格后台对应的字段
        //重新准备json对象
        var editJson={
            "id":data.id,
            "username":data.username,
            "password":data.password,
            "email":data.email,
            "age":data.age,
            "department.id":data.department.id
        };
        $.get("/employee/update",editJson,function (result) {
            if(result.succe){
                //弹出结果信息
                layer.msg(result.backMessage);
            }else {
                layer.alert(result.backMessage,{
                    icon:2,
                    title:'错误'
                });
                //刷新页面
                table.reload("test");
            }
        })
    });
});

     department

layui.use(['form','layer','jquery','laypage','table'], function(){
    var table = layui.table;
    $ = layui.jquery;
    var form=layui.form;

    form.verify({
        checkName:function(value, item) {
            var html=$.ajax({
                url:"/department/checkName",
                data:{"name":value,"id":$("input[name='id']").val()},
                async:false
            }).responseText;
            if(html=='false'){
                return "用户名重复";
            }
        }
    });

    table.render({
        elem: '#test'
        ,url:'/department/list'
        ,toolbar: '#toolbarDemo'
        ,title: '用户数据表'
        ,cols: [[
            {type: 'checkbox', fixed: 'left'}
            ,{field:'id', title:'ID', fixed: 'left', unresize: true, sort: true}
            ,{field:'sn', title:'部门编号',  edit: 'text'}
            ,{field:'name', title:'部门名称',  edit: 'text'}
            ,{field:'manager', title:'部门经理',  edit: 'text'}
            ,{field:'parent', title:'上级部门',  edit: 'text'}
            ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
        ]]
        ,page: true
    });
    //部门下拉框选择
    $.get("/department/list",function (result) {
        var select = $("select[name='department.id']");
        select.empty();
        select.append("<option value=''>请选择</option>")
        $.each(result,function (index,obj) {
            select.append("<option value='"+obj.id+"'>"+obj.name+"</option>")
        });
        form.render('select');
    })
    //头工具栏事件
    table.on('toolbar(test)', function(obj){
        var checkStatus = table.checkStatus(obj.config.id);
        switch(obj.event){
            //新增
            case 'add':
                //清空form表单
                $("#addForm").clearForm();
                var data = checkStatus.data;
                layer.open({
                    title : "新增用户",
                    type:1,
                    skin:'layui-layer-rim',
                    area: ['350px', '400px'],
                    content: $("#add"),
                    success : function(layero, index){
                        setTimeout(function(){
                            layui.layer.tips('点击此处可返回', '.layui-layer-setwin .layui-layer-close', {
                                tips: 3
                            });
                        },500)
                    }
                })
                break;
            case 'search':
                table.reload('test', {
                    where: $("#searchForm").serializeObject()//用jquery.jdirk.js实现的,将form表单中的input值转成json格式
                    ,page: {
                        curr: 1 //重新从第 1 页开始
                    }
                });
                break;
            case 'batchDel':
                var data = checkStatus.data;
                if(data.length==0){
                    layer.alert("请至少选中一行再进行操作",{
                        icon:2,
                        title:'错误'
                    });
                    break;
                }
                //准备一个id数组
                var ids=[];
                $.each(data,function (index, obj) {
                    ids.push(obj.id)
                })
                layer.confirm('确定删除这些数据?', function(index) {
                    $.post("/department/batchDel", {"ids": ids.toString()}, function (result) {
                        if (result.succe) {
                            //刷新页面
                            table.reload('test',{page:{curr:1}});
                            layer.close(index);
                        } else {
                            layer.alert(result.backMessage, {
                                icon: 2,
                                title: '错误'
                            });
                        }
                    })
                })
                break;
        };
    });

    //监听行工具事件
    table.on('tool(test)', function(obj){
        var data = obj.data;
        //console.log(obj)
        if(obj.event === 'del'){
            layer.confirm('真的删除行么', function(index){
                //删除请求
                $.get("/department/delete",{id: data.id},function (result) {
                    if(result.succe){
                        //刷新页面
                        table.reload('test',{page:{curr:1}});
                        layer.close(index);
                    }else {
                        layer.alert(result.backMessage,{
                            icon:2,
                            title:'错误'
                        });
                    }
                })
            });
        } else if(obj.event === 'edit'){
            layer.open({
                title : "修改用户",
                type:1,
                skin:'layui-layer-rim',
                area: ['350px', '400px'],
                content: $("#add"),
                success : function(layero, index){
                    setTimeout(function(){
                        layui.layer.tips('点击此处可返回', '.layui-layer-setwin .layui-layer-close', {
                            tips: 3
                        });
                    },200)
                }
            })
            //动态赋值解决下拉框字段不一样
            if(data.department){
                data['department.id']=data.department.id;
            }
            form.val("editForm", data)
        }
    });
    //提交保存
    form.on('submit(*)', function(data){

        var url = "/department/save";
        //获取id
        var id = data.field.id;
        if (id) {
            url = "/department/update?param=update";
        }
        $.post(url,data.field,function (result) {
            if(result.succe){
                //弹出结果信息
                layer.msg(result.backMessage);
                //关闭窗口
                layer.closeAll();
                //刷新页面
                table.reload("test");
            }else {
                layer.alert(result.backMessage,{
                    icon:2,
                    title:'错误'
                });
            }
        })
        return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
    });
    //监听单元格编辑
    table.on('edit(test)', function(obj){
        var value = obj.value //修改后的单元格的值
            ,data = obj.data //修改单元格所属的该行所有对象
            ,field = obj.field; //单元格后台对应的字段
        //重新准备json对象
        var editJson={
            "id":data.id,
            "username":data.username,
            "password":data.password,
            "email":data.email,
            "age":data.age,
            "department.id":data.department.id
        };
        $.get("/department/update",editJson,function (result) {
            if(result.succe){
                //弹出结果信息
                layer.msg(result.backMessage);
            }else {
                layer.alert(result.backMessage,{
                    icon:2,
                    title:'错误'
                });
                //刷新页面
                table.reload("test");
            }
        })
    });
});

2.jsp

     employee

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" href="/static/layui/css/layui.css">
    <script src="/static/layui/layui.js"></script>
    <script src="/static/js/jquery/jquery.min.js"></script>
    <script src="/static/js/jquery/jquery.jdirk.js"></script>
    <script src="/static/js/jquery/jquery.form.js"></script>
<%--居中--%>
    <style>
        .layui-table-cell .layui-form-checkbox[lay-skin="primary"] {
            top: 50%;
            transform: translateY(-50%);
        }

        .layui-table-cell {
            text-align: center;
        }

    </style>
</head>
<body>
<table class="layui-hide" id="test" lay-filter="test"></table>

<script type="text/html" id="toolbarDemo">
    <div class="layui-inline">
        <form id="searchForm">
            用户名:
            <div class="layui-input-inline">
                <input type="text" value="" id="usernameSearch" name="username" placeholder="请输入关键字" class="layui-input search_input">
            </div>
            <button class="layui-btn" type="button" lay-event="search">查询</button>
            <button class="layui-btn layui-btn-normal" type="button" lay-event="add">新增</button>
            <button class="layui-btn layui-btn-danger " type="button" lay-event="batchDel">批量删除</button>
        </form>
    </div>
</script>

<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>

<div id="add" style="display: none">
    <form class="layui-form" id="addForm" lay-filter="editForm">
        <%--id隐藏域--%>
        <input type="hidden" name="id" placeholder="" autocomplete="off"
               class="layui-input">
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">用户名</label>
                <div class="layui-input-inline">
                    <input type="text" name="username" lay-verify="required" placeholder="用户名" autocomplete="off"
                           class="layui-input">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">姓名</label>
                <div class="layui-input-inline">
                    <input type="test" name="realnam" lay-verify="pass" placeholder="真实姓名"
                           class="layui-input">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">密码</label>
                <div class="layui-input-inline">
                    <input type="text" name="password" lay-verify="password" placeholder="密码"
                           class="layui-input">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">电话</label>
                <div class="layui-input-inline">
                    <input type="text" name="tel" lay-verify="required|number" placeholder="电话"
                           class="layui-input">
                </div>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">部门</label>
                <div class="layui-input-inline">
                    <select name="department.id" lay-filter="departmentId" lay-verify="部门">
                    </select>
                </div>
            </div>
        </div>
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">状态</label>
                    <div class="layui-input-block">
                        <select name="state" lay-filter="aihao" lay-verify="状态" >
                            <option value=""></option>
                            <option value="0">离职</option>
                            <option value="1">在职</option>
                        </select>
                    </div>
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">角色</label>
                    <div class="layui-input-inline">
                        <input type="text" name="rool" lay-filter="rool" placeholder="角色"
                               class="layui-input">
                    </div>
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">第三方ID</label>
                    <div class="layui-input-inline">
                        <input type="text" name="unionid" lay-filter="unionid" placeholder="第三方ID"
                               class="layui-input">
                    </div>
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">租户</label>
                    <div class="layui-input-inline">
                        <input type="text" name="tenant" lay-filter="tenant" placeholder="租户"
                               class="layui-input">
                    </div>
                </div>
            </div>
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button class="layui-btn" lay-submit="" lay-filter="*">立即提交</button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
            </div>
        </div>
    </form>
</div>
<%--引入自己的js--%>
<script src="/static/js/employee/employee.js"></script>
</body>
</html>

     department

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" href="/static/layui/css/layui.css">
    <script src="/static/layui/layui.js"></script>
    <script src="/static/js/jquery/jquery.min.js"></script>
    <script src="/static/js/jquery/jquery.jdirk.js"></script>
    <script src="/static/js/jquery/jquery.form.js"></script>
    <style>
        .layui-table-cell .layui-form-checkbox[lay-skin="primary"] {
            top: 50%;
            transform: translateY(-50%);
        }

        .layui-table-cell {
            text-align: center;
        }

    </style>

</head>
<body>
<table class="layui-hide" id="test" lay-filter="test"></table>

<script type="text/html" id="toolbarDemo">
    <div class="layui-inline">
        <form id="searchForm">
            用户名:
            <div class="layui-input-inline">
                <input type="text" value="" id="usernameSearch" name="name" placeholder="请输入部门关键字" class="layui-input search_input">
            </div>
            <button class="layui-btn" type="button" lay-event="search">查询</button>
            <button class="layui-btn layui-btn-normal" type="button" lay-event="add">新增</button>
            <button class="layui-btn layui-btn-danger " type="button" lay-event="batchDel">批量删除</button>
        </form>
    </div>
</script>

<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>

<div id="add" style="display: none">
    <form class="layui-form" id="addForm" lay-filter="editForm">
        <%--id隐藏域--%>
        <input type="hidden" name="id" placeholder="" autocomplete="off"
               class="layui-input">
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">部门编号</label>
                <div class="layui-input-inline">
                    <input type="text" name="sn"  placeholder="请输入部门编号" autocomplete="off"
                           class="layui-input">
                </div>
            </div>
        </div>
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">部门名称</label>
                    <div class="layui-input-inline">
                        <input type="text" name="name" lay-verify="required|checkName" placeholder="请输入部门名称" autocomplete="off"
                               class="layui-input">
                    </div>
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">部门经理</label>
                    <div class="layui-input-inline">
                        <input type="text" name="manager"  placeholder="请输入部门经理" autocomplete="off"
                               class="layui-input">
                    </div>
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-inline">
                    <label class="layui-form-label">上级部门</label>
                    <div class="layui-input-inline">
                        <input type="text" name="parent"  placeholder="请输上级部门" autocomplete="off"
                               class="layui-input">
                    </div>
                </div>
            </div>
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button class="layui-btn" lay-submit="" lay-filter="*">立即提交</button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
            </div>
        </div>
    </form>
</div>


<%--引入自己的js--%>
<script src="/static/js/department/department.js"></script>
</body>
</html>

3.controller

     employee

package cn.itsource.crm.web.controller;

import cn.itsource.basic.controller.BaseController;
import cn.itsource.basic.util.Layui;
import cn.itsource.basic.util.Message;
import cn.itsource.crm.domain.Employee;
import cn.itsource.crm.query.EmployeeQuery;
import cn.itsource.crm.service.EmployeeService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("/employee")
public class EmployeeController extends BaseController {
    @Autowired
    private EmployeeService employeeService;

    @RequestMapping("/main")
    public String main(){
        return "employee/employee";
    }

    //展示数据
    @RequestMapping("/list")
    @ResponseBody
    public Layui list(EmployeeQuery query){
        Page pageByQuery = employeeService.findPageByQuery(query);
        Layui data = Layui.data(pageByQuery.getTotal(), pageByQuery,"",0);
        return data;
    }
    //高级查询
    @RequestMapping("/query")
    @ResponseBody
    public Layui query(EmployeeQuery query){
        Page pageByQuery = employeeService.findPageByQuery(query);
        Layui data = Layui.data(pageByQuery.getTotal(), pageByQuery,"",0);
        return data;
    }
    //删除
    @RequestMapping("/delete")
    @ResponseBody
    public Message delete(Long id){
        try {
            employeeService.delete(id);
            return new Message(true, "删除成功");
        } catch (Exception e) {
            e.printStackTrace();
            return new Message(false, "删除失败");
        }
    }
    @RequestMapping("/save")
    @ResponseBody
    public Message save(Employee employee){
        if(employee.getDepartment().getId()==null){
            return new Message(false, "你没有选择部门");
        }
        try {
            employeeService.save(employee);
            return new Message(true, "新增成功");
        } catch (Exception e) {
            e.printStackTrace();
            return new Message(false, "新增失败");
        }
    }
    //修改方法
    @RequestMapping("/update")
    @ResponseBody
    public Message update(Employee employee){
        try {
            //拿到id和用户名
            String username = employee.getUsername();
            Long id = employee.getId();
            //通过传入的id拿值
            Employee newEmployee = employeeService.findOne(id);
            //如果传入的数据名字没有改变,就直接执行修改
            if (newEmployee.getUsername().equals(username)){
                employeeService.update(employee);
                return new Message(true, "修改成功");
            }else {
                //如果传入的数据名字不同,
                Employee compareEmployee = employeeService.findByUsername(username);
                if(compareEmployee!=null){
                    return new Message(false, "用户名重复");
                }
                employeeService.update(employee);
                return new Message(true, "修改成功");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return new Message(false, "修改失败");
        }
    }
    //批量删除方法
    @RequestMapping("/batchDel")
    @ResponseBody
    public Message batchDel(String ids){
        if (ids!=null&&!"".equals(ids)){
            try {
                //准备一个list
                ArrayList<Long> longs = new ArrayList<>();
                //将前台传的字符串转成数组
                String[] split = ids.split(",");
                //遍历数组
                for (String s : split) {
                    //将String转换成long,并添加到list中
                    longs.add(Long.valueOf(s));
                }
                employeeService.batchDelete(longs);
                return new Message(true, "删除成功");
            } catch (Exception e) {
                e.printStackTrace();
                return new Message(false, "删除失败");
            }
        }
        return new Message(false, "删除失败");
    }
    //查名字
    @RequestMapping("/checkName")
    @ResponseBody
    public Boolean checkName(String username,Long id){
        try {
            if (id==null){
                Employee employee = employeeService.findByUsername(username);
                return employee==null;
            }else {
                Employee employee = employeeService.findOne(id);
                if (employee.getUsername().equals(username)){
                    return true;
                }else {
                    employee = employeeService.findByUsername(username);
                    return employee==null;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}

     department

package cn.itsource.crm.web.controller;

import cn.itsource.basic.controller.BaseController;
import cn.itsource.basic.util.Layui;
import cn.itsource.basic.util.Message;
import cn.itsource.crm.domain.Department;
import cn.itsource.crm.domain.Employee;
import cn.itsource.crm.query.DepartmentQuery;
import cn.itsource.crm.service.DepartmentService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("/department")
public class DepartmentController extends BaseController {
    @Autowired
    private DepartmentService departmentService;

    @RequestMapping("/main")
    public String main(){
        return "department/department";
    }

    //展示数据
    @RequestMapping("/list")
    @ResponseBody
    public Layui list(DepartmentQuery query){
        Page pageByQuery = departmentService.findPageByQuery(query);
        Layui data = Layui.data(pageByQuery.getTotal(), pageByQuery,"",0);
        return data;
    }
    //高级查询
    @RequestMapping("/query")
    @ResponseBody
    public Layui query(DepartmentQuery query){
        Page pageByQuery = departmentService.findPageByQuery(query);
        Layui data = Layui.data(pageByQuery.getTotal(), pageByQuery,"",0);
        return data;
    }
    //删除
    @RequestMapping("/delete")
    @ResponseBody
    public Message delete(Long id){
        try {
            departmentService.delete(id);
            return new Message(true, "删除成功");
        } catch (Exception e) {
            e.printStackTrace();
            return new Message(false, "删除失败");
        }
    }
    @RequestMapping("/save")
    @ResponseBody
    public Message save(Department department){
        try {
            departmentService.save(department);
            return new Message(true, "新增成功");
        } catch (Exception e) {
            e.printStackTrace();
            return new Message(false, "新增失败");
        }
    }
    //修改方法
    @RequestMapping("/update")
    @ResponseBody
    public Message update(Department department){
        try {
            //拿到id和用户名
            String username = department.getName();
            Long id = department.getId();
            //通过传入的id拿值
            Department newDepartment = departmentService.findOne(id);
            //如果传入的数据名字没有改变,就直接执行修改
            if (newDepartment.getName().equals(username)){
                departmentService.update(department);
                return new Message(true, "修改成功");
            }else {
                departmentService.update(department);
                return new Message(true, "修改成功");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return new Message(false, "修改失败");
        }
    }
    //批量删除方法
    @RequestMapping("/batchDel")
    @ResponseBody
    public Message batchDel(String ids){
        if (ids!=null&&!"".equals(ids)){
            try {
                //准备一个list
                ArrayList<Long> longs = new ArrayList<>();
                //将前台传的字符串转成数组
                String[] split = ids.split(",");
                //遍历数组
                for (String s : split) {
                    //将String转换成long,并添加到list中
                    longs.add(Long.valueOf(s));
                }
                departmentService.batchDelete(longs);
                return new Message(true, "删除成功");
            } catch (Exception e) {
                e.printStackTrace();
                return new Message(false, "删除失败");
            }
        }
        return new Message(false, "删除失败");
    }
    //查名字
    @RequestMapping("/checkName")
    @ResponseBody
    public Boolean checkName(String name,Long id){
        try {
            if (id==null){
                Department department = departmentService.findByUsername(name);
                return department==null;
            }else {
                Department department = departmentService.findOne(id);
                if (department.getName().equals(name)){
                    return true;
                }else {
                    department = departmentService.findByUsername(name);
                    return department==null;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}

4.Mapper.xml

     employee

<?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="cn.itsource.crm.mapper.EmployeeMapper" >
  <resultMap id="BaseResultMap" type="cn.itsource.crm.domain.Employee" >
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="username" property="username" jdbcType="VARCHAR" />
    <result column="realnam" property="realnam" jdbcType="VARCHAR" />
    <result column="password" property="password" jdbcType="VARCHAR" />
    <result column="tel" property="tel" jdbcType="VARCHAR" />
    <result column="inputtime" property="inputtime" jdbcType="TIMESTAMP" />
    <result column="state" property="state" jdbcType="VARCHAR" />
    <result column="role" property="role" jdbcType="BIGINT" />
    <result column="unionid" property="unionid" jdbcType="VARCHAR" />
    <result column="tenant" property="tenant" jdbcType="BIGINT" />
    <collection property="department" ofType="cn.itsource.crm.domain.Department">
      <id column="did" property="id" jdbcType="BIGINT"/>
      <result column="dname" property="name"></result>
    </collection>
  </resultMap>


  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from t_employee
    where id = #{id,jdbcType=BIGINT}
  </delete>


  <insert id="insert" parameterType="cn.itsource.crm.domain.Employee" >
    <selectKey resultType="java.lang.Long" keyProperty="id" order="BEFORE" >
      SELECT LAST_INSERT_ID()
    </selectKey>
    insert into t_employee (username, realnam,
      password, tel, department_id, 
      inputtime, state, role, 
      unionid, tenant)
    values (#{username,jdbcType=VARCHAR}, #{realnam,jdbcType=VARCHAR},
      #{password,jdbcType=VARCHAR}, #{tel,jdbcType=VARCHAR}, #{department.id,jdbcType=VARCHAR},
      #{inputtime,jdbcType=TIMESTAMP}, #{state,jdbcType=VARCHAR}, #{role,jdbcType=BIGINT}, 
      #{unionid,jdbcType=VARCHAR}, #{tenant,jdbcType=BIGINT})
  </insert>

     <!--高级查询-->
  <update id="updateByPrimaryKey" parameterType="cn.itsource.crm.domain.Employee" >
    update t_employee
    <set>
      <if test="username!=null and username!=''">
        username = #{username,jdbcType=VARCHAR},
      </if>
      <if test="realnam!=null and realnam!=''">
        realnam = #{realnam,jdbcType=VARCHAR},
      </if>
      <if test="password!=null and password!=''">
        password = #{password,jdbcType=VARCHAR},
      </if>
      <if test="tel!=null and tel!=''">
        tel = #{tel,jdbcType=VARCHAR},
      </if>
      <if test="department!=null and department!=''">
        department_id = #{department.id,jdbcType=VARCHAR},
      </if>
      <if test="inputtime!=null and inputtime!=''">
        inputtime = #{inputtime,jdbcType=TIMESTAMP},
      </if>
      <if test="state!=null and state!=''">
        state = #{state,jdbcType=VARCHAR},
      </if>
      <if test="role!=null and role!=''">
        role = #{role,jdbcType=BIGINT},
      </if>
      <if test="unionid!=null and unionid!=''">
        unionid = #{unionid,jdbcType=VARCHAR},
      </if>
      <if test="tenant!=null and tenant!=''">
        tenant = #{tenant,jdbcType=BIGINT}
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
  </update>


  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select id, username, realnam, password, tel, department_id, inputtime, state, role, 
    unionid, tenant
    from t_employee
    where id = #{id,jdbcType=BIGINT}
  </select>


  <select id="selectAll" resultMap="BaseResultMap" >
    select id, username, realnam, password, tel, department_id, inputtime, state, role, 
    unionid, tenant
    from t_employee
  </select>

  <!--准备公共sql-->
  <sql id="whereSql">
    <where>
      <if test="username!=null and username!=''">
        and username like concat("%",#{username},"%")
      </if>
    </where>
  </sql>


  <!--分页查询-->
  <select id="querySelectAll" parameterType="EmployeeQuery" resultMap="BaseResultMap">
    select e.id, e.username, e.realnam, e.password, e.tel,  e.inputtime, e.state, e.role,
    e.unionid, e.tenant, d.id did,d.name dname
    from t_employee e left join t_department d on e.department_id = d.id
   <include refid="whereSql"/>
  </select>


  <!--批量删除-->
  <delete id="batchDelete" parameterType="list">
    delete from t_employee where id in
    <foreach collection="list" item="id" separator="," open="(" close=")">
      #{id}
    </foreach>
  </delete>


  <!--查名字-->
  <select id="findByUsername" resultMap="BaseResultMap" parameterType="java.lang.String">
    select *
    from t_employee
    where username = #{username}
  </select>
</mapper>

     department

<?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="cn.itsource.crm.mapper.DepartmentMapper" >
  <resultMap id="BaseResultMap" type="cn.itsource.crm.domain.Department" >
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="sn" property="sn" jdbcType="VARCHAR" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="manager" property="manager" jdbcType="VARCHAR" />
    <result column="parent" property="parent" jdbcType="VARCHAR" />
    <result column="children" property="children" jdbcType="VARCHAR" />
    <result column="dirpath" property="dirpath" jdbcType="VARCHAR" />
    <result column="atate" property="atate" jdbcType="VARCHAR" />
    <result column="tenant" property="tenant" jdbcType="VARCHAR" />
  </resultMap>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from t_department
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" parameterType="cn.itsource.crm.domain.Department" >
    <selectKey resultType="java.lang.Long" keyProperty="id" order="BEFORE" >
      SELECT LAST_INSERT_ID()
    </selectKey>
    insert into t_department ( sn, name,
      manager, parent, children, 
      dirpath, atate, tenant
      )
    values (#{sn,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
      #{manager,jdbcType=VARCHAR}, #{parent,jdbcType=VARCHAR}, #{children,jdbcType=VARCHAR}, 
      #{dirpath,jdbcType=VARCHAR}, #{atate,jdbcType=VARCHAR}, #{tenant,jdbcType=VARCHAR}
      )
  </insert>
  <update id="updateByPrimaryKey" parameterType="cn.itsource.crm.domain.Department" >
    update t_department
    set sn = #{sn,jdbcType=VARCHAR},
      name = #{name,jdbcType=VARCHAR},
      manager = #{manager,jdbcType=VARCHAR},
      parent = #{parent,jdbcType=VARCHAR},
      children = #{children,jdbcType=VARCHAR},
      dirpath = #{dirpath,jdbcType=VARCHAR},
      atate = #{atate,jdbcType=VARCHAR},
      tenant = #{tenant,jdbcType=VARCHAR}
    where id = #{id,jdbcType=BIGINT}
  </update>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select id, sn, name, manager, parent, children, dirpath, atate, tenant
    from t_department
    where id = #{id,jdbcType=BIGINT}
  </select>
  <select id="selectAll" resultMap="BaseResultMap" >
    select id, sn, name, manager, parent, children, dirpath, atate, tenant
    from t_department
  </select>

  <!--准备公共sql-->
  <sql id="whereSql">
    <where>
      <if test="name!=null and name!=''">
        and name like concat("%",#{name},"%")
      </if>
    </where>
  </sql>


  <!--分页查询-->
  <select id="querySelectAll" parameterType="EmployeeQuery" resultMap="BaseResultMap">
    select id, sn, name, manager, parent, children, dirpath, atate, tenant
    from t_department
   <include refid="whereSql"/>
  </select>

  <!--批量删除-->
  <delete id="batchDelete" parameterType="list">
    delete from t_department where id in
    <foreach collection="list" item="id" separator="," open="(" close=")">
      #{id}
    </foreach>
  </delete>


  <!--查名字-->
  <select id="findByUsername" resultMap="BaseResultMap" parameterType="java.lang.String">
    select *
    from t_department
    where name = #{name}
  </select>
</mapper>

注意:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值