2020暑假项目-车辆派遣管理系统开发记录#3

2020暑假项目-车辆派遣管理系统开发记录#3

内容展示

  • 1、今日完成内容,
    - 用户信息列表完成,及信息更新维护;使用layui的表格编辑功能,可直接在表格中修改信息
    - 车辆信息列表完成,及信息更新维护;使用layui的表格编辑功能,可直接在表格中修改信息
  • 2、核心源码
    userList.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%>
<jsp:include page="common/menu.jsp" />

<html>
<head>
    <title>用户信息管理</title>
</head>

<script src="<%=basePath%>js/tools.js"></script>
<body>
<div class="layui-tab">
    <ul class="layui-tab-title">
        <li class="layui-this">用户管理</li>
    </ul>
    <div class="layui-tab-content">
        <table class="layui-hide" id="backUser" lay-filter="backUser"></table>
    </div>
</div>

<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" lay-event="addUser">新增数据</button>
    </div>
</script>

<script type="text/html" id="bduCreateDate">
    {{ dateFormat(d.createTime) }}
</script>
<script type="text/html" id="status">
    <input type="checkbox" name="status" id="{{d.id}}" value="{{d.status}}" lay-skin="switch" lay-text="启用|停用" lay-filter="bduStatusFilter" {{ d.status == 1 ? 'checked' : '' }}>
</script>
</body>
</html>
<jsp:include page="common/js.jsp" />
<script type="text/javascript">

    $('document').ready(function() {
        var layer = null;
        var laypage = null;
        var table = null;
        var form = null;
        layui.use([ "laypage", "layer", 'table' ], function() {
            layer = layui.layer;
            laypage = layui.laypage;
            table = layui.table;
            form = layui.form;

            table.render({
                elem : '#backUser',
                url : '<%=basePath%>user/usersList',
                id : 'backUser',
                height:650,
                toolbar : '#toolbar',
                cellMinWidth : 100,
                cols : [ [
                    {
                        field : 'id',
                        title : '编号',
                        width : '5%',
                        unresize : true,
                        sort : true
                    }
                    , {
                        field : 'loginName',
                        title : '登录名',
                        width : '10%',
                        sort : true
                    }
                    , {
                        field : 'pwd',
                        title : '密码',
                        edit: 'text',
                        width : '10%',
                        unresize : true
                    }
                    , {
                        field : 'nickName',
                        title : '姓名',
                        width : '10%',
                        edit: 'text',
                        sort : true
                    }
                    , {
                        field : 'tel',
                        title : '电话',
                        width : '10%',
                        edit: 'text',
                        sort : true
                    }
                    , {
                        field : 'remark',
                        title : '备注',
                        edit: 'text',
                        width : '12%',
                        unresize : true
                    }
                    , {
                        field : 'createTime',
                        title : '创建日期',
                        width : '10%',
                        templet : '#bduCreateDate',
                        unresize : true
                    }
                    , {
                        fixed : 'right',
                        width : '10%',
                        align : 'center',
                        toolbar : '#status',
                        title : '状态'
                    }
                ] ],
                page : true
            });

            //监听单元格编辑 TODO
            table.on('edit(backUser)', function(obj){
                var value = obj.value //得到修改后的值
                    ,data = obj.data //得到所在行所有键值
                    ,field = obj.field; //得到字段
                layer.msg('[ID: '+ data.id +'] ' + field + ' 字段更改为:'+ value);

                var postData ={};
                postData["id"] = data.id;
                postData[field] = obj.value;

                $.ajax({
                    url:'<%=basePath %>user/updateUserByPk',
                    data:postData,
                    type:'POST',
                    success:function(data){
                        if(data.responseHead.code == '200'){
                            layer.alert('操作成功!', {icon: 1,title: "结果"});
                        }else{
                            layer.alert(data.responseHead.msg, {icon: 5,title: "结果"});
                        }

                        table.reload('backUser', {
                            url: '<%=basePath%>user/usersList'
                        });
                    }
                });
            });

            //头工具栏事件
            table.on('toolbar(backUser)', function(obj) {
                var checkStatus = table.checkStatus(obj.config.id);
                var data = checkStatus.data;
                switch(obj.event){
                    case 'addUser':
                        layer.msg('添加');
                        window.location.href="<%=basePath %>user/toAddUser";
                        break;
                };

            });

            form.on('switch(bduStatusFilter)', function(obj) {

                var ids =[];
                ids[0] = this.id;
                var type = this.value=="1"?0:1;
                $.ajax({
                    url:'<%=basePath %>user/updateUserStatus',
                    data:{
                        "type":type,
                        "list":ids
                    },
                    type:'POST',
                    success:function(data){
                        if(data.responseHead.code == '200'){
                            layer.alert('操作成功!', {icon: 1,title: "结果"});
                        }else{
                            layer.alert(data.responseHead.msg, {icon: 5,title: "结果"});
                        }

                        table.reload('backUser', {
                            url: '<%=basePath%>user/usersList'
                        });
                    }
                });
            });

        });
    });
