|
@@ -32,6 +32,7 @@ using WingInterfaceLibrary.DTO.User;
|
|
|
using WingInterfaceLibrary.Request.User;
|
|
|
using WingServerCommon.Config;
|
|
|
using WingServerCommon.Config.Parameters;
|
|
|
+using System.IO;
|
|
|
|
|
|
namespace WingEducationService.Service
|
|
|
{
|
|
@@ -155,6 +156,47 @@ namespace WingEducationService.Service
|
|
|
return !string.IsNullOrWhiteSpace(courseCode);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 适配最优cdn地址
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="requestUrl">源文件地址</param>
|
|
|
+ /// <returns>cdn地址</returns>
|
|
|
+ private string GetAdapterCDN(string requestUrl)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(requestUrl))
|
|
|
+ {
|
|
|
+ //flyinsono-bj-1300984704|ap-beijing;flyinsono-hk-1300984704|ap-hongkong;flyinsono-fra-1300984704|eu-frankfurt
|
|
|
+ //如果是cdn则使用新的,如果是源站,则直接返回
|
|
|
+ var tempList = _otherNodes.Split(";");
|
|
|
+ var sourceNodeList = new List<string>();
|
|
|
+ foreach(var nodeInfo in tempList)
|
|
|
+ {
|
|
|
+ var sourceNode = nodeInfo.Split("|")[0];
|
|
|
+ sourceNodeList.Add(sourceNode);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (sourceNodeList?.Count > 0 && !string.IsNullOrEmpty(_vodHostNode))
|
|
|
+ {
|
|
|
+ var isReturn = false;
|
|
|
+ foreach(var item in sourceNodeList)
|
|
|
+ {
|
|
|
+ if (requestUrl.Contains(item) || requestUrl.Contains(_vodHostNode))
|
|
|
+ {
|
|
|
+ isReturn = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isReturn)
|
|
|
+ {
|
|
|
+ return requestUrl;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var fileName = Path.GetFileName(requestUrl);
|
|
|
+ var newUrl = _curCDNHost + "/" + fileName;
|
|
|
+ return newUrl;
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 通用课程列表查询接口
|
|
|
/// </summary>
|
|
@@ -224,7 +266,7 @@ namespace WingEducationService.Service
|
|
|
CourseIntro = pageDataItem.CourseIntro,
|
|
|
TeacherCode = pageDataItem.TeacherCode,
|
|
|
TeacherName = pageDataItem.TeacherName,
|
|
|
- Cover = pageDataItem.Cover,
|
|
|
+ Cover = GetAdapterCDN(pageDataItem.Cover),
|
|
|
StartTime = pageDataItem.StartTime,
|
|
|
Duration = pageDataItem.Duration,
|
|
|
CourseType = pageDataItem.CourseType,
|
|
@@ -599,6 +641,7 @@ namespace WingEducationService.Service
|
|
|
var courseShareUrl = EnvironmentConfigManager.GetParammeter<StringParameter>("Share", "CourseShareUrl").Value;
|
|
|
resultData.CourseLiveUrl = string.Format(courseLiveUrl, code);
|
|
|
resultData.CourseShareUrl = string.Format(courseShareUrl, code);
|
|
|
+ resultData.Cover = GetAdapterCDN(resultData.Cover);
|
|
|
return resultData;
|
|
|
}
|
|
|
|
|
@@ -640,6 +683,10 @@ namespace WingEducationService.Service
|
|
|
{
|
|
|
Codes = courseList
|
|
|
});
|
|
|
+ foreach(var item in courseInfos)
|
|
|
+ {
|
|
|
+ item.Cover = GetAdapterCDN(item.Cover);
|
|
|
+ }
|
|
|
coursePages.PageData = courseInfos.ToList();
|
|
|
}
|
|
|
}
|
|
@@ -681,6 +728,10 @@ namespace WingEducationService.Service
|
|
|
if (albumList != null && albumList.Count > 0)
|
|
|
{
|
|
|
albumInfos = await _courseDBService.FindAllAlbumListByAlbumCodesDBAsync(albumList);
|
|
|
+ foreach(var item in albumInfos)
|
|
|
+ {
|
|
|
+ item.Cover = GetAdapterCDN(item.Cover);
|
|
|
+ }
|
|
|
courseAlbumPages.PageData = albumInfos.ToList();
|
|
|
}
|
|
|
}
|