using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using LearningOfficer.OA.Common.Attributes; using LearningOfficer.OA.Common.Configs; using LearningOfficer.OA.Common.Dtos.ClassTeacher; using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow; using LearningOfficer.OA.Common.Exceptions; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Newtonsoft.Json; namespace LearningOfficer.OA.Common.Helpers { /// /// 李春波系统对接 /// [Inject(Lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient)] public class LiveSystemHelper { private readonly IOptionsMonitor _classCourseOptionsMonitor; private readonly ILogger _logger; public LiveSystemHelper(IOptionsMonitor classCourseOptionsMonitor, ILogger logger) { this._classCourseOptionsMonitor = classCourseOptionsMonitor; this._logger = logger; } /// /// 根据时间获取当周课程表(时间不传默认一周) /// /// 班级id必传 /// /// /// /// public async Task> GetWeekCourseTable(long ClassId, DateTime? StartTime, DateTime? EndTime) { var classCourseUrl = _classCourseOptionsMonitor.CurrentValue; var url = classCourseUrl.UrlHead + "api/yangqiang/ClassCourseTable/coursetables?ClassId=" + ClassId; if (StartTime != null) { url = url + "&StartTime=" + StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); } if (EndTime != null) { url = url + "&EndTime=" + EndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); } RestSharpHelper restSharp = new RestSharpHelper(); var resultString = await restSharp.GetAsync(url); var result = JsonConvert.DeserializeObject>>(resultString); if (result == null || result.code != 200) { throw new BusinessException("获取课程表失败"); } return result.data; } /// /// 根据课程ID获取课程详情 /// /// /// /// public async Task GetCourseWeekDetail(long ClassCourseId) { var classCourseUrl = _classCourseOptionsMonitor.CurrentValue; var url = classCourseUrl.UrlHead + "api/yangqiang/ClassCourseTable/coursdetailss?classCourseId=" + ClassCourseId; RestSharpHelper restSharp = new RestSharpHelper(); var resultString = await restSharp.GetAsync(url); var result = JsonConvert.DeserializeObject>(resultString); if (result == null || result.code != 200) { throw new BusinessException("获取课程详情失败"); } return result.data; } /// /// 根据班级ID获取班级科目教师列表 /// /// /// /// public async Task> GetClassTeachersByClassId(long classId) { var classCourseUrl = _classCourseOptionsMonitor.CurrentValue; var url = classCourseUrl.UrlHead + "api/yangqiang/ClassCourseTable/classteachers?classId=" + classId; RestSharpHelper restSharp = new RestSharpHelper(); var resultString = await restSharp.GetAsync(url); var result = JsonConvert.DeserializeObject>>(resultString); if (result == null || result.code != 200) { throw new BusinessException("获取课程详情失败"); } return result.data; } /// /// 修改课程 /// /// /// /// public async Task UpdateClassCourseTable(ClassCourseTableRequest request) { var classCourseUrl = _classCourseOptionsMonitor.CurrentValue; var url = classCourseUrl.UrlHead + "api/yangqiang/ClassCourseTable/update"; RestSharpHelper restSharp = new RestSharpHelper(); var resultString = await restSharp.PostAsync(url, request); var result = JsonConvert.DeserializeObject>(resultString); if (result == null || result.code != 200) { throw new BusinessException("更新课表失败,"+ result?.message); } return true; } } }