图书管理系统之用户信息维护

Posted 是小叶的呢.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图书管理系统之用户信息维护相关的知识,希望对你有一定的参考价值。

在上一期我们讲到了图书管理系统数据库的设计思路,这期我们就讲讲第一个模块的功能实现。
这一期就讲第一个模块:用户信息维护表格查询和数据新增。
表格查询如下:

 var layer, layuiTable;
        var tabUser;
        //表格渲染
        layui.use(['layer', 'table'], function () 
            layer = layui.layer;
            layuiTable = layui.table;
            tabUser = layuiTable.render(
                elem: '#User',
                page: true,
                page: 
                    limit: 5,
                    limits:[5,10,15,20],
                ,
                data: [],
                cols: [[
                     title: '序号', align: 'center', type: 'numbers' ,
                     title: '修改', align: 'center', templet: customOp,width:60 ,
                     title: '删除', align: 'center', templet: customOptwo, width: 60 ,
                     title: '用户姓名', field: 'userName', align: 'center' ,
                     title: '身份证号', field: 'idCard', align: 'center', width: 158 ,
                     title: '电话号码', field: 'telephone', align: 'center' ,
                     title: '地址', field: 'address', align: 'center' ,
                     title: '邮箱地址', field: 'e_mail', align: 'center', width: 153 ,
                     title: '账号', field: 'account', align: 'center', width: 100 ,
                     title: '密码', field: 'password', align: 'center' ,
                     title: '角色', field: 'roleName', align: 'center' ,
                      title: '注册时间', field: 'foundTimeStr', align: 'center' ,
                     title: '有效否', field: 'effective', align: 'center', width: 60 ,
                ]]
            )
            tabuserSearch();
        );
        //表格查询
        function tabuserSearch() 
            var search = $("#search").val(); 
            tabUser.reload(
                url: "/BaseInfor/User/userSearchInfor",
                where: 
                    search: search,
                ,
                page: 
                    curr: 1
                
            );
        
        //角色下拉框绑定      
        createOption("Getrole", "role");

控制器部分的方法:

#region  表格查询
        public ActionResult userSearchInfor(LayuiTablePage layuitablepage, int? roleID, string search,string foundTime)
        
            //连表查询出所有的年级信息
            var list = (from tbuser in myModal.UserInfor
                       join tbrole in myModal.RoleInfor on tbuser.roleID equals tbrole.roleID
                       where tbuser.effective == true && tbuser.roleID != 3 //有效用户并且不是超级管理员
                      orderby tbuser.userID
                       select new userVo
                       
                           userID = tbuser.userID,//用户ID
                           userName = tbuser.userName,//用户名
                           idCard = tbuser.idCard,//身份证号
                           password=tbuser.password,//密码
                           address=tbuser.address,//地址
                           account=tbuser.account,//账号
                           telephone=tbuser.telephone,//电话号码
                           effective=tbuser.effective,
                           e_mail=tbuser.e_mail,//邮箱地址
                           foundTime=tbuser.foundTime,//注册时间
                           roleID=tbuser.roleID,//角色ID
                           roleName=tbrole.roleName,//角色名称
                           foundTimeStr = tbuser.foundTime.ToString(),//支付时间(字符串)
                       );
            //条件
            if (roleID != null && roleID > 0)
            
                list = list.Where(m => m.roleID == roleID);
            
            //模糊搜索的条件
            if (!string.IsNullOrEmpty(search))
            
                search = search.Trim();//去空格
                //模糊查询
                list = list.Where(m => m.userName.Contains(search) || m.idCard.Contains(search) || m.address.Contains(search)
                || m.account.Contains(search) || m.telephone.Contains(search) || m.e_mail.Contains(search) || m.roleName.Contains(search));
            
            //判断是否选择时间段
            if (!string.IsNullOrEmpty(foundTime))
            
                foundTime = foundTime.Replace(" - ", "~");
                string[] strs = foundTime.Split('~');//根据 " - "分割字符串
                if (strs.Length == 2)
                
                    DateTime dtStart = Convert.ToDateTime(strs[0]);
                    DateTime dtEnd = Convert.ToDateTime(strs[1]);
                    list = list.Where(o => o.foundTime >= dtStart && o.foundTime <= dtEnd);
                
            
            //数据的总条数
            var row = list.Count();
         
            List<userVo> user = list
            .OrderBy(o => o.userID)
            .Skip(layuitablepage.GetstartIndex())
            .Take(layuitablepage.limit).ToList();

            LayuiTableData<userVo> layuitableData = new LayuiTableData<userVo>();
            layuitableData.count = row;
            layuitableData.data = user;

            return Json(layuitableData, JsonRequestBehavior.AllowGet);
        
        #endregion

