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;
}
}
}