/// <summary>
        /// 获取常规课多个时间段上课信息
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2019-03-07</para>
        /// </summary>
        /// <param name="regularAttends">常规课次信息</param>
        /// <param name="res">out 常规课多个上课信息</param>
        private static void GetMultiAttendRegular(
            List <ViewStudentScanCodeAttend> regularAttends,
            List <ScanCodeClassInfo> res)
        {
            var classIdList  = regularAttends.Select(x => x.ClassId).Distinct().ToList();  //班级ID列表
            var courseIdList = regularAttends.Select(x => x.CourseId).Distinct().ToList(); //课程ID列表

            //获取课程信息列表
            var courseList = CourseService.GetByCourseId(courseIdList);

            foreach (var classId in classIdList)
            {
                var regularAttend = regularAttends.FirstOrDefault(x => x.ClassId == classId);
                var courseInfo    = courseList.FirstOrDefault(x => x.CourseId == regularAttend?.CourseId);

                //上课时间
                var classTimeList = regularAttends
                                    .OrderBy(x => x.ClassBeginTime)
                                    .Select(x => x.ClassBeginTime + '-' + x.ClassEndTime)
                                    .ToList();

                ScanCodeClassInfo scanCode = new ScanCodeClassInfo
                {
                    ClassId   = classId,
                    ClassName = courseInfo?.ClassCnName ?? string.Empty,
                    ClassTime = string.Join(" ", classTimeList)
                };

                res.Add(scanCode);
            }
        }
        /// <summary>
        /// 获取写生课多个时间段上课信息
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2019-03-07</para>
        /// </summary>
        /// <param name="sketchAttends">写生课次信息</param>
        /// <param name="res">out 常规课多个上课信息</param>
        private static void GetMultiAttendSketch(
            List <ViewStudentScanCodeAttend> sketchAttends,
            List <ScanCodeClassInfo> res)
        {
            var lifeClassIdList = sketchAttends.Select(x => x.BusinessId).Distinct().ToList();
            var lifeClassList   = new TblTimLifeClassRepository().GetLifeClassList(lifeClassIdList);

            foreach (var lifeClassId in lifeClassIdList)
            {
                var lifeClassInfo = lifeClassList.FirstOrDefault(x => x.LifeClassId == lifeClassId);
                var sketchAttend  = sketchAttends.FirstOrDefault(x => x.BusinessId == lifeClassId);

                string classTime;
                if (sketchAttend != null)
                {
                    classTime = DateTime.Parse(sketchAttend.ClassBeginTime).ToString("HH:mm") +
                                "-" +
                                DateTime.Parse(sketchAttend.ClassBeginTime).ToString("yyyy.MM.dd HH:mm");
                }
                else if (lifeClassInfo != null)
                {
                    classTime = lifeClassInfo.ClassBeginTime.Value.ToString("HH:mm") +
                                "-" +
                                lifeClassInfo.ClassBeginTime.Value.ToString("yyyy.MM.dd HH:mm");
                }
                else
                {
                    classTime = string.Empty;
                }

                ScanCodeClassInfo scanCode = new ScanCodeClassInfo
                {
                    ClassId   = lifeClassId,
                    ClassName = lifeClassInfo?.Title ?? string.Empty,
                    ClassTime = classTime
                };

                res.Add(scanCode);
            }
        }