121 lines
5.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|