新增部分:(注:本人给它做了拓展,添加了图片)

   //新增模态窗口
        function openModal() 
            //修改标题
            $("#modalTitle").text("新增图书馆信息");
            //重置表单
            $("#userform")[0].reset();
            //清空input标签
            $("#upImage").val(null);
            //手动修改userID
            $("#userID").val(0);
            //移除src属性
            $("#studentPicture").removeAttr("src");
            //打开模态窗口
            $("#addModal").modal('show');
        
        //新增操作和保存修改操作
        function saveForm() 
            //通过序列化获取参数
            var formArr = $("#userform").serializeArray();
            console.log(formArr);
            //文件上传表单
            var upFormData = new FormData();
            //把参数Array转换为Obj
            var formData = ;
            for (var key in formArr) 
                formData[formArr[key].name] = formArr[key].value;
                upFormData.append(formArr[key].name, formArr[key].value);
            
            //把文件数据添加到
            upFormData.append("upImage", $("#upImage").get(0).files[0]);
            //数据验证
            if (formData.userName == undefined || formData.userName == "") 
                layer.alert("请输入用户名");
                return;
            
            if (formData.idCard == undefined || formData.idCard == "" || idCardNo(formData.idCard) == false) 
                layer.alert("请输入正确的身份证号");
                return;
            
            if (formData.telephone == undefined || formData.telephone == "" || !/^1[3-9][0-9]9$/.test(formData.telephone)) 
                layer.alert("请输入正确的电话号码");
                return;
            
            if (formData.address == undefined || formData.address == "") 
                layer.alert("请输入家庭住址");
                return;
            
            if (formData.e_mail == undefined || formData.e_mail == "") 
                layer.alert("请输入邮箱地址");
                return;
            
            if (formData.account == undefined || formData.account == "") 
                layer.alert("请输入正确的电话号码");
                return;
            
            if (formData.password == undefined || formData.password == "") 
                layer.alert("请输入正确的电话号码");
                return;
            
            if (formData.roleID == undefined || formData.roleID == "") 
                layer.alert("请输入正确的电话号码");
                return;
            
            var url = "/BaseInfor/User/addInfor";
            if (formData.userID != undefined && formData.userID != "" && formData.userID > 0) 
                url = "/BaseInfor/User/saveamendInfor";
            
           //开启加载层
            var layerIndex = layer.load();
            //表单提交
            $.ajax(
                type: 'post',
                url: url,
                contentType: false,
                processData: false,
                data: upFormData,
                success: function (jsonMsg) 
                    layer.close(layerIndex);
                    layer.alert(jsonMsg.Text);
                    if (jsonMsg.State) 
                        tabuserSearch();//刷新表格
                        $("#addModal").modal("hide");//关闭模态框
                    
                
            )
        

控制器新增方法:

#region   新增信息
        public ActionResult addInfor(UserInfor user,HttpPostedFileBase upImage)
        
            ReturnJson msg = new ReturnJson();
            //数据验证
            if (!string.IsNullOrEmpty(user.userName))
            
                if (IdCardHelper.CheckIdCard(user.idCard))
                
                    if (!string.IsNullOrEmpty(user.address))
                    
                        if(Regex.IsMatch(user.telephone, "^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[89])[0-9]8$"))
                        
                            if (Regex.IsMatch(user.e_mail, "^([a-zA-Z]|[0-9])(\\\\w|\\\\-)+@[a-zA-Z0-9]+\\\\.([a-zA-Z]2,4)$"))
                            
                                if (!string.IsNullOrEmpty(user.account))
                                
                                    if (user.roleID > 0)
                                    
                                        #region 图片
                                        //检查存放的目录是否存在
                                        if (!System.IO.Directory.Exists(Server.MapPath("~/Document/Pictrue/")))
                                        
                                            //创建目录
                                            System.IO.Directory.CreateDirectory(Server.MapPath("~/Document/Pictrue/"));
                                        
                                        //判断文件是否上传
                                        if (upImage != null || upImage.ContentLength > 0)
                                        
                                            //获取文件扩展名
                                            string strName = Path.GetExtension(upImage.FileName);
                                            //生成一个新的文件名
                                            string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + "_" + Guid.NewGuid().ToString() + strName;
                                            //文件路径
                                            string filePath = Server.MapPath("~/Document/Pictrue/") + fileName;
                                            //将上传的文件保存到指定的路径下面
                                            upImage.SaveAs(filePath);
                                            //将文件名保存到photoName字段中
                                            user.photoName = fileName;
                                        
                                        //保存到数据库 二进制数组大小就文件大小
                                        byte[] imageBytes = new byte[upImage.ContentLength];
                                        //读取流到二进制数组 byte数组 ,开始位置,结束位置
                                        upImage.InputStream.Read(imageBytes, 0, upImage.ContentLength);
                                        //保存到对象
                                        user.photo = imageBytes;
                                        #endregion
                                        //去空格
                                        user.idCard = user.idCard.Trim();
                                        user.telephone = user.telephone.Trim();
                                        user.e_mail = user.e_mail.Trim();
                                        user.account = user.account.Trim();
                                        //检查重复
                                        int repeat = myModal.UserInfor.Count(a => a.idCard == user.idCard || a.telephone == user.telephone
                                          || a.e_mail == user.e_mail || a.account == user.account);

                                        if (repeat == 0)
                                        
                                            user.foundTime = DateTime.Now;
                                            user.effective = true;
                                            //保存到数据库
                                            myModal.UserInfor.Add(user);
                                            if (myModal.SaveChanges() > 0)
                                            
                                                msg.State = true;
                                                msg.Text = "新增成功";
                                            
                                            else
                                            
                                                msg.Text = "新增失败";
                                            
                                        
                                        else
                                        
                                            msg.Text = 以上是关于图书管理系统之用户信息维护的主要内容,如果未能解决你的问题,请参考以下文章

图书管理系统数据库SQL设计思路

图书管理系统数据库SQL设计思路

小组项目———图书管理系统之?需求分析

基于jsp+servlet图书管理系统之后台用户信息删除操作

基于jsp+servlet图书管理系统之后台用户信息查询操作

基于jsp+servlet图书管理系统之后台用户信息修改操作