Exemplo n.º 1
0
        /// <summary>
        /// 确认上课完成
        /// </summary>
        /// <param name="pKID">课程编号</param>
        /// <param name="venueID">场馆编号</param>
        /// <param name="teachState">排课表编号</param>
        /// <param name="curriculumState">学生排课关联表状态</param>
        /// <returns></returns>
        public static bool DoneTeachingSche(int pKID, int venueID,
                                            Sys.Models.StateEnum.TeachingSchedule teachState,
                                            Sys.Models.StateEnum.Curriculum curriculumState)
        {
            System.Data.IDbConnection connection = Comm.Helper.DapperHelper.Instance;
            connection.Open();
            System.Data.IDbTransaction transaction = connection.BeginTransaction();

            try
            {
                var teachingInfo = DapperHelper.Instance.Get <Sys.Models.TeachingSchedule>(pKID);
                if (teachingInfo.VenueID != venueID)
                {
                    throw new Comm.YYException.YYException("操作非法");
                }

                var sql = "SELECT StudentID  FROM [dbo].[Curriculum]  where PKID=@pkID and [State]=@state";

                var result = DapperHelper.Instance.Query <int>(sql, new
                {
                    pkId  = pKID,
                    state = Sys.Models.StateEnum.Curriculum.InClassTeachingSche
                });

                //没有约课成功的学生则认为已经处理完成
                if (result == null || result.Count() == 0)
                {
                    return(true);
                }

                //修改排课状态
                var updateCurriculumSql = "update Curriculum set State=@state where PKID=@pkId";
                int updateCurriculum    = connection.Execute(updateCurriculumSql, new
                {
                    pkId  = pKID,
                    state = Convert.ToInt32(curriculumState)
                }, transaction);

                teachingInfo.State = Convert.ToInt32(teachState);
                connection.Update(teachingInfo, transaction);

                transaction.Commit();
                return(true);
            }
            catch (Comm.YYException.YYException)
            {
                throw;
            }
            catch (Exception ex)
            {
                logs.Error("确认上课完成失败", ex);
                transaction.Rollback();
                return(false);
            }
            finally
            {
                connection.Close();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 检测是否有人约课
        /// </summary>
        /// <param name="pKID"></param>
        /// <returns></returns>
        public static bool IsBeBook(int pKID, int venueID, Sys.Models.StateEnum.Curriculum curriculumState)
        {
            var teachingInfo = DapperHelper.Instance.Get <Sys.Models.TeachingSchedule>(pKID);

            if (teachingInfo.VenueID != venueID)
            {
                throw new Comm.YYException.YYException("操作非法");
            }

            var isStudentBuySql = "SELECT COUNT(CurriculumID)  FROM [dbo].[Curriculum]  where PKID=@pkId and [State]=@state";
            var isStudentBuy    = DapperHelper.Instance.Query <int>(isStudentBuySql, new
            {
                pkId  = pKID,
                state = curriculumState,// Sys.Models.StateEnum.Curriculum.BookTeachingScheDone
            });

            return(isStudentBuy.FirstOrDefault() > 0);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 取消学生预约的课程(适用于学校停课、教练请假)
        /// </summary>
        /// <param name="pKID">课程编号</param>
        /// <param name="venueID">场馆编号</param>
        /// <param name="teachState">排课表编号</param>
        /// <param name="curriculumState">学生排课关联表状态</param>
        /// <param name="classHoursDetailedState">学生课时明细状态</param>
        /// <param name="remark">备注</param>
        /// <returns></returns>
        public static bool CancelTeachingSche(int pKID, int venueID,
                                              Sys.Models.StateEnum.TeachingSchedule teachState,
                                              Sys.Models.StateEnum.Curriculum curriculumState,
                                              Sys.Models.StateEnum.ClassHoursDetailed classHoursDetailedState,
                                              string remark)
        {
            /*
             * 检测该操作是否合法
             *
             * 修改约课表状态
             * 回写学生约课课时、添加日志记录
             * 修改排课表信息
             *
             */

            System.Data.IDbConnection connection = Comm.Helper.DapperHelper.Instance;
            connection.Open();
            System.Data.IDbTransaction transaction = connection.BeginTransaction();

            try
            {
                var teachingInfo = DapperHelper.Instance.Get <Sys.Models.TeachingSchedule>(pKID);
                if (teachingInfo.VenueID != venueID)
                {
                    throw new Comm.YYException.YYException("操作非法");
                }

                var         sql    = "SELECT StudentID  FROM [dbo].[Curriculum]  where PKID=@pkID and [State]=@state";
                IList <int> result = new List <int>();
                if (teachState == Sys.Models.StateEnum.TeachingSchedule.StopTeachingSche)
                {
                    if (teachingInfo.State != Convert.ToInt32(Sys.Models.StateEnum.TeachingSchedule.BookTeachingScheDone))
                    {
                        throw new Comm.YYException.YYException("课程不是预约成功状态");
                    }
                    result = DapperHelper.Instance.Query <int>(sql, new
                    {
                        pkId  = pKID,
                        state = Sys.Models.StateEnum.Curriculum.BookTeachingScheDone
                    }).ToList();
                    //没有约课成功的学生则认为已经处理完成
                    if (result == null || result.Count() == 0)
                    {
                        return(true);
                    }
                }
                else
                {
                    if (teachingInfo.State != Convert.ToInt32(Sys.Models.StateEnum.TeachingSchedule.LeaveTeachingScheIng))
                    {
                        throw new Comm.YYException.YYException("课程未申请请假");
                    }
                    result = DapperHelper.Instance.Query <int>(sql, new
                    {
                        pkId  = pKID,
                        state = Sys.Models.StateEnum.Curriculum.CoachLeaveTeachingScheDone
                    }).ToList();
                    //没有约课成功的学生则认为已经处理完成
                    if (result == null || result.Count() == 0)
                    {
                        return(true);
                    }
                }

                //修改排课状态
                var updateCurriculumSql = "update Curriculum set State=@state where PKID=@pkId";
                int updateCurriculum    = connection.Execute(updateCurriculumSql, new
                {
                    pkId  = pKID,
                    state = Convert.ToInt32(curriculumState)
                }, transaction);

                var updateClassHoursNumberSql = "update ClassHoursNumber set ClassNumber=ClassNumber+1 where StudentID=@studentID and CoachID=@coachID and VenueID=@venueID and PKType=@PKType";
                foreach (var item in result)
                {
                    //修改学生课时数量
                    int updateClassHoursNumber = connection.Execute(updateClassHoursNumberSql, new
                    {
                        studentID = item,
                        coachID   = teachingInfo.CoachID,
                        venueID   = venueID,
                        PKType    = teachingInfo.PKType
                    }, transaction);

                    //添加学生课时数操作日志
                    connection.Insert <Sys.Models.ClassHoursDetailed>(new Sys.Models.ClassHoursDetailed()
                    {
                        AddTime   = DateTime.Now,
                        DNumber   = 1,
                        CoachID   = teachingInfo.CoachID.Value,
                        StudentID = item,
                        VenueID   = venueID,
                        DType     = Convert.ToInt32(classHoursDetailedState),
                        Remark    = remark,
                        PKType    = teachingInfo.PKType.Value,
                    }, transaction);
                }

                teachingInfo.State = Convert.ToInt32(teachState);
                connection.Update(teachingInfo, transaction);

                transaction.Commit();
                return(true);
            }
            catch (Comm.YYException.YYException)
            {
                throw;
            }
            catch (Exception ex)
            {
                logs.Error("取消课程失败", ex);
                transaction.Rollback();
                return(false);
            }
            finally
            {
                connection.Close();
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 学生请假
        /// </summary>
        /// <param name="curriculumID"></param>
        /// <param name="venueID"></param>
        /// <param name="teachState"></param>
        /// <param name="curriculumState"></param>
        /// <param name="classHoursDetailedState"></param>
        /// <param name="remark"></param>
        /// <returns></returns>
        public static bool CancelTeachingSche4Student(int curriculumID, int venueID,
                                                      Sys.Models.StateEnum.TeachingSchedule teachState,
                                                      Sys.Models.StateEnum.Curriculum curriculumState,
                                                      Sys.Models.StateEnum.ClassHoursDetailed classHoursDetailedState,
                                                      string remark)
        {
            /*
             * 检测该操作是否合法
             *
             * 修改约课表状态
             * 回写学生约课课时、添加日志记录
             * 修改排课表信息
             *
             */

            System.Data.IDbConnection connection = Comm.Helper.DapperHelper.Instance;
            connection.Open();
            System.Data.IDbTransaction transaction = connection.BeginTransaction();

            try
            {
                var curriculumInfo = DapperHelper.Instance.Get <Sys.Models.Curriculum>(curriculumID);
                if (curriculumInfo.VenueID != venueID)
                {
                    throw new Comm.YYException.YYException("操作非法");
                }

                if (curriculumInfo.State != Convert.ToInt32(Sys.Models.StateEnum.Curriculum.LeaveTeachingScheIng))
                {
                    throw new Comm.YYException.YYException("课程未申请请假");
                }

                var teachingInfo = DapperHelper.Instance.Get <Sys.Models.TeachingSchedule>(curriculumInfo.PKID);

                //修改排课状态
                var updateCurriculumSql = "update Curriculum set State=@state where PKID=@pkId";
                int updateCurriculum    = connection.Execute(updateCurriculumSql, new
                {
                    pkId  = curriculumInfo.PKID,
                    state = Convert.ToInt32(curriculumState)
                }, transaction);

                var updateClassHoursNumberSql = "update ClassHoursNumber set ClassNumber=ClassNumber+1 where StudentID=@studentID and CoachID=@coachID and VenueID=@venueID and PKType=@PKType";

                //修改学生课时数量
                int updateClassHoursNumber = connection.Execute(updateClassHoursNumberSql, new
                {
                    studentID = curriculumInfo.StudentID,
                    coachID   = teachingInfo.CoachID,
                    venueID   = venueID,
                    PKType    = teachingInfo.PKType
                }, transaction);

                //添加学生课时数操作日志
                connection.Insert <Sys.Models.ClassHoursDetailed>(new Sys.Models.ClassHoursDetailed()
                {
                    AddTime   = DateTime.Now,
                    DNumber   = 1,
                    CoachID   = teachingInfo.CoachID.Value,
                    StudentID = curriculumInfo.StudentID.Value,
                    VenueID   = venueID,
                    DType     = Convert.ToInt32(classHoursDetailedState),
                    Remark    = remark,
                    PKType    = teachingInfo.PKType.Value
                }, transaction);

                //如果是一对一的课程可以修改为请假完成
                if (teachingInfo.PKType.Value == 1)
                {
                    teachingInfo.State = Convert.ToInt32(teachState);
                    connection.Update(teachingInfo, transaction);
                }

                transaction.Commit();
                return(true);
            }
            catch (Comm.YYException.YYException)
            {
                throw;
            }
            catch (Exception ex)
            {
                logs.Error("确认学生请假申请失败", ex);
                transaction.Rollback();
                return(false);
            }
            finally
            {
                connection.Close();
            }
        }