李昊 4 years ago
parent
commit
1f106bd9a5

+ 6 - 0
gx_api/GxPress/Model/GxPress.Result/Media/BookMediaResult.cs

@@ -107,6 +107,7 @@ namespace GxPress.Result.Media
         /// 收藏次数
         /// 收藏次数
         /// </summary>
         /// </summary>
         public int CollectCount { get; set; }
         public int CollectCount { get; set; }
+
         /// <summary>
         /// <summary>
         /// 转发数量
         /// 转发数量
         /// </summary>
         /// </summary>
@@ -133,6 +134,11 @@ namespace GxPress.Result.Media
         /// </summary>
         /// </summary>
         /// <value></value>
         /// <value></value>
         public bool IsBuy { get; set; }
         public bool IsBuy { get; set; }
+        /// <summary>
+        /// 是否收藏
+        /// </summary>
+        /// <value></value>
+        public bool IsCollect { get; set; }
     }
     }
 
 
     /// <summary>
     /// <summary>

+ 12 - 1
gx_api/GxPress/Service/GxPress.Service.Implement/Collection/CollectionService.cs

@@ -23,6 +23,7 @@ using GxPress.Service.Interface.Article;
 using GxPress.Service.Interface.Collection;
 using GxPress.Service.Interface.Collection;
 using GxPress.Service.Interface.Middle;
 using GxPress.Service.Interface.Middle;
 using GxPress.Service.Interface.UserMiddle;
 using GxPress.Service.Interface.UserMiddle;
+using GxPress.Repository.Interface.Media;
 using Newtonsoft.Json;
 using Newtonsoft.Json;
 
 
 namespace GxPress.Service.Implement.Collection
 namespace GxPress.Service.Implement.Collection
@@ -46,11 +47,12 @@ namespace GxPress.Service.Implement.Collection
         private readonly IAnalyzeService _analyzeService;
         private readonly IAnalyzeService _analyzeService;
         private readonly IFileLibraryRepository fileLibraryRepository;
         private readonly IFileLibraryRepository fileLibraryRepository;
         private readonly IUserMiddleService _userMiddleService;
         private readonly IUserMiddleService _userMiddleService;
+        private readonly IMediaRepository mediaRepository;
         public CollectionService(ICollectionRepository collectionRepository, IMiddleService middleService,
         public CollectionService(ICollectionRepository collectionRepository, IMiddleService middleService,
             IArticleRepository articleRepository, ITopicRepository topicRepository, IMiddleRepository middleRepository,
             IArticleRepository articleRepository, ITopicRepository topicRepository, IMiddleRepository middleRepository,
             INoteRepository noteRepository, IUserRepository userRepository, IArticleService articleService, INoticeRepository noticeRepository,
             INoteRepository noteRepository, IUserRepository userRepository, IArticleService articleService, INoticeRepository noticeRepository,
             IMissiveRepository missiveRepository, IMapper mapper,
             IMissiveRepository missiveRepository, IMapper mapper,
-            IGroupRepository groupRepository, IMeetingSummaryRepository meetingSummaryRepository, IFolderUserRepository folderUserRepository, IAnalyzeService analyzeService, IFileLibraryRepository fileLibraryRepository, IUserMiddleService userMiddleService)
+            IGroupRepository groupRepository, IMeetingSummaryRepository meetingSummaryRepository, IFolderUserRepository folderUserRepository, IAnalyzeService analyzeService, IFileLibraryRepository fileLibraryRepository, IUserMiddleService userMiddleService, IMediaRepository mediaRepository)
         {
         {
             _collectionRepository = collectionRepository;
             _collectionRepository = collectionRepository;
             _middleService = middleService;
             _middleService = middleService;
@@ -69,6 +71,7 @@ namespace GxPress.Service.Implement.Collection
             _analyzeService = analyzeService;
             _analyzeService = analyzeService;
             this.fileLibraryRepository = fileLibraryRepository;
             this.fileLibraryRepository = fileLibraryRepository;
             _userMiddleService = userMiddleService;
             _userMiddleService = userMiddleService;
+            this.mediaRepository = mediaRepository;
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -112,6 +115,14 @@ namespace GxPress.Service.Implement.Collection
                     await _analyzeService.DeleteAsync(analyze.Id);
                     await _analyzeService.DeleteAsync(analyze.Id);
                 return true;
                 return true;
             }
             }