</script>

UserController.java

    @RequestMapping(value = "/toUserList")
    public String toUserList(){return "userList";}

    @ResponseBody
    @RequestMapping(value = "/usersList",method = RequestMethod.GET)
    public Map<String,Object> userList(){
        List<UserInfo> userList = userInfoService.userList();
        int count = userInfoService.getUserCount();
        Map<String,Object> retMap = new HashMap<String,Object>();
        retMap.put("code",0);
        retMap.put("msg","");
        retMap.put("count",count);
        retMap.put("data",userList);
        return retMap;
    }

    @ResponseBody
    @RequestMapping(value="/updateUserStatus",method=RequestMethod.POST)
    public Map<String,Object> updateUserStatus(@RequestParam(value = "list[]")List<Integer> ids, Integer type){
        if(userInfoService.updateUserStatus(ids, type)>0){
            return ReturnMapUtil.getOKResult();
        }else{
            return ReturnMapUtil.getErrorResult(ErrorConstants.PARAMETER_ERROR);
        }
    }

    @ResponseBody
    @RequestMapping(value="/updateUserByPk",method=RequestMethod.POST)
    public Map<String,Object> updateUserByPk(UserInfo user){
        if(userInfoService.updateByPk(user)>0){
            return ReturnMapUtil.getOKResult();
        }else{
            return ReturnMapUtil.getErrorResult(ErrorConstants.PARAMETER_ERROR);
        }
    }

    @RequestMapping(value = "/toAddUser")
    public String toAddUser(){return "addUser";}

    @RequestMapping(value = "/addUser" , method = RequestMethod.POST)
    public String addUser(UserInfo user){
        userInfoService.insertSelective(user);
        return "redirect:toUserList";
    }

userInfoMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.vdm.dao.UserInfoMapper" >
  <resultMap id="BaseResultMap" type="com.vdm.model.UserInfo" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="login_name" property="loginName" jdbcType="VARCHAR" />
    <result column="pwd" property="pwd" jdbcType="VARCHAR" />
    <result column="nick_name" property="nickName" jdbcType="VARCHAR" />
    <result column="tel" property="tel" jdbcType="VARCHAR" />
    <result column="status" property="status" jdbcType="SMALLINT" />
    <result column="remark" property="remark" jdbcType="VARCHAR" />
    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <sql id="Base_Column_List" >
    id, login_name, pwd, nick_name, tel, status, remark, create_time
  </sql>

  <select id="listUser" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from user_info
  </select>

  <select id="getUserCount" resultType="java.lang.Integer">
		select count(*) from user_info
	</select>

  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from user_info
    where id = #{id,jdbcType=INTEGER}
  </select>

  <select id="selectByLoginName" resultMap="BaseResultMap" parameterType="java.lang.String" >
    select
    <include refid="Base_Column_List" />
    from user_info
    where login_name = #{loginName,jdbcType=VARCHAR}
  </select>

  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from user_info
    where id = #{id,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.vdm.model.UserInfo" >
    insert into user_info (id, login_name, pwd, 
      nick_name, tel, status, 
      remark, create_time)
    values (#{id,jdbcType=INTEGER}, #{loginName,jdbcType=VARCHAR}, #{pwd,jdbcType=VARCHAR}, 
      #{nickName,jdbcType=VARCHAR}, #{tel,jdbcType=VARCHAR}, #{status,jdbcType=SMALLINT}, 
      #{remark,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})
  </insert>
  <insert id="insertSelective" parameterType="com.vdm.model.UserInfo" >
    insert into user_info
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        id,
      </if>
      <if test="loginName != null" >
        login_name,
      </if>
      <if test="pwd != null" >
        pwd,
      </if>
      <if test="nickName != null" >
        nick_name,
      </if>
      <if test="tel != null" >
        tel,
      </if>
      <if test="status != null" >
        status,
      </if>
      <if test="remark != null" >
        remark,
      </if>

        create_time,

    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=INTEGER},
      </if>
      <if test="loginName != null" >
        #{loginName,jdbcType=VARCHAR},
      </if>
      <if test="pwd != null" >
        #{pwd,jdbcType=VARCHAR},
      </if>
      <if test="nickName != null" >
        #{nickName,jdbcType=VARCHAR},
      </if>
      <if test="tel != null" >
        #{tel,jdbcType=VARCHAR},
      </if>
      <if test="status != null" >
        #{status,jdbcType=SMALLINT},
      </if>
      <if test="remark != null" >
        #{remark,jdbcType=VARCHAR},
      </if>
      <if test="createTime != null" >
        #{createTime,jdbcType=TIMESTAMP},
      </if>
      <if test="createTime == null" >
        now()
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.vdm.model.UserInfo" >
    update user_info
    <set >
      <if test="loginName != null" >
        login_name = #{loginName,jdbcType=VARCHAR},
      </if>
      <if test="pwd != null" >
        pwd = #{pwd,jdbcType=VARCHAR},
      </if>
      <if test="nickName != null" >
        nick_name = #{nickName,jdbcType=VARCHAR},
      </if>
      <if test="tel != null" >
        tel = #{tel,jdbcType=VARCHAR},
      </if>
      <if test="status != null" >
        status = #{status,jdbcType=SMALLINT},
      </if>
      <if test="remark != null" >
        remark = #{remark,jdbcType=VARCHAR},
      </if>
      <if test="createTime != null" >
        create_time = #{createTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where id = #{id,jdbcType=INTEGER}
  </update>

  <update id="updateByPrimaryKey" parameterType="com.vdm.model.UserInfo" >
    update user_info
    set login_name = #{loginName,jdbcType=VARCHAR},
      pwd = #{pwd,jdbcType=VARCHAR},
      nick_name = #{nickName,jdbcType=VARCHAR},
      tel = #{tel,jdbcType=VARCHAR},
      status = #{status,jdbcType=SMALLINT},
      remark = #{remark,jdbcType=VARCHAR},
      create_time = #{createTime,jdbcType=TIMESTAMP}
    where id = #{id,jdbcType=INTEGER}
  </update>

  <update id="updateUserStatus">
    update user_info
    set
    status = #{type,jdbcType=INTEGER}
    where 1=1
    <if test="ids !=null and ids.size()>0">
      and id IN
      <foreach collection="ids" open="(" close=")" separator=","
               index="index" item="item">
        #{item, jdbcType=INTEGER}
      </foreach>
    </if>
  </update>
</mapper>
  • 3、遇到的问题

  • 4、解决问题

原文地址:https://www.cnblogs.com/mhwl-wll/p/13345925.html