Browse Source

数据迁移接口 教培

denny 1 year ago
parent
commit
7e0b3e777c

+ 37 - 0
Tools/Flyinsono.DBCopy.Tool/Entities/CourseAvailabilityExtensions.cs

@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Flyinsono.DBCopy.Tool.Entities
+{
+    internal class CourseAvailabilityExtensions
+    {
+        /// <summary>
+        /// 课程id
+        /// </summary>
+        public string Id { get; set; }
+        /// <summary>
+        /// 权限
+        /// </summary>
+        public CourseAvailability Availability { get; set; }
+        /// <summary>
+        /// 赋权用户
+        /// </summary>
+        public List<string> AuthorizedUserIds { get; set; }
+        /// <summary>
+        /// 赋权用户组
+        /// </summary>
+        public List<string> AuthorizedGroupIds { get; set; }
+    }
+
+    public enum CourseAvailability
+    {
+        Public = 0,//公开,所有人可见
+        Limited,//限定,指定可见
+        Fee,//收费
+        Invitation,//公开,需要邀请码验证
+        Meeting//公开,小班化培训
+    }
+}

+ 25 - 0
Tools/Flyinsono.DBCopy.Tool/Service/MigrateService.Course.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Flyinsono.DBCopy.Tool.Service
+{
+    internal partial class MigrateService
+    {
+        /// <summary>
+        /// 直播课
+        /// </summary>
+        public async void MigrateLiveCourseDatas()
+        { 
+        
+        }
+
+        /// <summary>
+        /// 录播课
+        /// </summary>
+        public async void MigrateVideoCourseDatas()
+        { }
+    }
+}

+ 22 - 0
Tools/Flyinsono.DBCopy.Tool/Service/Repositories/CoursesDBRepository.cs

@@ -18,6 +18,28 @@ namespace Flyinsono.DBCopy.Tool.Service.Repositories
             return entities;
         }
 
+        /// <summary>
+        /// 课程开放类型列表
+        /// </summary>
+        /// <param name="filter"></param>
+        /// <returns></returns>
+        public IList<CourseAvailabilityExtensions> GetCourseAvailabilityExtensions(FilterDefinition<CourseAvailabilityExtensions> filter)
+        {
+            var entities = LargerQuery(MongoDbClientSingle.Instance.CourseAvailabilityExtensions, filter)?.ToList() ?? new List<CourseAvailabilityExtensions>();
+            return entities;
+        }
+
+        /// <summary>
+        /// 课程学生列表
+        /// </summary>
+        /// <param name="filter"></param>
+        /// <returns></returns>
+        public IList<CourseStudents> GetCourseStudents(FilterDefinition<CourseStudents> filter)
+        {
+            var entities = LargerQuery(MongoDbClientSingle.Instance.CourseStudents, filter)?.ToList() ?? new List<CourseStudents>();
+            return entities;
+        }
+
         public IList<Courses> GetCourseByCodes(IList<string> courseIds)
         {
             var builder = Builders<Courses>.Filter;

+ 12 - 1
Tools/Flyinsono.DBCopy.Tool/Service/Repositories/UltrasonicClassDBRepository.cs

@@ -11,7 +11,7 @@ using WingServerCommon.Mapper;
 
 namespace Flyinsono.DBCopy.Tool.Service.Repositories
 {
-    internal class UltrasonicClassDBRepository
+    internal class UltrasonicClassDBRepository : BaseDBRepository
     {
         public IList<UltrasonicClass> GetUltrasonicClassByCodes(IList<string> classIds)
         {
@@ -20,5 +20,16 @@ namespace Flyinsono.DBCopy.Tool.Service.Repositories
             var entities = MongoDbClientSingle.Instance.UltrasonicClasses.Find(filter)?.ToList() ?? new List<UltrasonicClass>();
             return entities;
         }
+
+        /// <summary>
+        /// 分页查询
+        /// </summary>
+        /// <param name="filter"></param>
+        /// <returns></returns>
+        public IList<UltrasonicClass> GetUserRecords(FilterDefinition<UltrasonicClass> filter)
+        {
+            var entities = LargerQuery(MongoDbClientSingle.Instance.UltrasonicClasses, filter)?.ToList() ?? new List<UltrasonicClass>();
+            return entities;
+        }
     }
 }

+ 12 - 1
Tools/Flyinsono.DBCopy.Tool/Service/Repositories/UserGroupDBRepository.cs

@@ -11,7 +11,7 @@ using WingServerCommon.Mapper;
 
 namespace Flyinsono.DBCopy.Tool.Service.Repositories
 {
-    internal class UserGroupDBRepository
+    internal class UserGroupDBRepository : BaseDBRepository
     {
         public IList<UserGroup> GetUserGroupByCodes(IList<string> userGroupCodes)
         {
@@ -20,5 +20,16 @@ namespace Flyinsono.DBCopy.Tool.Service.Repositories
             var entities = MongoDbClientSingle.Instance.UserGroups.Find(filter)?.ToList() ?? new List<UserGroup>();
             return entities;
         }
+
+        /// <summary>
+        /// 分页查询
+        /// </summary>
+        /// <param name="filter"></param>
+        /// <returns></returns>
+        public IList<UserGroup> GetUserRecords(FilterDefinition<UserGroup> filter)
+        {
+            var entities = LargerQuery(MongoDbClientSingle.Instance.UserGroups, filter)?.ToList() ?? new List<UserGroup>();
+            return entities;
+        }
     }
 }

+ 26 - 0
Tools/Flyinsono.DBCopy.Tool/Service/Repositories/VideoDBRepository.cs

@@ -18,5 +18,31 @@ namespace Flyinsono.DBCopy.Tool.Service.Repositories
             var entities = LargerQuery(MongoDbClientSingle.Instance.Videos, filter)?.ToList() ?? new List<Video>();
             return entities;
         }