+            //收藏媒体
+            if (request.CollectionType == AllTypeConst.Book.GetHashCode() || request.CollectionType == AllTypeConst.Curriculum.GetHashCode() || request.CollectionType == AllTypeConst.Audio.GetHashCode() || request.CollectionType == AllTypeConst.Video.GetHashCode())
+            {
+                var media = await mediaRepository.GetAsync(request.CollectionDataId);
+                collection.Title = media.Title;
+                analyzeRequest.TypeValue = request.CollectionType;
+                await _analyzeService.SetAnalyzeAsync(analyzeRequest);
+            }
             //收藏文章
             //收藏文章
             if (request.CollectionType == AllTypeConst.Article.GetHashCode())
             if (request.CollectionType == AllTypeConst.Article.GetHashCode())
             {
             {

+ 9 - 1
gx_api/GxPress/Service/GxPress.Service.Implement/Media/MediaService.cs

@@ -13,6 +13,9 @@ using GxPress.Repository.Interface;
 using GxPress.Repository.Interface.Order;
 using GxPress.Repository.Interface.Order;
 using GxPress.Repository.Interface.Attach;
 using GxPress.Repository.Interface.Attach;
 using GxPress.Repository.Interface.SystemLabel;
 using GxPress.Repository.Interface.SystemLabel;
+using GxPress.Repository.Interface.Analyze;
+using Datory;
+
 namespace GxPress.Service.Implement.Media
 namespace GxPress.Service.Implement.Media
 {
 {
     public partial class MediaService : IMediaService
     public partial class MediaService : IMediaService
@@ -27,7 +30,8 @@ namespace GxPress.Service.Implement.Media
         private readonly IAttachRepository attachRepository;
         private readonly IAttachRepository attachRepository;
         private readonly ISystemLabelRepository systemLabelRepository;
         private readonly ISystemLabelRepository systemLabelRepository;
         private readonly ISystemLableMediaRepository systemLableMediaRepository;
         private readonly ISystemLableMediaRepository systemLableMediaRepository;
-        public MediaService(ICategoryRepository categoryRepository, IMediaRepository mediaRepository, IMapper _mapper, IEpubService epubService, IMediaLibraryRepository mediaLibraryRepository, IUserRepository userRepository, IOrderRepository orderRepository, IAttachRepository attachRepository, ISystemLabelRepository systemLabelRepository, ISystemLableMediaRepository systemLableMediaRepository)
+        private readonly IAnalyzeRepository analyzeRepository;
+        public MediaService(ICategoryRepository categoryRepository, IMediaRepository mediaRepository, IMapper _mapper, IEpubService epubService, IMediaLibraryRepository mediaLibraryRepository, IUserRepository userRepository, IOrderRepository orderRepository, IAttachRepository attachRepository, ISystemLabelRepository systemLabelRepository, ISystemLableMediaRepository systemLableMediaRepository, IAnalyzeRepository analyzeRepository)
         {
         {
             this.categoryRepository = categoryRepository;
             this.categoryRepository = categoryRepository;
             this.mediaRepository = mediaRepository;
             this.mediaRepository = mediaRepository;
@@ -39,6 +43,7 @@ namespace GxPress.Service.Implement.Media
             this.attachRepository = attachRepository;
             this.attachRepository = attachRepository;
             this.systemLabelRepository = systemLabelRepository;
             this.systemLabelRepository = systemLabelRepository;
             this.systemLableMediaRepository = systemLableMediaRepository;
             this.systemLableMediaRepository = systemLableMediaRepository;
+            this.analyzeRepository = analyzeRepository;
         }
         }
         public async Task<bool> InsertAsync(MediaResult result)
         public async Task<bool> InsertAsync(MediaResult result)
         {
         {
@@ -90,6 +95,7 @@ namespace GxPress.Service.Implement.Media
             var mediaLibrary = await mediaLibraryRepository.GetTaskAsync(id);
             var mediaLibrary = await mediaLibraryRepository.GetTaskAsync(id);
             if (!mediaLibrary.FileUrl.Contains("epub"))
             if (!mediaLibrary.FileUrl.Contains("epub"))
                 throw new Common.Exceptions.BusinessException("书籍不存在epub文件");
                 throw new Common.Exceptions.BusinessException("书籍不存在epub文件");
+
             //书籍
             //书籍
             //获取media
             //获取media
             var media = await mediaRepository.GetAsync(id);
             var media = await mediaRepository.GetAsync(id);
@@ -133,6 +139,8 @@ namespace GxPress.Service.Implement.Media
                         bookCatalogResult.IsRead = true;
                         bookCatalogResult.IsRead = true;
                 }
                 }
             }
             }
+            //是否收藏
+            result.IsCollect = await analyzeRepository.ExistsAsync(Q.Where(nameof(Entity.Analyze.Analyze.TypeValue), GxPress.EnumConst.AllTypeConst.Book.GetHashCode()).Where(nameof(Entity.Analyze.Analyze.AnalyzeType), 3).Where(nameof(Entity.Analyze.Analyze.SourceId), id).Where(nameof(Entity.Analyze.Analyze.UserId), userId));
             //计算免费占比
             //计算免费占比
             return result;
             return result;
         }
         }

+ 4 - 0
gx_api/GxPress/Service/GxPress.Service.Implement/Middle/MiddleService.cs

@@ -295,6 +295,10 @@ namespace GxPress.Service.Implement.Middle
             try
             try
             {
             {
                 using TransactionScope transactionScope = new TransactionScope();
                 using TransactionScope transactionScope = new TransactionScope();
+                var middleIds = new List<int>();
+                //获取
+                await _middleRepository.GetAllMiddleChildrenByParentIdAsync(request.MiddleIds, middleIds);
+                request.MiddleIds = middleIds;
                 //查询middle
                 //查询middle
                 var middles = await _middleRepository.FindAsync(Q.WhereIn(nameof(Entity.Middle.Middle.Id), request.MiddleIds));
                 var middles = await _middleRepository.FindAsync(Q.WhereIn(nameof(Entity.Middle.Middle.Id), request.MiddleIds));
                 var ids = middles.Select(n => n.MiddleId).ToList();
                 var ids = middles.Select(n => n.MiddleId).ToList();