AppPageController.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using System.Collections.Generic;
  2. using System.Threading.Tasks;
  3. using GxPress.Common.Page;
  4. using GxPress.Request.ArticleGroup;
  5. using GxPress.Request.Media;
  6. using GxPress.Request.TeacherRequest;
  7. using GxPress.Result.Media;
  8. using GxPress.Result.SystemLabel;
  9. using GxPress.Result.Teacher;
  10. using GxPress.Service.Interface.AppHomePage;
  11. using Microsoft.AspNetCore.Authorization;
  12. using Microsoft.AspNetCore.Mvc;
  13. using GxPress.Repository.Interface.Media;
  14. using GxPress.EnumConst;
  15. namespace GxPress.Api.AppControllers
  16. {
  17. /// <summary>
  18. /// App首页数据
  19. /// </summary>
  20. [Route("api/app/page")]
  21. [ApiController]
  22. [Authorize]
  23. public class AppPageController : Controller
  24. {
  25. private readonly IAppHomePageService appHomePageService;
  26. private readonly IMediaRepository mediaRepository;
  27. public AppPageController(IAppHomePageService appHomePageService, IMediaRepository mediaRepository)
  28. {
  29. this.appHomePageService = appHomePageService;
  30. this.mediaRepository = mediaRepository;
  31. }
  32. /// <summary>
  33. /// 大咖讲座 每日好书
  34. /// </summary>
  35. /// <param name="request"></param>
  36. /// <returns></returns>
  37. [HttpPost("cathedra")]
  38. [AllowAnonymous]
  39. public async Task<List<AppLabelResult<MediaCathedraResult>>> GetMediasByTeacherAsync(ArticleGroupRequest request)
  40. {
  41. if (string.IsNullOrEmpty(request.StyleCss))
  42. throw new Common.Exceptions.BusinessException("样式未知!");
  43. return await appHomePageService.GetMediasByTeacherAsync(request);
  44. }
  45. /// <summary>
  46. /// 大咖讲座分页接口
  47. /// </summary>
  48. /// <returns></returns>
  49. [HttpPost("cathedra-page")]
  50. [AllowAnonymous]
  51. public async Task<PagedList<MediaCathedraResult>> MediaCathedraResult(ArticleGroupRequest request)
  52. {
  53. return await appHomePageService.MediaCathedraResult(request);
  54. }
  55. /// <summary>
  56. /// 每日好文
  57. /// </summary>
  58. /// <param name="request"></param>
  59. /// <returns></returns>
  60. [HttpPost("day-good-text")]
  61. [AllowAnonymous]
  62. public async Task<PagedList<MediaCathedraResult>> GetDayGoodTextAsync(MediaSearchRequest request)
  63. {
  64. request.MediaType = GxPress.EnumConst.AllTypeConst.Article.GetHashCode();
  65. request.IsDelete = 0;
  66. request.IsChecked = 1;
  67. return await appHomePageService.GetDayGoodTextAsync(request);
  68. }
  69. /// <summary>
  70. /// 每日微课
  71. /// </summary>
  72. /// <returns></returns>
  73. [HttpPost("day-we-book")]
  74. [AllowAnonymous]
  75. public async Task<PagedList<MediaCathedraResult>> GetDayWeBookAsync(MediaDayWeBookRequest request)
  76. {
  77. request.Name = "每日微课";
  78. return await appHomePageService.GetDayWeBookAsync(request);
  79. }
  80. /// <summary>
  81. /// 信源听说
  82. /// </summary>
  83. /// <param name="request"></param>
  84. /// <returns></returns>
  85. [HttpPost("chat-hear-speak")]
  86. [AllowAnonymous]
  87. public async Task<PagedList<MediaCathedraResult>> GetChatHearSpeak(MediaSearchRequest request)
  88. {
  89. request.MediaType = GxPress.EnumConst.AllTypeConst.Audio.GetHashCode();
  90. request.IsDelete = 0;
  91. request.IsChecked = 1;
  92. return await appHomePageService.GetDayGoodTextAsync(request);
  93. }
  94. /// <summary>
  95. /// 根据标签ID获取每日好书 分页换一批
  96. /// </summary>
  97. /// <returns></returns>
  98. [HttpPost("lable")]
  99. [AllowAnonymous]
  100. public async Task<IEnumerable<MediaCathedraResult>> GetMediaByLableIdsAsync(MediaIdsRequest request)
  101. {
  102. return await appHomePageService.GetMediaByLableIdsAsync(request);
  103. }
  104. /// <summary>
  105. /// 根据标签ID获取分页数据
  106. /// </summary>
  107. /// <returns></returns>
  108. [HttpPost("page-lable")]
  109. [AllowAnonymous]
  110. public async Task<PagedList<MediaCathedraResult>> GetMediaByLableIdAsync(MediaLableIdRequest request)
  111. {
  112. return await appHomePageService.GetMediaByLableIdAsync(request);
  113. }
  114. /// <summary>
  115. /// 名师
  116. /// </summary>
  117. /// <param name="request"></param>
  118. /// <returns></returns>
  119. [HttpPost("teacher")]
  120. [AllowAnonymous]
  121. public async Task<PagedList<TeacherResult>> GetTeacherAsync(TeacherRequest request)
  122. {
  123. return await appHomePageService.GetTeacherAsync(request);
  124. }
  125. /// <summary>
  126. /// 每日技能分页
  127. /// </summary>
  128. /// <returns></returns>
  129. [HttpPost("day-skill")]
  130. [AllowAnonymous]
  131. public async Task<PagedList<MediaCathedraResult>> GetDaySkillsAsync(MediaDayWeBookRequest request)
  132. {
  133. request.TypeValue = AllTypeConst.Article.GetHashCode();
  134. return await mediaRepository.GetDaySkillsAsync(request);
  135. }
  136. /// <summary>
  137. /// 随机每日技能
  138. /// </summary>
  139. /// <returns></returns>
  140. [HttpGet("random-day-skill")]
  141. [AllowAnonymous]
  142. public async Task<SkillInfo> GetRandomDaySkillAsync()
  143. {
  144. return await mediaRepository.GetRandomDaySkillAsync();
  145. }
  146. /// <summary>
  147. /// 书城
  148. /// </summary>
  149. /// <returns></returns>
  150. [HttpGet("book-city")]
  151. [AllowAnonymous]
  152. public async Task<List<AppLabelResult<MediaCathedraResult>>> GetBookCityAsync()
  153. {
  154. ArticleGroupRequest request = new ArticleGroupRequest();
  155. request.ActionUrl = "api/app/page/lable";
  156. return await appHomePageService.GetBookCityAsync(request);
  157. }
  158. /// <summary>
  159. /// 猜你喜欢
  160. /// </summary>
  161. /// <returns></returns>
  162. [HttpGet("user-like")]
  163. public async Task<IEnumerable<MediaCathedraResult>> GetUserLikeAsync()
  164. {
  165. return await mediaRepository.GetUserLikeAsync();
  166. }
  167. }
  168. }