+
+        /// <summary>
+        /// 查询所有一级标签
+        /// </summary>
+        /// <param name="filter"></param>
+        /// <returns></returns>
+        public IList<VideoCategories> GetAllViedoFirstLabels()
+        {
+            var builder = Builders<VideoCategories>.Filter;
+            var filter = builder.Where(x => !string.IsNullOrEmpty(x.Id));
+            var entities = MongoDbClientSingle.Instance.VideoCategories.Find(filter)?.ToList() ?? new List<VideoCategories>();
+            return entities;
+        }
+
+        /// <summary>
+        /// 查询所有二级标签
+        /// </summary>
+        /// <param name="filter"></param>
+        /// <returns></returns>
+        public IList<VideoSecoundCategories> GetAllViedoSecondLabels()
+        {
+            var builder = Builders<VideoSecoundCategories>.Filter;
+            var filter = builder.Where(x => !string.IsNullOrEmpty(x.Id));
+            var entities = MongoDbClientSingle.Instance.VideoSecoundCategories.Find(filter)?.ToList() ?? new List<VideoSecoundCategories>();
+            return entities;
+        }
     }
 }

+ 6 - 0
Tools/Flyinsono.DBCopy.Tool/Utilities/MongoDbClient.cs

@@ -205,6 +205,9 @@ namespace Flyinsono.DBCopy.Tool.Utilities
         public IMongoCollection<UserGroup> UserGroups { get; private set; }
         public IMongoCollection<UltrasonicClass> UltrasonicClasses { get; private set; }
         public IMongoCollection<ReportTemplates> ReportTemplates { get; private set; }
+        public IMongoCollection<CourseAvailabilityExtensions> CourseAvailabilityExtensions { get; private set; }
+        public IMongoCollection<VideoCategories> VideoCategories { get; private set; }
+        public IMongoCollection<VideoSecoundCategories> VideoSecoundCategories { get; private set; }
         private void RegisterEntities()
         {
             Admins = GetCollection<Admins>("Admins");
@@ -256,6 +259,9 @@ namespace Flyinsono.DBCopy.Tool.Utilities
             UserGroups = GetCollection<UserGroup>("UserGroups");
             UltrasonicClasses = GetCollection<UltrasonicClass>("UltrasonicClasses");
             ReportTemplates = GetCollection<ReportTemplates>("ReportTemplates");
+            CourseAvailabilityExtensions = GetCollection<CourseAvailabilityExtensions>("CourseAvailabilityExtensions");
+            VideoCategories = GetCollection<VideoCategories>("VideoCategories");
+            VideoSecoundCategories = GetCollection<VideoSecoundCategories>("VideoSecoundCategories");
         }