Beispiel #1
0
        /// <summary>
        /// 补课周补课分页列表
        /// <para>作    者:Huang GaoLiang</para>
        /// <para>创建时间:2019-03-12</para>
        /// </summary>
        /// <param name="request">查询补课周补课列表条件</param>
        /// <returns>返回补课周补课分页数据</returns>
        public PageResult <ReplenishWeekListResponse> GetReplenishWeekList(ReplenishWeekListSearchRequest request)
        {
            // 1、根据条件查询补课周补课列表
            PageResult <ViewReplenishWeek>         replenishWeekList = new ViewReplenishWeekRepository().GetReplenishWeekList(request);
            PageResult <ReplenishWeekListResponse> list = Mapper.Map <PageResult <ViewReplenishWeek>, PageResult <ReplenishWeekListResponse> >(replenishWeekList);

            // 2、获取补课时间
            var classIds = list.Data.Select(m => m.ClassId).ToList();

            // 3、根据上课班级编号获取

            List <ViewTimAdjustLesson> timAdjustLessonList = new ViewTimAdjustLessonRepository().GetTimeLessonClassList(classIds);

            // 3、组合数据
            foreach (var item in list.Data)
            {
                item.MakeUpTimeList = timAdjustLessonList.Where(m => m.ClassId == item.ClassId && m.StudentId == item.StudentId)
                                      .Select(m => new MakeUpTime
                {
                    ClassDate      = m.ClassDate,
                    ClassBeginTime = m.ClassBeginTime,
                    ClassEndTime   = m.ClassEndTime
                })
                                      .OrderBy(m => m.ClassDate)
                                      .ToList();
            }

            return(list);
        }
 public PageResult <ReplenishWeekListResponse> GetReplenishWeekList([FromQuery] ReplenishWeekListSearchRequest request)
 {
     request.SchoolId  = base.SchoolId;
     request.TeacherId = base.CurrentUser.UserId;
     return(new ReplenishWeekService(base.SchoolId, base.CurrentUser.UserId, base.CurrentUser.UserName).GetReplenishWeekList(request));
 }
Beispiel #3
0
        /// <summary>
        /// 根据条件查询补课周补课分页列表
        /// <para>作    者:Huang GaoLiang</para>
        /// <para>创建时间:2019-03-13</para>
        /// </summary>
        /// <param name="search">补课周补课分页查询条件</param>
        /// <returns>返回补课周补课分页列表</returns>
        public PageResult <ViewReplenishWeek> GetReplenishWeekList(ReplenishWeekListSearchRequest search)
        {
            #region sql

            string querySql = @"SELECT  s.StudentId,
                                        s.StudentNo,
                                        s.StudentName,
                                        c.ClassNo,
                                        c.TeacherId,
                                        COUNT(0) AS ClassNumber,
                                        w.ReplenishWeekId,
                                        w.Remark,
                                        tl.TermId,
                                        t.TermName,
                                        tl.CourseId,
                                        tl.ClassId
                                FROM dbo.TblTimLessonStudent ts
                                    INNER JOIN TblTimLesson tl ON tl.LessonId = ts.LessonId
                                    INNER JOIN dbo.TblCstStudent s ON s.StudentId = ts.StudentId
                                    INNER JOIN dbo.TblDatClass c ON tl.ClassId = c.ClassId
                                    INNER JOIN dbo.TblDatTerm t ON tl.TermId = t.TermId
                                    LEFT JOIN dbo.TblDatClassReplenishWeek w ON tl.ClassId=w.ClassId  AND  s.StudentId = w.StudentId
                                WHERE ts.SchoolId = @SchoolId
                                        AND c.TeacherId = @TeacherId
                                        AND t.TermId = @TermId
                                        AND ts.AttendStatus IN ( 0, 2 )
                                        AND ts.AdjustType in( 0, 3 )
                                        AND tl.ClassDate<=GETDATE()
                                GROUP BY s.StudentId,
                                         s.StudentNo,
                                         s.StudentName,
                                         c.ClassNo,
                                         c.TeacherId,
                                         w.ReplenishWeekId,
                                         w.Remark,
                                         tl.TermId,
                                         t.TermName,
                                         tl.CourseId,
                                         tl.ClassId
                               HAVING COUNT(0) > 0
                              UNION
                              SELECT  s.StudentId,
                                      s.StudentNo,
                                      s.StudentName,
                                      c.ClassNo,
                                      c.TeacherId,
                                      COUNT(0) AS ClassNumber,
                                      w.ReplenishWeekId,
                                      w.Remark,
                                      tl.TermId,
                                      t.TermName,
                                      tl.CourseId,
                                      tl.ClassId
                              FROM TblTimLesson tl
                                   INNER JOIN TblTimReplenishLesson rl ON tl.LessonId = rl.LessonId
                                   INNER JOIN dbo.TblCstStudent s ON s.StudentId = rl.StudentId
                                   INNER JOIN dbo.TblDatClass c ON tl.ClassId = c.ClassId
                                   INNER JOIN dbo.TblDatTerm t ON tl.TermId = t.TermId
                                   LEFT JOIN dbo.TblDatClassReplenishWeek w ON s.StudentId = w.StudentId AND  c.ClassId =w.ClassId
                              WHERE rl.SchoolId = @SchoolId
                                      AND c.TeacherId = @TeacherId
                                      AND t.TermId = @TermId
                                      AND rl.AttendStatus IN ( 0, 2 )
                                      AND rl.AdjustType in( 0)
                                      AND tl.ClassDate <= GETDATE()
                              GROUP BY s.StudentId,
                                       s.StudentNo,
                                       s.StudentName,
                                       c.ClassNo,
                                       c.TeacherId,
                                       w.ReplenishWeekId,
                                       w.Remark,
                                       tl.TermId,
                                       t.TermName,
                                       tl.CourseId,
                                       tl.ClassId
                              HAVING COUNT(0) > 0 ";
            #endregion
            var replenishWeekQuery = base.CurrentContext.ViewReplenishWeek.FromSql(querySql, new SqlParameter[] {
                new SqlParameter("@SchoolId", search.SchoolId),
                new SqlParameter("@TeacherId", search.TeacherId),
                new SqlParameter("@TermId", search.TermId)
            }).AsNoTracking();
            var result = replenishWeekQuery
                         .WhereIf(search.CourseId > 0, x => x.CourseId == search.CourseId)
                         .WhereIf(!string.IsNullOrWhiteSpace(search.ClassNo), x => x.ClassNo == search.ClassNo)
                         .OrderBy(m => m.StudentNo).ToPagerSource(search.PageIndex, search.PageSize);

            return(result);
        }