public ActionResult ImportMessage() { var vm = new Models.SysMessageUser.ImportMessage(); vm.ImportMsgList = new List <Dto.SysMessageUser.ImportMessage>(); return(View(vm)); }
public ActionResult ImportMessage(Models.SysMessageUser.ImportMessage vm) { var error = new List <string>(); if (error.Count == decimal.Zero) { if (ModelState.IsValid) { var file = Request.Files[nameof(vm.UploadFile)]; var fileSave = System.IO.Path.GetTempFileName(); file.SaveAs(fileSave); using (var db = new XkSystem.Models.DbContext()) { if (Code.Common.GetFileType(file.FileName) != Code.FileType.Excel) { error.AddError("上传的文件不是正确的EXCLE文件!"); } var dt = Code.NpoiHelper.ExcelToDataTable(fileSave, System.IO.Path.GetExtension(file.FileName), string.Empty); if (dt == null) { error.AddError("无法读取上传的文件,请检查文件格式是否正确!"); } var tbOrgList = new List <string>() { "用户账号", "用户姓名", "私信标题", "私信内容" }; var Text = string.Empty; foreach (var a in tbOrgList) { if (!dt.Columns.Contains(a.ToString())) { Text += a + ","; } } if (!string.IsNullOrEmpty(Text)) { error.AddError("上传的EXCEL内容与预期不一致!缺少字段:" + Text); } var tbSysUserList = db.Table <Sys.Entity.tbSysUser>().ToList();//全部用户 vm.ImportMsgList = new List <Dto.SysMessageUser.ImportMessage>(); var index = 0; foreach (System.Data.DataRow dr in dt.Rows) { index++; var SysUser = new Dto.SysMessageUser.ImportMessage() { UserCode = Convert.ToString(dr["用户账号"]), UserName = Convert.ToString(dr["用户姓名"]), MessageTitle = Convert.ToString(dr["私信标题"]), MessageContent = Convert.ToString(dr["私信内容"]) }; var user = tbSysUserList.Where(d => d.UserCode == SysUser.UserCode); if (user != null && user.Count() > 0) { SysUser.Id = user.FirstOrDefault().Id; SysUser.UserName = user.FirstOrDefault().UserName; } else { var errorMsg = string.Format("第{0}行:用户{1}[{2}]不存在系统中;", index.ToString(), SysUser.UserCode, SysUser.UserName); error.AddError(errorMsg); continue; } if (string.IsNullOrEmpty(SysUser.MessageTitle)) { var errorMsg = string.Format("第{0}行:私信标题为空,请输入私信标题;", index.ToString()); error.AddError(errorMsg); continue; } if (string.IsNullOrEmpty(SysUser.MessageContent)) { var errorMsg = string.Format("第{0}行:私信内容为空,请输入私信内容;", index.ToString()); error.AddError(errorMsg); continue; } if (vm.ImportMsgList.Where(d => d.Id == SysUser.Id && d.UserCode == SysUser.UserCode && d.UserName == SysUser.UserName && d.MessageTitle == SysUser.MessageTitle && d.MessageContent == SysUser.MessageContent).Count() == 0) { vm.ImportMsgList.Add(SysUser); } } if (error != null && error.Count > decimal.Zero) { } else { foreach (var message in vm.ImportMsgList) { var tb = new Sys.Entity.tbSysMessage(); tb.MessageTitle = message.MessageTitle; tb.IsSms = false; tb.IsEmail = false; tb.IsPermit = true;//私信 tb.Url = ""; tb.MessageContent = message.MessageContent; tb.tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(Code.Common.UserId); tb.tbProgram = db.Set <Admin.Entity.tbProgram>().Find(Code.Common.ProgramId); tb.InputDate = DateTime.Now; db.Set <Sys.Entity.tbSysMessage>().Add(tb); var tbUser = new Sys.Entity.tbSysMessageUser(); tbUser.IsRead = false; tbUser.tbSysMessage = tb; tbUser.ReadDate = DateTime.Now; tbUser.tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(message.Id); tbUser.UpdateTime = DateTime.Now; db.Set <Sys.Entity.tbSysMessageUser>().Add(tbUser); } if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("导入私信"); } vm.Status = true; } } } } if (error != null && error.Count > decimal.Zero) { foreach (var msg in error) { ModelState.AddModelError("", msg); } vm.Status = false; } return(View(vm)); }