public ActionResult StudentDetailEdit(int id = 0) { var vm = new Models.MoralData.StudentDetailEdit(); //当前德育选项的操作方式是否为打分 //vm.IsScoreOperate = (from p in db.Table<Entity.tbMoralItem>() where p.Id == vm.MoralItemId select p.MoralItemOperateType).FirstOrDefault() == Code.EnumHelper.MoralItemOperateType.Score; vm.IsScoreOperate = (Code.EnumHelper.MoralItemOperateType)Enum.Parse(typeof(Code.EnumHelper.MoralItemOperateType), vm.OperateType) == Code.EnumHelper.MoralItemOperateType.Score; if (vm.IsScoreOperate) { vm.MoralDataReasonList = MoralDataReasonController.SelectList(vm.MoralItemId); } if (id > 0) { using (var db = new XkSystem.Models.DbContext()) { var tb = (from p in db.Table <Moral.Entity.tbMoralData>() where p.Id == id select new Dto.MoralData.StudentDetailEdit() { Id = id, MoralExpress = p.DataText.HasValue && p.DataText.Value > 0 ? Code.EnumHelper.MoralExpress.Add : Code.EnumHelper.MoralExpress.Subtract, Score = Math.Abs(p.DataText.Value), MoralDataReason = p.tbMoralDataReason.Reason, Comment = p.Comment }).FirstOrDefault(); if (tb != null) { vm.Edit = tb; } } } return(View(vm)); }
public ActionResult StudentDetailEdit(Models.MoralData.StudentDetailEdit vm) { using (var db = new XkSystem.Models.DbContext()) { var moralItem = db.Set <Entity.tbMoralItem>().Find(vm.MoralItemId); var tbData = (from p in db.Table <Entity.tbMoralData>() where p.tbMoralItem.Id == vm.MoralItemId && p.MoralDate == vm.MoralDate select p); if (vm.ClassId > 0) { tbData = tbData.Where(p => p.tbClass.Id == vm.ClassId); } if (vm.StudentGroupId > 0) { tbData = tbData.Where(p => p.tbClassGroup.Id == vm.StudentGroupId); } if (vm.StudentId > 0) { tbData = tbData.Where(p => p.tbStudent.Id == vm.StudentId); } //累计已评分数值 var existsScore = tbData.Sum(p => p.DataText); //当前评分值 var currentScore = vm.Edit.MoralExpress == Code.EnumHelper.MoralExpress.Add ? vm.Edit.Score : 0 - vm.Edit.Score; var score = moralItem.DefaultValue + (existsScore.HasValue ? existsScore.Value : 0) + currentScore; if (score > moralItem.MaxScore) { return(Code.MvcHelper.Post(new List <string>() { $"累计分数【{score}】已超过该评分项的最高分【{moralItem.MaxScore}】!" })); } if (score < moralItem.MinScore) { return(Code.MvcHelper.Post(new List <string>() { $"累计分数【{score}】不能小于该评分项的最低分【{moralItem.MinScore}】!" })); } if (vm.MoralDataId > 0) { var tb = db.Set <Moral.Entity.tbMoralData>().Find(vm.MoralDataId); if (tb != null) { tb.DataText = vm.Edit.MoralExpress == Code.EnumHelper.MoralExpress.Add ? vm.Edit.Score : 0 - vm.Edit.Score; tb.Comment = vm.Edit.Comment ?? string.Empty; if (vm.Edit.tbMoralDataReasonId.HasValue && vm.Edit.tbMoralDataReasonId.Value > 0) { tb.tbMoralDataReason = db.Set <Entity.tbMoralDataReason>().Find(vm.Edit.tbMoralDataReasonId); } tb.MoralItemOperateType = moralItem.MoralItemOperateType; tb.CheckStatus = moralItem.AutoCheck ? Code.EnumHelper.CheckStatus.Success : Code.EnumHelper.CheckStatus.None; if (!string.IsNullOrWhiteSpace(vm.Edit.MoralPhotos)) { var tbMoralPhoto = (from p in db.Table <Entity.tbMoralPhoto>() where p.tbMoralData.Id == vm.MoralDataId select p); foreach (var photo in tbMoralPhoto) { photo.IsDeleted = true; } var photoList = vm.Edit.MoralPhotos.Split('|').ToList(); photoList.RemoveAll(p => string.IsNullOrWhiteSpace(p)); db.Set <Entity.tbMoralPhoto>().AddRange(photoList.Select(p => new Entity.tbMoralPhoto() { FileName = p, tbMoralData = tb }).ToList()); } if (db.SaveChanges() > 0) { Sys.Controllers.SysUserLogController.Insert("修改了德育评分!"); } } else { return(Code.MvcHelper.Post(new List <string>() { Resources.LocalizedText.MsgNotFound })); } } else { var tb = new Moral.Entity.tbMoralData() { DataText = vm.Edit.MoralExpress == Code.EnumHelper.MoralExpress.Add ? vm.Edit.Score : 0 - vm.Edit.Score, InputDate = DateTime.Now.Date, MoralDate = vm.MoralDate, tbMoralItem = moralItem, MoralItemOperateType = moralItem.MoralItemOperateType, CheckStatus = moralItem.AutoCheck ? Code.EnumHelper.CheckStatus.Success : Code.EnumHelper.CheckStatus.None, Comment = vm.Edit.Comment ?? string.Empty, tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(Code.Common.UserId), }; if (vm.Edit.tbMoralDataReasonId.HasValue && vm.Edit.tbMoralDataReasonId.Value > 0) { tb.tbMoralDataReason = db.Set <Entity.tbMoralDataReason>().Find(vm.Edit.tbMoralDataReasonId); } if (vm.StudentId > 0) { tb.tbStudent = db.Set <Student.Entity.tbStudent>().Find(vm.StudentId); } if (vm.StudentGroupId > 0) { tb.tbClassGroup = db.Set <Basis.Entity.tbClassGroup>().Find(vm.StudentGroupId); } if (vm.ClassId > 0) { tb.tbClass = db.Set <Basis.Entity.tbClass>().Find(vm.ClassId); } db.Set <Moral.Entity.tbMoralData>().Add(tb); if (!string.IsNullOrWhiteSpace(vm.Edit.MoralPhotos)) { var photoList = vm.Edit.MoralPhotos.Split('|').ToList(); photoList.RemoveAll(p => string.IsNullOrWhiteSpace(p)); db.Set <Entity.tbMoralPhoto>().AddRange(photoList.Select(p => new Entity.tbMoralPhoto() { FileName = p, tbMoralData = tb }).ToList()); } if (db.SaveChanges() > 0) { Sys.Controllers.SysUserLogController.Insert("添加了德育评分!"); } } } return(Code.MvcHelper.Post(message: "操作成功!", returnUrl: Url.Action("StudentDetailList", new { ItemId = vm.MoralItemId, StudentId = vm.StudentId, GroupId = vm.StudentGroupId, ClassId = vm.ClassId, Date = vm.MoralDate.Date, Op = vm.OperateType }))); }