图书管理系统之用户信息维护
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
以上是关于图书管理系统之用户信息维护的主要内容,如果未能解决你的问题,请参考以下文章
基于jsp+servlet图书管理系统之后台用户信息删除操作