|
|
@ -300,5 +300,155 @@ namespace Tiobon.Core.Services |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion |
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取课程 |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 获取课程 |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
|
|
|
|
/// <param name="courseId"></param> |
|
|
|
|
|
|
|
/// <returns></returns> |
|
|
|
|
|
|
|
public async Task<ServiceResult<Ghre_StudyRecordCourse>> QueryCourse(QueryBody body, long id) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var course = new Ghre_StudyRecordCourse(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string sql = @$"SELECT A.Id,
|
|
|
|
|
|
|
|
A.CourseId, |
|
|
|
|
|
|
|
A.CourseSceneId, |
|
|
|
|
|
|
|
ISNULL (B.CourseName, G.SceneName) CourseName, |
|
|
|
|
|
|
|
B.UseDefaultCoverImage, |
|
|
|
|
|
|
|
B.DefaultCoverImageName, |
|
|
|
|
|
|
|
B.CoverUrl, |
|
|
|
|
|
|
|
B.SchoolTeacherId, |
|
|
|
|
|
|
|
B.SchoolId, |
|
|
|
|
|
|
|
B.InOrOut, |
|
|
|
|
|
|
|
E.TeacherName, |
|
|
|
|
|
|
|
-- E.TeacherEName, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CASE B.InOrOut |
|
|
|
|
|
|
|
WHEN 'In' THEN C.StaffEname |
|
|
|
|
|
|
|
WHEN 'Out' THEN NULL |
|
|
|
|
|
|
|
ELSE NULL |
|
|
|
|
|
|
|
END AS TeacherEName, |
|
|
|
|
|
|
|
E.PhotoUrl TeacherPhotoUrl, |
|
|
|
|
|
|
|
CASE B.InOrOut |
|
|
|
|
|
|
|
WHEN 'In' |
|
|
|
|
|
|
|
THEN |
|
|
|
|
|
|
|
dbo.FO_DeptInfo (E.DeptID, |
|
|
|
|
|
|
|
getdate (), |
|
|
|
|
|
|
|
1, |
|
|
|
|
|
|
|
'DeptFullPateName') |
|
|
|
|
|
|
|
WHEN 'Out' |
|
|
|
|
|
|
|
THEN |
|
|
|
|
|
|
|
F.SchoolName |
|
|
|
|
|
|
|
ELSE |
|
|
|
|
|
|
|
NULL |
|
|
|
|
|
|
|
END AS DeptOrSchoolName, |
|
|
|
|
|
|
|
E.SkillPoints TeacherRemarkSz, |
|
|
|
|
|
|
|
B.StandardHour, |
|
|
|
|
|
|
|
B.CreditPoints, |
|
|
|
|
|
|
|
B.Outline CourseRemarkSz, |
|
|
|
|
|
|
|
A.StudyProgress |
|
|
|
|
|
|
|
FROM Ghre_StudyRecord A |
|
|
|
|
|
|
|
LEFT JOIN Ghre_Course B ON A.CourseId = B.Id |
|
|
|
|
|
|
|
LEFT JOIN Ghra_Staff c ON B.TeacherId = c.StaffID |
|
|
|
|
|
|
|
LEFT JOIN Ghre_Teacher E ON B.SchoolTeacherId = E.Id |
|
|
|
|
|
|
|
LEFT JOIN Ghre_School F ON B.SchoolId = F.Id |
|
|
|
|
|
|
|
LEFT JOIN Ghre_CourseScene G ON A.CourseSceneId = G.Id |
|
|
|
|
|
|
|
WHERE A.Id = '{id}'";
|
|
|
|
|
|
|
|
course = await Db.Ado.SqlQuerySingleAsync<Ghre_StudyRecordCourse>(sql); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (course.CourseSceneId.IsNull()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
sql = @$"SELECT A.Id, A.Source, A.Link
|
|
|
|
|
|
|
|
FROM Ghre_CourseWare A |
|
|
|
|
|
|
|
WHERE A.CourseIds LIKE '%{course.CourseId}%' AND A.IsEnable = 1";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
course.CourseWareList = await Db.Ado.SqlQueryAsync<Ghre_StudyRecordCourseWare>(sql); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
course.CourseWareList.ForEach(x => |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
x.CourseId = course.CourseId; |
|
|
|
|
|
|
|
x.CourseName = course.CourseName; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
course.CourseTeacherList = |
|
|
|
|
|
|
|
[ |
|
|
|
|
|
|
|
new Ghre_StudyRecordCourseTeacher() { |
|
|
|
|
|
|
|
TeacherName = course.TeacherName, |
|
|
|
|
|
|
|
TeacherEName = course.TeacherEName, |
|
|
|
|
|
|
|
TeacherPhotoUrl = course.TeacherPhotoUrl, |
|
|
|
|
|
|
|
DeptOrSchoolName = course.DeptOrSchoolName, |
|
|
|
|
|
|
|
TeacherRemarkSz = course.TeacherRemarkSz |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
course.CourseWareList = new List<Ghre_StudyRecordCourseWare>(); |
|
|
|
|
|
|
|
course.CourseTeacherList = new List<Ghre_StudyRecordCourseTeacher>(); |
|
|
|
|
|
|
|
var courses = await Db.Queryable<Ghre_Course>().Where(x => x.CourseSceneId == course.CourseSceneId && x.Status == Consts.DIC_COURSE_STATUS.RELEASED).ToListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < courses.Count; i++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var course1 = courses[i]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sql = @$"SELECT A.Id, A.Source, A.Link
|
|
|
|
|
|
|
|
FROM Ghre_CourseWare A |
|
|
|
|
|
|
|
WHERE A.CourseIds LIKE '%{course1.Id}%' AND A.IsEnable = 1";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var courseWareList = await Db.Ado.SqlQueryAsync<Ghre_StudyRecordCourseWare>(sql); |
|
|
|
|
|
|
|
courseWareList.ForEach(x => |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
x.CourseId = course.CourseId; |
|
|
|
|
|
|
|
x.CourseName = course.CourseName; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
course.CourseWareList.AddRange(courseWareList); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sql = $@"SELECT a.ID,
|
|
|
|
|
|
|
|
C.TeacherName, |
|
|
|
|
|
|
|
CASE A.InOrOut |
|
|
|
|
|
|
|
WHEN 'In' THEN B.StaffEname |
|
|
|
|
|
|
|
WHEN 'Out' THEN NULL |
|
|
|
|
|
|
|
ELSE NULL |
|
|
|
|
|
|
|
END AS TeacherEName, |
|
|
|
|
|
|
|
C.PhotoUrl TeacherPhotoUrl, |
|
|
|
|
|
|
|
CASE A.InOrOut |
|
|
|
|
|
|
|
WHEN 'In' |
|
|
|
|
|
|
|
THEN |
|
|
|
|
|
|
|
dbo.FO_DeptInfo (b.DeptID, |
|
|
|
|
|
|
|
getdate (), |
|
|
|
|
|
|
|
1, |
|
|
|
|
|
|
|
'DeptFullPateName') |
|
|
|
|
|
|
|
WHEN 'Out' |
|
|
|
|
|
|
|
THEN |
|
|
|
|
|
|
|
D.SchoolName |
|
|
|
|
|
|
|
ELSE |
|
|
|
|
|
|
|
NULL |
|
|
|
|
|
|
|
END AS DeptOrSchoolName, |
|
|
|
|
|
|
|
c.SkillPoints TeacherRemarkSz, |
|
|
|
|
|
|
|
a.CourseName |
|
|
|
|
|
|
|
FROM Ghre_Course A |
|
|
|
|
|
|
|
LEFT JOIN Ghra_Staff B ON A.TeacherId = B.StaffID |
|
|
|
|
|
|
|
LEFT JOIN Ghre_Teacher C ON A.SchoolTeacherId = C.Id |
|
|
|
|
|
|
|
LEFT JOIN Ghre_School D ON C.SchoolId = D.Id |
|
|
|
|
|
|
|
WHERE a.id = '{course1.Id}'";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
course.CourseTeacherList.Add(await Db.Ado.SqlQuerySingleAsync<Ghre_StudyRecordCourseTeacher>(sql)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int j = 0; j < course.CourseWareList.Count; j++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
course.CourseWareList[j].Attachments = await Db.Queryable<Ghre_CourseWareAttachment>().Where(x => x.CourseWareId == course.CourseWareList[j].Id).ToListAsync(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ServiceResult<Ghre_StudyRecordCourse>.OprateSuccess("查询成功!", course); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |