public ActionResult DayEdit(Models.MoralData.DayEdit vm) { return(Code.MvcHelper.Post(null, Url.Action("DayEdit", new { moralId = vm.MoralId, moralDate = vm.MoralDate }))); }
public ActionResult SaveForDay(Models.MoralData.DayEdit vm) { var error = new List <string>(); using (var db = new XkSystem.Models.DbContext()) { var moralId = vm.MoralId; var moralItemIds = db.Table <Moral.Entity.tbMoralItem>().Where(p => p.tbMoralGroup.tbMoral.Id == vm.MoralId).Select(p => p.Id).ToList(); var itemCount = moralItemIds.Count; //列数 var arrLength = itemCount * 2 + 4; // 4=__RequestVerificationToken+MoralId+MoralDate+StudentIds var list = new List <string>(); for (var i = 3; i < arrLength; i++) { list.Add(Request.Form[i]); } var listData = new List <Moral.Entity.tbMoralData>(); var studentIds = list[0].Split(',').Select(int.Parse).ToList(); for (var i = 0; i < studentIds.Count; i++) { Moral.Entity.tbMoralData tb = null; for (var j = 1; j < list.Count; j += 2) { tb = new Moral.Entity.tbMoralData(); tb.tbStudent = db.Set <Student.Entity.tbStudent>().Find(studentIds[i]); //偶数,MoralItem var items = list[j].Split(',').Select(int.Parse).ToList(); tb.tbMoralItem = db.Set <Moral.Entity.tbMoralItem>().Find(items[i]); //奇数,MoralOption或者MoralDataText var options = list[j + 1].Split(','); var option = options[i]; //值包含option前缀的为MoralOption if (option.Contains("option_")) // option_i { var optionId = option.Split('_')[1].ConvertToInt(); tb.tbMoralOption = db.Set <Moral.Entity.tbMoralOption>().Find(optionId); } else { //判断dataText是否在MinScore和MaxScore之间 var optionValue = option.ConvertToDecimal(); if (optionValue < tb.tbMoralItem.MinScore || optionValue > tb.tbMoralItem.MaxScore) { error.Add($"第{i + 1}行{tb.tbMoralItem.MoralItemName}的分数必须在{tb.tbMoralItem.MinScore}-{tb.tbMoralItem.MaxScore}之间!"); } tb.DataText = option.ConvertToDecimal(); } listData.Add(tb); } } if (!error.Any()) { var tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(Code.Common.UserId); listData.ForEach(p => { p.InputDate = DateTime.Now; p.MoralDate = vm.MoralDate; p.tbSysUser = tbSysUser; }); var oldData = (from p in db.Table <Moral.Entity.tbMoralData>() where studentIds.Contains(p.tbStudent.Id) && moralItemIds.Contains(p.tbMoralItem.Id) && vm.MoralDate == p.MoralDate select p); foreach (var item in oldData) { item.IsDeleted = true; } db.Set <Moral.Entity.tbMoralData>().AddRange(listData); if (db.SaveChanges() > 0) { Sys.Controllers.SysUserLogController.Insert("录入了德育数据!"); } } } return(Code.MvcHelper.Post(error, message: "保存成功!")); }
public ActionResult DayEdit() { using (var db = new XkSystem.Models.DbContext()) { var vm = new Models.MoralData.DayEdit(); var moral = db.Set <Moral.Entity.tbMoral>().Find(vm.MoralId); if (moral == null) { moral = (from p in db.Table <Moral.Entity.tbMoral>() where DateTime.Now <= p.ToDate && DateTime.Now >= p.FromDate select p).FirstOrDefault(); } if (moral == null) { vm.DataIsNull = true; return(View(vm)); //return RedirectToAction("List", "Moral"); } switch (moral.MoralType) { case Code.EnumHelper.MoralType.Many: return(RedirectToAction("Edit", new { MoralId = vm.MoralId })); case Code.EnumHelper.MoralType.Once: return(RedirectToAction("OnceEdit", new { MoralId = vm.MoralId })); } if (vm.MoralDate == Code.DateHelper.MinDate) { vm.MoralDate = moral.FromDate; } vm.MoralId = moral.Id; vm.MoralClassList = MoralClassController.SelectList(vm.MoralId); vm.MoralGroupList = MoralGroupController.GetMoralGroupInfoList(vm.MoralId); vm.MoralList = MoralController.SelectList(); vm.MoralType = moral.MoralType; vm.FromDate = moral.FromDate.ToString(Code.Common.StringToDate); vm.ToDate = moral.ToDate.ToString(Code.Common.StringToDate); foreach (var group in vm.MoralGroupList) { vm.MoralItemList.AddRange(MoralItemController.SelectList(group.Id)); } foreach (var item in vm.MoralItemList) { vm.MoralOptionList.AddRange(MoralOptionController.SelectList(item.Id)); } var moralClassIds = (from p in db.Table <Moral.Entity.tbMoralClass>() where p.tbMoral.Id == vm.MoralId select p.tbClass.Id).ToList(); vm.StudentList = Student.Controllers.StudentController.GetStudentInfoListByClassIds(moralClassIds); var moralItemIds = vm.MoralItemList.Select(p => p.Id); vm.MoralDataList = (from p in db.Table <Moral.Entity.tbMoralData>() where p.CheckStatus == Code.EnumHelper.CheckStatus.Success && moralItemIds.Contains(p.tbMoralItem.Id) && vm.MoralDate == p.MoralDate orderby p.No select new Dto.MoralData.OnceList() { Id = p.Id, DataText = p.DataText, MoralItemId = p.tbMoralItem.Id, MoralOptionId = p.tbMoralOption != null ? p.tbMoralOption.Id : 0, StudentId = p.tbStudent.Id, StudentName = p.tbStudent.StudentName, SysUserName = p.tbSysUser.UserName }).ToList(); return(View(vm)); } }