Quanxue.Zhanghao.Daochu/LearningOfficer.OA.Common/Helpers/LiveSystemHelper.cs

121 lines
5.3 KiB
C#

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
{
/// <summary>
/// 李春波系统对接
/// </summary>
[Inject(Lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient)]
public class LiveSystemHelper
{
private readonly IOptionsMonitor<ClassCourseTableSetting> _classCourseOptionsMonitor;
private readonly ILogger<LiveSystemHelper> _logger;
public LiveSystemHelper(IOptionsMonitor<ClassCourseTableSetting> classCourseOptionsMonitor,
ILogger<LiveSystemHelper> logger)
{
this._classCourseOptionsMonitor = classCourseOptionsMonitor;
this._logger = logger;
}
/// <summary>
/// 根据时间获取当周课程表(时间不传默认一周)
/// </summary>
/// <param name="ClassId">班级id必传</param>
/// <param name="StartTime"></param>
/// <param name="EndTime"></param>
/// <returns></returns>
/// <exception cref="BusinessException"></exception>
public async Task<List<WeekModel>> 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<BaseFollowModel<List<WeekModel>>>(resultString);
if (result == null || result.code != 200)
{
throw new BusinessException("获取课程表失败");
}
return result.data;
}
/// <summary>
/// 根据课程ID获取课程详情
/// </summary>
/// <param name="ClassCourseId"></param>
/// <returns></returns>
/// <exception cref="BusinessException"></exception>
public async Task<CourseWeekDetailOutput> 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<BaseFollowModel<CourseWeekDetailOutput>>(resultString);
if (result == null || result.code != 200)
{
throw new BusinessException("获取课程详情失败");
}
return result.data;
}
/// <summary>
/// 根据班级ID获取班级科目教师列表
/// </summary>
/// <param name="classId"></param>
/// <returns></returns>
/// <exception cref="BusinessException"></exception>
public async Task<List<ClassTeachersResult>> 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<BaseFollowModel<List<ClassTeachersResult>>>(resultString);
if (result == null || result.code != 200)
{
throw new BusinessException("获取课程详情失败");
}
return result.data;
}
/// <summary>
/// 修改课程
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
/// <exception cref="BusinessException"></exception>
public async Task<bool> 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<BaseFollowModel<string>>(resultString);
if (result == null || result.code != 200)
{
throw new BusinessException("更新课表失败,"+ result?.message);
}
return true;
}
}
}