李昊 пре 4 година
родитељ
комит
4f17fcf8a3

+ 17 - 1
gx_api/GxPress/Api/GxPress.Api/AppControllers/AppPageController.cs

@@ -3,8 +3,10 @@ using System.Threading.Tasks;
 using GxPress.Common.Page;
 using GxPress.Request.ArticleGroup;
 using GxPress.Request.Media;
+using GxPress.Request.TeacherRequest;
 using GxPress.Result.Media;
 using GxPress.Result.SystemLabel;
+using GxPress.Result.Teacher;
 using GxPress.Service.Interface.AppHomePage;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
@@ -26,7 +28,7 @@ namespace GxPress.Api.AppControllers
         }
 
         /// <summary>
-        /// 大咖讲座
+        /// 大咖讲座 
         /// </summary>
         /// <param name="request"></param>
         /// <returns></returns>
@@ -58,6 +60,8 @@ namespace GxPress.Api.AppControllers
         public async Task<PagedList<MediaCathedraResult>> GetDayGoodTextAsync(MediaSearchRequest request)
         {
             request.MediaType = GxPress.EnumConst.AllTypeConst.Article.GetHashCode();
+            request.IsDelete = 0;
+            request.IsChecked = 1;
             return await appHomePageService.GetDayGoodTextAsync(request);
         }
         /// <summary>
@@ -70,6 +74,8 @@ namespace GxPress.Api.AppControllers
         public async Task<PagedList<MediaCathedraResult>> GetChatHearSpeak(MediaSearchRequest request)
         {
             request.MediaType = GxPress.EnumConst.AllTypeConst.Audio.GetHashCode();
+            request.IsDelete = 0;
+            request.IsChecked = 1;
             return await appHomePageService.GetDayGoodTextAsync(request);
         }
 
@@ -82,5 +88,15 @@ namespace GxPress.Api.AppControllers
         {
             return await appHomePageService.GetMediaByLableIdsAsync(request);
         }
+        /// <summary>
+        /// 名师
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("teacher")]
+        public async Task<PagedList<TeacherResult>> GetTeacherAsync(TeacherRequest request)
+        {
+            return await appHomePageService.GetTeacherAsync(request);
+        }
     }
 }

+ 10 - 0
gx_api/GxPress/Model/GxPress.Result/Teacher/TeacherResult.cs

@@ -32,5 +32,15 @@ namespace GxPress.Result.Teacher
         /// </summary>
 
         public string ImageUrl { get; set; }
+        /// <summary>
+        /// 收藏数量
+        /// </summary>
+        /// <value></value>
+        public int CollectCount { get; set; }
+        /// <summary>
+        /// 是否收藏
+        /// </summary>
+        /// <value></value>
+        public bool IsCollect { get; set; }
     }
 }

+ 1 - 1
gx_api/GxPress/Repository/GxPress.Repository.Implement/ArticleGroupRepository.cs

@@ -81,7 +81,7 @@ namespace GxPress.Repository.Implement
         }
         public async Task<IEnumerable<ArticleGroup>> GetListAsync(int userId)
         {
-            string sql = $@"select * from tede_article_group where Id not in(SELECT ArticleGroupId FROM tede_article_group_user where UserId={userId})";
+            string sql = $@"select * from tede_article_group where Id  in(SELECT ArticleGroupId FROM tede_article_group_user where UserId={userId}) or IsSystemDefault=1";
             var databaseType = StringUtils.ToEnum<DatabaseType>(_databaseTypeStr, DatabaseType.MySql);
             var database = new Database(databaseType, _connectionString);
             var connection = database.GetConnection();

+ 21 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/Teacher/TeacherRepository.cs

@@ -84,6 +84,7 @@ namespace GxPress.Repository.Implement.Teacher
             query.Select(nameof(Entity.tede2.Teacher.Teacher.Name));
             query.Select(nameof(Entity.tede2.Teacher.Teacher.Summary));
             query.Select(nameof(Entity.tede2.Teacher.Teacher.ImageUrl));
+            query.Select(nameof(Entity.tede2.Teacher.Teacher.CollectCount));
             query.OrderByDesc(nameof(Entity.tede2.Teacher.Teacher.Sort));
             var result = await _repository.GetAllAsync<TeacherResult>(query);
             foreach (var item in result)
@@ -92,5 +93,25 @@ namespace GxPress.Repository.Implement.Teacher
             }
             return result;
         }
