瀏覽代碼

修改课程管理、知识点、资源引用相关接口cosmosdb数据库接口改为IAzureCosmosDBV3Repository,相关类继承ID

李思淳 5 年之前
父節點
當前提交
6d60d4363a

+ 2 - 2
TEAMModelOS.SDK/Module/AzureCosmosDBV3/AzureCosmosDBV3Repository.cs

@@ -257,7 +257,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
             return response.Resource;
             return response.Resource;
         }
         }
 
 
-        public async Task<T> DeleteAsync<T>(T entity, string pk) where T : ID
+        public async Task<T> DeleteAsync<T>(T entity) where T : ID
         {
         {
             Container container = await InitializeCollection<T>();
             Container container = await InitializeCollection<T>();
             string partitionKey = GetPartitionKey<T>();
             string partitionKey = GetPartitionKey<T>();
@@ -373,7 +373,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
         {
         {
 
 
             StringBuilder sql = new StringBuilder("select value(c) from c");
             StringBuilder sql = new StringBuilder("select value(c) from c");
-            SQLHelper.GetSQL(dict, ref sql);
+            SQLHelperParametric.GetSQL(dict,sql);
             CosmosDbQuery cosmosDbQuery = new CosmosDbQuery
             CosmosDbQuery cosmosDbQuery = new CosmosDbQuery
             {
             {
                 QueryText = sql.ToString()
                 QueryText = sql.ToString()

+ 1 - 1
TEAMModelOS.SDK/Module/AzureCosmosDBV3/IAzureCosmosDBV3Repository.cs

@@ -11,7 +11,7 @@ namespace TEAMModelOS.SDK.Module.AzureCosmosDBV3
 
 
         Task<T> Save<T>(T entity) where T : ID;
         Task<T> Save<T>(T entity) where T : ID;
         Task<List<T>> SaveAll<T>(List<T> enyites) where T : ID;
         Task<List<T>> SaveAll<T>(List<T> enyites) where T : ID;
-        Task<T> DeleteAsync<T>(T entity, string pk) where T : ID;
+        Task<T> DeleteAsync<T>(T entity) where T : ID;
         Task<T> DeleteAsync<T>(string id, string pk) where T : ID;
         Task<T> DeleteAsync<T>(string id, string pk) where T : ID;
         Task DeleteAll<T>(List<T> entities) where T : ID;
         Task DeleteAll<T>(List<T> entities) where T : ID;
         Task DeleteAll<T>(List<KeyValuePair<string, string>> ids) where T : ID;
         Task DeleteAll<T>(List<KeyValuePair<string, string>> ids) where T : ID;

+ 3 - 2
TEAMModelOS.Service/Models/Courses/Course.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using System.ComponentModel.DataAnnotations;
 using System.Text;
 using System.Text;
 using TEAMModelOS.SDK.Context.Attributes.Azure;
 using TEAMModelOS.SDK.Context.Attributes.Azure;
+using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
 using TEAMModelOS.Service.Models.Core;
 using TEAMModelOS.Service.Models.Core;
 using TEAMModelOS.Service.Models.Syllabus;
 using TEAMModelOS.Service.Models.Syllabus;
 
 
@@ -12,7 +13,7 @@ namespace TEAMModelOS.Service.Models.Courses
     /// 课程
     /// 课程
     /// </summary>
     /// </summary>
     [CosmosDB(RU = 400, Name = "Course")]
     [CosmosDB(RU = 400, Name = "Course")]
-    public class Course
+    public class Course : ID
     {
     {
         /// <summary>
         /// <summary>
         /// 学校编码 如果是教师私人知识点 则为 personal(写死) 否则为学校编码 
         /// 学校编码 如果是教师私人知识点 则为 personal(写死) 否则为学校编码 
@@ -82,7 +83,7 @@ namespace TEAMModelOS.Service.Models.Courses
     /// </summary>
     /// </summary>
     public class CourseTime
     public class CourseTime
     {
     {
-    
+
         /// <summary>
         /// <summary>
         /// 上课频率 每日、每周、每月、临时课程
         /// 上课频率 每日、每周、每月、临时课程
         /// </summary>
         /// </summary>

+ 3 - 2
TEAMModelOS.Service/Models/Syllabus/Knowledge.cs

@@ -5,12 +5,13 @@ using System.ComponentModel.DataAnnotations;
 using System.Text;
 using System.Text;
 using System.Text.Json.Serialization;
 using System.Text.Json.Serialization;
 using TEAMModelOS.SDK.Context.Attributes.Azure;
 using TEAMModelOS.SDK.Context.Attributes.Azure;
+using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
 
 
 namespace TEAMModelOS.Service.Models.Syllabus
 namespace TEAMModelOS.Service.Models.Syllabus
 {
 {
     [CosmosDB(RU = 400, Name = "Knowledge")]
     [CosmosDB(RU = 400, Name = "Knowledge")]
-    public class Knowledge
-   {
+    public class Knowledge: ID
+    {
         public string id { get; set; }
         public string id { get; set; }
         /// <summary>
         /// <summary>
         /// 标记为知识块,0=知识块 ,1 知识点
         /// 标记为知识块,0=知识块 ,1 知识点

+ 3 - 2
TEAMModelOS.Service/Models/Syllabus/SyllabusResource.cs

@@ -5,12 +5,13 @@ using System.ComponentModel.DataAnnotations;
 using System.Text;
 using System.Text;
 using System.Text.Json.Serialization;
 using System.Text.Json.Serialization;
 using TEAMModelOS.SDK.Context.Attributes.Azure;
 using TEAMModelOS.SDK.Context.Attributes.Azure;
+using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
 
 
 namespace TEAMModelOS.Service.Models.Syllabus
 namespace TEAMModelOS.Service.Models.Syllabus
 {
 {
     [CosmosDB(RU = 400, Name = "SyllabusResource")]
     [CosmosDB(RU = 400, Name = "SyllabusResource")]
-    public class SyllabusResource
-   {
+    public class SyllabusResource : ID
+    {
 
 
         public string id { get; set; }
         public string id { get; set; }
 
 

+ 6 - 4
TEAMModelOS/Controllers/Courses/CourseController.cs

@@ -8,6 +8,7 @@ using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
 using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
 using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
 using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
 using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
+using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
 using TEAMModelOS.Service.Models.Courses;
 using TEAMModelOS.Service.Models.Courses;
 
 
 namespace TEAMModelOS.Controllers.Courses
 namespace TEAMModelOS.Controllers.Courses
@@ -16,9 +17,9 @@ namespace TEAMModelOS.Controllers.Courses
     [ApiController]
     [ApiController]
     public class CourseController : BaseController
     public class CourseController : BaseController
     {
     {
-        private IAzureCosmosDBRepository _cosmos;
+        private IAzureCosmosDBV3Repository _cosmos;
 
 
-        public CourseController(IAzureCosmosDBRepository cosmos)
+        public CourseController(IAzureCosmosDBV3Repository cosmos)
         {
         {
             _cosmos = cosmos;
             _cosmos = cosmos;
         }
         }
@@ -53,11 +54,12 @@ namespace TEAMModelOS.Controllers.Courses
 
 
    
    
         [HttpPost("DeleteCourse")]
         [HttpPost("DeleteCourse")]
-        public async Task<BaseJosnRPCResponse> DeleteCourse (JosnRPCRequest<Dictionary<string, object>> request)
+        public async Task<BaseJosnRPCResponse> DeleteCourse (JosnRPCRequest<Dictionary<string, object>> request) 
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             Dictionary<string, object> dict = request.@params;
             Dictionary<string, object> dict = request.@params;
-            List<Course> Course = await _cosmos.DeleteAll<Course>(dict);
+            List<Course> Course = await _cosmos.FindByDict<Course>(dict);
+            await _cosmos.DeleteAll<Course>(Course);
             if (Course.Count > 0)
             if (Course.Count > 0)
             {
             {
                 builder.Data("删除成功");
                 builder.Data("删除成功");

+ 9 - 11
TEAMModelOS/Controllers/Syllabus/KnowledgeController.cs

@@ -2,18 +2,16 @@
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
-using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using TEAMModelOS.Models;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
 using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
 using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
 using TEAMModelOS.SDK.Helper.Common.JsonHelper;
 using TEAMModelOS.SDK.Helper.Common.JsonHelper;
-using TEAMModelOS.SDK.Helper.Common.LogHelper;
 using TEAMModelOS.SDK.Helper.Security.ShaHash;
 using TEAMModelOS.SDK.Helper.Security.ShaHash;
 using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
 using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
+using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
 using TEAMModelOS.SDK.Module.AzureTable.Interfaces;
 using TEAMModelOS.SDK.Module.AzureTable.Interfaces;
-using TEAMModelOS.Service.Models.Core;
 using TEAMModelOS.Service.Models.Syllabus;
 using TEAMModelOS.Service.Models.Syllabus;
 
 
 namespace TEAMModelOS.Controllers.Syllabus
 namespace TEAMModelOS.Controllers.Syllabus
@@ -24,9 +22,9 @@ namespace TEAMModelOS.Controllers.Syllabus
     public class KnowledgeController : BaseController
     public class KnowledgeController : BaseController
     {
     {
         private IAzureTableDBRepository _table;
         private IAzureTableDBRepository _table;
-        private IAzureCosmosDBRepository _cosmos;
+        private IAzureCosmosDBV3Repository _cosmos;
 
 
-        public KnowledgeController(IAzureTableDBRepository table, IAzureCosmosDBRepository cosmos)
+        public KnowledgeController(IAzureTableDBRepository table, IAzureCosmosDBV3Repository cosmos)
         {
         {
             _table = table;
             _table = table;
             _cosmos = cosmos;
             _cosmos = cosmos;
@@ -38,7 +36,7 @@ namespace TEAMModelOS.Controllers.Syllabus
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <param name="builder"></param>
         /// <param name="builder"></param>
         /// <returns></returns>
         /// <returns></returns>
-        delegate Task<List<T>> DeleteDelegate<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder);
+        delegate Task<List<T>> DeleteDelegate<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder) where T : ID;
 
 
         /// <summary>
         /// <summary>
         /// 保存或者更新学校 知识点 或者 知识块 代理
         /// 保存或者更新学校 知识点 或者 知识块 代理
@@ -295,8 +293,8 @@ namespace TEAMModelOS.Controllers.Syllabus
             List<Knowledge> Knowledges = await deleteDelegate1(request, builder);
             List<Knowledge> Knowledges = await deleteDelegate1(request, builder);
             foreach (Knowledge Knowledge in Knowledges) {
             foreach (Knowledge Knowledge in Knowledges) {
                 if (Knowledge.type == 1) {
                 if (Knowledge.type == 1) {
-                    List<Knowledge> knowledges = await  _cosmos.FindSQL<Knowledge>("SELECT value(c) FROM c join a in c.points where Contains(a, '"+ Knowledge.id + "') = true ",true);
-                    List<SyllabusResource> Resources = await _cosmos.FindSQL<SyllabusResource>("SELECT value(c) FROM c join a in c.points where Contains(a, '" + Knowledge.id + "') = true ", true);
+                    List<Knowledge> knowledges = await  _cosmos.FindSQL<Knowledge>("SELECT value(c) FROM c join a in c.points where Contains(a, '"+ Knowledge.id + "') = true ");
+                    List<SyllabusResource> Resources = await _cosmos.FindSQL<SyllabusResource>("SELECT value(c) FROM c join a in c.points where Contains(a, '" + Knowledge.id + "') = true ");
                     foreach (Knowledge knowledge in knowledges) knowledge.points.Remove(Knowledge.id);
                     foreach (Knowledge knowledge in knowledges) knowledge.points.Remove(Knowledge.id);
                     foreach (SyllabusResource Resource in Resources) Resource.points.Remove(Knowledge.id);
                     foreach (SyllabusResource Resource in Resources) Resource.points.Remove(Knowledge.id);
                     await _cosmos.SaveAll(Resources);
                     await _cosmos.SaveAll(Resources);
@@ -313,16 +311,16 @@ namespace TEAMModelOS.Controllers.Syllabus
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
       
       
-            List<Knowledge> knowledges = await _cosmos.FindByDict<Knowledge>(request.@params, true);
+            List<Knowledge> knowledges = await _cosmos.FindByDict<Knowledge>(request.@params);
 
 
             builder.Data(knowledges);
             builder.Data(knowledges);
             return builder.build();
             return builder.build();
         }
         }
 
 
 
 
-        private async Task<List<T>> Delete<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder)
+        private async Task<List<T>> Delete<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder) where T : ID
         {
         {
-            List<T> schoolBlocks = await _cosmos.FindByDict<T>(request.@params,true);
+            List<T> schoolBlocks = await _cosmos.FindByDict<T>(request.@params);
             Type t = typeof(T);
             Type t = typeof(T);
             List<T> list = new List<T>();
             List<T> list = new List<T>();
             if (schoolBlocks.IsNotEmpty())
             if (schoolBlocks.IsNotEmpty())

+ 6 - 31
TEAMModelOS/Controllers/Syllabus/ResourceController.cs

@@ -6,10 +6,8 @@ using System.Threading.Tasks;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
 using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
 using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
-using TEAMModelOS.SDK.Helper.Common.JsonHelper;
-using TEAMModelOS.SDK.Helper.Common.LogHelper;
 using TEAMModelOS.SDK.Module.AzureBlob.Interfaces;
 using TEAMModelOS.SDK.Module.AzureBlob.Interfaces;
-using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
+using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
 using TEAMModelOS.SDK.Module.AzureTable.Interfaces;
 using TEAMModelOS.SDK.Module.AzureTable.Interfaces;
 using TEAMModelOS.Service.Models.Core;
 using TEAMModelOS.Service.Models.Core;
 using TEAMModelOS.Service.Models.Syllabus;
 using TEAMModelOS.Service.Models.Syllabus;
@@ -21,10 +19,10 @@ namespace TEAMModelOS.Controllers.Syllabus
     public class ResourceController : BaseController
     public class ResourceController : BaseController
     {
     {
         private IAzureTableDBRepository _table;
         private IAzureTableDBRepository _table;
-        private IAzureCosmosDBRepository _cosmos;
+        private IAzureCosmosDBV3Repository _cosmos;
         private readonly IAzureBlobDBRepository _azureBlobDBRepository;
         private readonly IAzureBlobDBRepository _azureBlobDBRepository;
 
 
-        public ResourceController(IAzureTableDBRepository table, IAzureCosmosDBRepository cosmos, IAzureBlobDBRepository azureBlobDBRepository)
+        public ResourceController(IAzureTableDBRepository table, IAzureCosmosDBV3Repository cosmos, IAzureBlobDBRepository azureBlobDBRepository)
         {
         {
             _table = table;
             _table = table;
             _cosmos = cosmos;
             _cosmos = cosmos;
@@ -35,14 +33,6 @@ namespace TEAMModelOS.Controllers.Syllabus
 
 
 
 
 
 
-        /// <summary>
-        /// 删除 代理
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="request"></param>
-        /// <param name="builder"></param>
-        /// <returns></returns>
-        delegate Task<List<T>> DeleteDelegate<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder);
 
 
         /// <summary>
         /// <summary>
         /// 保存或更新SyllabusResource
         /// 保存或更新SyllabusResource
@@ -105,9 +95,7 @@ namespace TEAMModelOS.Controllers.Syllabus
         public async Task<BaseJosnRPCResponse> DeleteSyllabusResource(JosnRPCRequest<Dictionary<string, object>> request)
         public async Task<BaseJosnRPCResponse> DeleteSyllabusResource(JosnRPCRequest<Dictionary<string, object>> request)
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
-            DeleteDelegate<SyllabusResource> deleteDelegate1 = Delete<SyllabusResource>;
-            List<SyllabusResource> syllabusResources =  await deleteDelegate1(request, builder);
-
+            List<SyllabusResource> syllabusResources =  await Delete<SyllabusResource>(request, builder);
             foreach (SyllabusResource syllabusResource  in syllabusResources) {
             foreach (SyllabusResource syllabusResource  in syllabusResources) {
 
 
                 string blobUrl = syllabusResource.blobUrl;
                 string blobUrl = syllabusResource.blobUrl;
@@ -120,31 +108,18 @@ namespace TEAMModelOS.Controllers.Syllabus
                 {
                 {
                     await _azureBlobDBRepository.Deleteblob(compressUrl);
                     await _azureBlobDBRepository.Deleteblob(compressUrl);
                 }
                 }
-
             }
             }
 
 
             return builder.build();
             return builder.build();
         }
         }
 
 
-        private async Task<List<T>> Delete<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder)
+        private async Task<List<T>> Delete<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder)where T:ID
         {
         {
-            List<T> schoolBlocks = await _cosmos.FindByDict<T>(request.@params,true);
+            List<T> schoolBlocks = await _cosmos.FindByDict<T>(request.@params);
             Type t = typeof(T);
             Type t = typeof(T);
             if (schoolBlocks.IsNotEmpty())
             if (schoolBlocks.IsNotEmpty())
             {
             {
                 schoolBlocks.ForEach(x => {
                 schoolBlocks.ForEach(x => {
-                    //log4net 日志記錄
-                 /*   string uuidKey = Guid.NewGuid().ToString();
-                    string logkey = "【" + uuidKey + "】";
-                    LogHelper.Info(this,
-                                   logkey
-                                   + "【请求内容】"
-                                   + request.@params
-                                   + "【删除表】"
-                                   + t.Name
-                                   + "【删除内容】" 
-                                   + x.ToJson()
-                                   + logkey);*/
                     _cosmos.DeleteAsync<T>(x); 
                     _cosmos.DeleteAsync<T>(x); 
                 });
                 });
                 builder.Data("删除成功");
                 builder.Data("删除成功");