Пример #1
0
        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));
        }
Пример #2
0
        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
            })));
        }