+
+        public async Task<PagedList<TeacherResult>> GetTeacherResult(TeacherRequest request)
+        {
+            var result = new PagedList<TeacherResult>();
+            var query = Q.NewQuery();
+            query.Select(nameof(Entity.tede2.Teacher.Teacher.Id));
+            query.Select(nameof(Entity.tede2.Teacher.Teacher.Name));
+            query.Select(nameof(Entity.tede2.Teacher.Teacher.Summary));
+            query.Select(nameof(Entity.tede2.Teacher.Teacher.ImageUrl));
+            query.Select(nameof(Entity.tede2.Teacher.Teacher.CollectCount));
+            result.Total = await _repository.CountAsync(query);
+            query.OrderByDesc(nameof(Entity.tede2.Teacher.Teacher.Sort));
+            query.ForPage(request.PerPage, request.PerPage);
+            result.Items = await _repository.GetAllAsync<TeacherResult>(query);
+            foreach (var item in result.Items)
+            {
+                item.ImageUrl = StringUtils.AddDomain(item.ImageUrl);
+            }
+            return result;
+        }
     }
 }

+ 1 - 0
gx_api/GxPress/Repository/GxPress.Repository.Interface/Teacher/ITeacherRepository.cs

@@ -19,5 +19,6 @@ namespace GxPress.Repository.Interface.Teacher
         Task<IEnumerable<Entity.tede2.Teacher.Teacher>> GetSearchAllAsync(TeacherRequest request);
 
         Task<IEnumerable<TeacherResult>> GetTeacherResult();
+        Task<PagedList<TeacherResult>> GetTeacherResult(TeacherRequest request);
     }
 }

+ 17 - 1
gx_api/GxPress/Service/GxPress.Service.Implement/AppHomePage/AppHomePageService.cs

@@ -14,6 +14,9 @@ using System.Linq;
 using GxPress.Common.Tools;
 using GxPress.Common.Page;
 using GxPress.Request.Media;
+using GxPress.Repository.Interface.Teacher;
+using GxPress.Request.TeacherRequest;
+using GxPress.Result.Teacher;
 
 namespace GxPress.Service.Implement.AppHomePage
 {
@@ -26,7 +29,8 @@ namespace GxPress.Service.Implement.AppHomePage
         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)
+        private readonly ITeacherRepository teacherRepository;
+        public AppHomePageService(IArticleGroupRepository articleGroupRepository, IMediaRepository mediaRepository, IMiddleLableRepository _middleLableRepository, ISystemLabelRepository _systemLabelRepository, IMiddleLableNexusRepository middleLableNexusRepository, IMediaLableRepository _mediaLableRepository, IMapper _mapper, ITeacherRepository teacherRepository)
         {
             this.articleGroupRepository = articleGroupRepository;
             this.mediaRepository = mediaRepository;
@@ -35,6 +39,7 @@ namespace GxPress.Service.Implement.AppHomePage
             this.middleLableNexusRepository = middleLableNexusRepository;
             this._mediaLableRepository = _mediaLableRepository;
             this._mapper = _mapper;
+            this.teacherRepository = teacherRepository;
         }
         /// <summary>
         /// 大咖讲座
@@ -177,5 +182,16 @@ namespace GxPress.Service.Implement.AppHomePage
             request.Ids = ids.ToList();
             return await mediaRepository.GetMediaByLableIdsAsync(request);
         }
+        /// <summary>
+        /// 名师
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        public async Task<PagedList<TeacherResult>> GetTeacherAsync(TeacherRequest request)
+        {
+
+            var teachers = await teacherRepository.GetTeacherResult(request);
+            return teachers;
+        }
     }
 }

+ 8 - 1
gx_api/GxPress/Service/GxPress.Service.Interface/AppHomePage/IAppHomePageService.cs

@@ -3,8 +3,10 @@ using System.Threading.Tasks;
 using GxPress.Common.Page;
 using GxPress.Request.ArticleGroup;
 using GxPress.Request.Media;
+using GxPress.Request.TeacherRequest;
 using GxPress.Result.Media;
 using GxPress.Result.SystemLabel;
+using GxPress.Result.Teacher;
 
 namespace GxPress.Service.Interface.AppHomePage
 {
@@ -31,6 +33,11 @@ namespace GxPress.Service.Interface.AppHomePage
         /// 根据IDs
         /// </summary>
         /// <returns></returns>
-       Task<PagedList<MediaCathedraResult>> GetMediaByLableIdsAsync(MediaIdsRequest request);
+        Task<PagedList<MediaCathedraResult>> GetMediaByLableIdsAsync(MediaIdsRequest request);
+        /// 名师
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        Task<PagedList<TeacherResult>> GetTeacherAsync(TeacherRequest request);
     }
 }