|
@@ -6,6 +6,13 @@ using System.Threading.Tasks;
|
|
|
using System.Collections.Generic;
|
|
|
using GxPress.Result.SystemLabel;
|
|
|
using GxPress.Result.Media;
|
|
|
+using GxPress.Repository.Interface.SystemLabel;
|
|
|
+using GxPress.Repository.Interface.Navigation;
|
|
|
+using GxPress.Result.MiddleLable;
|
|
|
+using AutoMapper;
|
|
|
+using System.Linq;
|
|
|
+using GxPress.Common.Tools;
|
|
|
+using GxPress.Common.Page;
|
|
|
|
|
|
namespace GxPress.Service.Implement.AppHomePage
|
|
|
{
|
|
@@ -13,10 +20,20 @@ namespace GxPress.Service.Implement.AppHomePage
|
|
|
{
|
|
|
private readonly IArticleGroupRepository articleGroupRepository;
|
|
|
private readonly IMediaRepository mediaRepository;
|
|
|
- public AppHomePageService(IArticleGroupRepository articleGroupRepository, IMediaRepository mediaRepository)
|
|
|
+ private readonly IMapper _mapper;
|
|
|
+ private readonly IMiddleLableRepository _middleLableRepository;
|
|
|
+ private readonly ISystemLabelRepository _systemLabelRepository;
|
|
|
+ private readonly IMediaLableRepository _mediaLableRepository;
|
|
|
+ private readonly IMiddleLableNexusRepository middleLableNexusRepository;
|
|
|
+ public AppHomePageService(IArticleGroupRepository articleGroupRepository, IMediaRepository mediaRepository, IMiddleLableRepository _middleLableRepository, ISystemLabelRepository _systemLabelRepository, IMiddleLableNexusRepository middleLableNexusRepository, IMediaLableRepository _mediaLableRepository, IMapper _mapper)
|
|
|
{
|
|
|
this.articleGroupRepository = articleGroupRepository;
|
|
|
this.mediaRepository = mediaRepository;
|
|
|
+ this._middleLableRepository = _middleLableRepository;
|
|
|
+ this._systemLabelRepository = _systemLabelRepository;
|
|
|
+ this.middleLableNexusRepository = middleLableNexusRepository;
|
|
|
+ this._mediaLableRepository = _mediaLableRepository;
|
|
|
+ this._mapper = _mapper;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 大咖讲座
|
|
@@ -26,30 +43,84 @@ namespace GxPress.Service.Implement.AppHomePage
|
|
|
public async Task<List<AppLabelResult<MediaCathedraResult>>> GetMediasByTeacherAsync(ArticleGroupRequest request)
|
|
|
{
|
|
|
var results = new List<AppLabelResult<MediaCathedraResult>>();
|
|
|
- request.Sort = "recommend";
|
|
|
- var items = await mediaRepository.GetMediasByTeacherAsync(request);
|
|
|
- results.Add(new AppLabelResult<MediaCathedraResult>() { LabelName = "今日推荐", IsPage = false, ResourceType = 40, Method = "", Items = items });
|
|
|
- request.Sort = "";
|
|
|
- items = await mediaRepository.GetMediasByTeacherAsync(request);
|
|
|
- results.Add(new AppLabelResult<MediaCathedraResult>() { LabelName = "更多精彩", IsPage = true, ResourceType = 40, Method = "post", Items = items, ActionUrl = "api/app/page/cathedra-page" });
|
|
|
- foreach (var item in results)
|
|
|
+ //大师讲座
|
|
|
+ if (request.StyleCss == "Cathedra")
|
|
|
{
|
|
|
- foreach (var model in item.Items)
|
|
|
- model.Duration = "02:19:20";
|
|
|
+ request.Sort = "recommend";
|
|
|
+ var items = await mediaRepository.GetMediasByTeacherAsync(request);
|
|
|
+ results.Add(new AppLabelResult<MediaCathedraResult>() { LabelName = "今日推荐", IsPage = false, ResourceType = 40, Method = "", Items = items });
|
|
|
+ request.Sort = "";
|
|
|
+ items = await mediaRepository.GetMediasByTeacherAsync(request);
|
|
|
+ results.Add(new AppLabelResult<MediaCathedraResult>() { LabelName = "更多精彩", IsPage = true, ResourceType = 40, Method = "post", Items = items, ActionUrl = "api/app/page/cathedra-page" });
|
|
|
+ foreach (var item in results)
|
|
|
+ {
|
|
|
+ foreach (var model in item.Items)
|
|
|
+ model.Duration = "02:19:20";
|
|
|
+ }
|
|
|
}
|
|
|
+ //会员特供
|
|
|
+ if (request.StyleCss == "VipSupply")
|
|
|
+ {
|
|
|
+ return await GetVipSupplyAsync(request);
|
|
|
+ }
|
|
|
+ //
|
|
|
return results;
|
|
|
}
|
|
|
/// <summary>
|
|
|
+ /// 会员特供
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<List<AppLabelResult<MediaCathedraResult>>> GetVipSupplyAsync(ArticleGroupRequest request)
|
|
|
+ {
|
|
|
+ var result = new List<AppLabelResult<MediaCathedraResult>>();
|
|
|
+ //根据样式查找导航数据
|
|
|
+ var articleGroup = await articleGroupRepository.GetArticleGroupAsync(request.StyleCss);
|
|
|
+ if (articleGroup.IsMiddleLable)
|
|
|
+ {
|
|
|
+ //获取中间页面
|
|
|
+ var middleLable = await _middleLableRepository.GetAsync(articleGroup.MiddleLableId);
|
|
|
+ //获取中间页标签
|
|
|
+ var middleLableNexusIds = await middleLableNexusRepository.GetAllTaskAsync(middleLable.Id);
|
|
|
+ //获取标签
|
|
|
+ var systemLabels = await _systemLabelRepository.GetAllAsync(middleLableNexusIds.Select(n => n.LableId).ToList());
|
|
|
+ foreach (var item in systemLabels)
|
|
|
+ {
|
|
|
+ //获取媒体标签
|
|
|
+ var mediaIds = await _mediaLableRepository.GetMediaIdsAysnc(item.Id);
|
|
|
+ var medias = await mediaRepository.GetNavigationMediaResults(mediaIds,item.PageSize);
|
|
|
+ var list = new List<MediaCathedraResult>();
|
|
|
+ foreach (var mediaModel in medias)
|
|
|
+ {
|
|
|
+ list.Add(new MediaCathedraResult { Id = mediaModel.Id, Title = mediaModel.Title, ImageUrls = StringUtils.AddDomain(mediaModel.ImageUrls), Author = mediaModel.Author, ReadCount = mediaModel.ReadCount, CreatedDate = mediaModel.CreatedDate, CollectCount = mediaModel.CollectCount, MediaType = mediaModel.MediaType });
|
|
|
+ }
|
|
|
+ //获取常规数据
|
|
|
+ var mediaCathedraResult = new AppLabelResult<MediaCathedraResult>()
|
|
|
+ {
|
|
|
+ IsPage = false,
|
|
|
+ Id = item.Id,
|
|
|
+ LabelName = item.LabelName,
|
|
|
+ ResourceType = 40,
|
|
|
+ Items = list
|
|
|
+ };
|
|
|
+ result.Add(mediaCathedraResult);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
/// 大咖讲座
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
- public async Task<IEnumerable<MediaCathedraResult>> MediaCathedraResult(ArticleGroupRequest request)
|
|
|
+ public async Task<PagedList<MediaCathedraResult>> MediaCathedraResult(ArticleGroupRequest request)
|
|
|
{
|
|
|
- var result = await mediaRepository.GetMediasByTeacherAsync(request);
|
|
|
- foreach (var item in result)
|
|
|
+ var result = new PagedList<MediaCathedraResult>();
|
|
|
+ result.Items = await mediaRepository.GetMediasByTeacherAsync(request);
|
|
|
+ foreach (var item in result.Items)
|
|
|
{
|
|
|
item.ImageUrls = Common.Tools.StringUtils.AddDomain(item.ImageUrls);
|
|
|
}
|
|
|
+ result.Total = await mediaRepository.GetMediasByTeacherCountAsync(request);
|
|
|
return result;
|
|
|
}
|
|
|
}
|