CrazyIter_Bin 2 vuotta sitten
vanhempi
commit
42c15f39de
33 muutettua tiedostoa jossa 340 lisäystä ja 57 poistoa
  1. 1 1
      TEAMModelBI/Controllers/Census/ItemSticsController.cs
  2. 1 1
      TEAMModelBI/Controllers/Census/PaperController.cs
  3. 82 1
      TEAMModelOS.SDK/DI/AzureCosmos/AzureCosmosExtensions.cs
  4. 1 1
      TEAMModelOS.SDK/DI/AzureCosmos/Inner/AzureCosmosQuery.cs
  5. 1 1
      TEAMModelOS.SDK/DI/AzureCosmos/Inner/SQLHelper.cs
  6. 25 0
      TEAMModelOS.SDK/Models/Service/OverallEducationService.cs
  7. 57 1
      TEAMModelOS.SDK/Models/Service/SchoolService.cs
  8. 1 1
      TEAMModelOS/Controllers/Both/CourseController.cs
  9. 1 1
      TEAMModelOS/Controllers/Both/ItemController.cs
  10. 1 1
      TEAMModelOS/Controllers/Both/LessonRecordController.cs
  11. 1 1
      TEAMModelOS/Controllers/Both/PaperController.cs
  12. 1 1
      TEAMModelOS/Controllers/Client/HiScanController.cs
  13. 1 1
      TEAMModelOS/Controllers/Common/AreaController.cs
  14. 1 1
      TEAMModelOS/Controllers/Common/SurveyController.cs
  15. 1 1
      TEAMModelOS/Controllers/Normal/AreaSettingController.cs
  16. 1 1
      TEAMModelOS/Controllers/Normal/ArtSettingController.cs
  17. 0 3
      TEAMModelOS/Controllers/OpenApi/Business/BizGroupListController.cs
  18. 0 15
      TEAMModelOS/Controllers/OpenApi/Business/BizOverallEducationController.cs
  19. 66 0
      TEAMModelOS/Controllers/OpenApi/Business/BizStudentController.cs
  20. 1 1
      TEAMModelOS/Controllers/OpenApi/OpenApiService.cs
  21. 1 1
      TEAMModelOS/Controllers/School/ClassController.cs
  22. 1 1
      TEAMModelOS/Controllers/School/CorrectController.cs
  23. 1 1
      TEAMModelOS/Controllers/School/KnowledgesController.cs
  24. 77 0
      TEAMModelOS/Controllers/Student/StudentOverallEducationController.cs
  25. 1 1
      TEAMModelOS/Controllers/Third/DingDingController.cs
  26. 1 1
      TEAMModelOS/Controllers/Third/OAuth2Controller.cs
  27. 1 1
      TEAMModelOS/Controllers/Third/Sc/ScApiController.cs
  28. 1 1
      TEAMModelOS/Controllers/Third/Sc/ScController.cs
  29. 1 1
      TEAMModelOS/Controllers/Third/Sc/ScDataInitController.cs
  30. 1 1
      TEAMModelOS/Controllers/Third/Xkw/XkwOAuth2Controller.cs
  31. 1 1
      TEAMModelOS/Controllers/Third/Xkw/XkwServiceController.cs
  32. 6 4
      TEAMModelOS/Controllers/XTest/FixLessonRecordController.cs
  33. 3 9
      TEAMModelOS/Controllers/XTest/TestController.cs

+ 1 - 1
TEAMModelBI/Controllers/Census/ItemSticsController.cs

@@ -14,7 +14,7 @@ using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Context.BI;
 using Azure.Core;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Context.Constant;
 using DocumentFormat.OpenXml.Wordprocessing;
 using TEAMModelOS.SDK.Models.Service.BI;

+ 1 - 1
TEAMModelBI/Controllers/Census/PaperController.cs

@@ -23,7 +23,7 @@ using TEAMModelOS.Models;
 using TEAMModelOS.SDK.Context.BI;
 using TEAMModelOS.SDK.Context.Constant;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.BI;

+ 82 - 1
TEAMModelOS.SDK/DI/AzureCosmos/AzureCosmosExtensions.cs

@@ -8,7 +8,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Linq;
 using Azure;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using System.IO;
 using TEAMModelOS.SDK.DI;
 using System.Diagnostics;
@@ -20,6 +20,7 @@ using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.Helper.Common.JsonHelper;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
+using TEAMModelOS.SDK.Models.Cosmos.OpenEntity;
 
 namespace TEAMModelOS.SDK.DI
 {
@@ -113,5 +114,85 @@ namespace TEAMModelOS.SDK.DI
             }
             return responses;
         }
+        public static async Task<CosmosDBResult<T>> GetList<T>(this CosmosContainer container, QueryDefinition  queryDefinition, string partitionkey, string? continuationToken = null, int? pageSize = null)
+        {
+            List<T> list = new List<T>();
+            double RU = 0;
+            if (string.IsNullOrWhiteSpace(partitionkey))
+            {
+                return (new CosmosDBResult<T> { list = list, ru = RU, continuationToken = continuationToken });
+            }
+
+            await foreach (var item in container.GetItemQueryStreamIterator(queryDefinition: queryDefinition, continuationToken: continuationToken,
+                requestOptions: new QueryRequestOptions { MaxItemCount = pageSize, PartitionKey = new PartitionKey(partitionkey) }))
+            {
+                using var json = await JsonDocument.ParseAsync(item.ContentStream);
+                if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)
+                {
+                    foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
+                    {
+                        list.Add(obj.ToObject<T>());
+                    }
+                }
+                if (queryDefinition.QueryText.Contains(" distinct ", StringComparison.OrdinalIgnoreCase) || queryDefinition.QueryText.Contains(" order by ", StringComparison.OrdinalIgnoreCase))
+                {
+                    continuationToken = null;
+                }
+                else
+                {
+                    continuationToken = item.GetContinuationToken();
+                }
+                RU  +=item.RU();
+                if (pageSize.HasValue && pageSize.Value >= 0 && list.Count >= pageSize)
+                {
+                    break;
+                }
+            }
+            //记录日志,RU开销大于400(开发测试),1000(正式)
+            return (new CosmosDBResult<T> { list = list, ru = RU, continuationToken = continuationToken }); ;
+        }
+
+        public static async Task<CosmosDBResult<T>> GetList<T>(this CosmosContainer container, string sql, string partitionkey, string? continuationToken = null, int? pageSize = null)
+        {
+            List<T> list = new List<T>();
+            double RU = 0;
+            if (string.IsNullOrWhiteSpace(partitionkey))
+            {
+                return (new CosmosDBResult<T> { list = list, ru = RU, continuationToken = continuationToken });
+            }
+
+            await foreach (var item in container.GetItemQueryStreamIterator(queryText: sql, continuationToken: continuationToken, 
+                requestOptions: new QueryRequestOptions { MaxItemCount = pageSize, PartitionKey = new PartitionKey(partitionkey) }) )
+            {
+                using var json = await JsonDocument.ParseAsync(item.ContentStream);
+                if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)
+                {
+                    foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray()) {
+                        list.Add(obj.ToObject<T>());
+                    }
+                }
+                if (sql.Contains(" distinct ", StringComparison.OrdinalIgnoreCase) || sql.Contains(" order by ", StringComparison.OrdinalIgnoreCase))
+                {
+                    continuationToken = null;
+                }
+                else
+                {
+                    continuationToken = item.GetContinuationToken();
+                }
+                RU = item.RU();
+                if (pageSize.HasValue && pageSize.Value >= 0 && list.Count >= pageSize)
+                {
+                    break;
+                }
+            }
+            //记录日志,RU开销大于400(开发测试),1000(正式)
+            return (new CosmosDBResult<T> { list = list, ru = RU, continuationToken = continuationToken }); ;
+        }
+        public class CosmosDBResult<T>
+        {
+            public List<T>? list { get; set; }
+            public string? continuationToken { get; set; }
+            public double ru { get; set; }
+        }
     }
 }

+ 1 - 1
TEAMModelOS.SDK/DI/AzureCosmos/Inner/AzureCosmosQuery.cs

@@ -3,7 +3,7 @@ using System;
 using System.Collections.Generic;
 using System.Text;
 
-namespace TEAMModelOS.SDK.DI.AzureCosmos.Inner
+namespace TEAMModelOS.SDK.DI
 {
     public   class AzureCosmosQuery
     {

+ 1 - 1
TEAMModelOS.SDK/DI/AzureCosmos/Inner/SQLHelper.cs

@@ -8,7 +8,7 @@ using System.Text;
 using System.Text.Json;
 using System.Text.RegularExpressions;
 using TEAMModelOS.SDK;
-namespace TEAMModelOS.SDK.DI.AzureCosmos.Inner
+namespace TEAMModelOS.SDK.DI
 {
    public class SQLHelper
     {

+ 25 - 0
TEAMModelOS.SDK/Models/Service/OverallEducationService.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.Json;
+using System.Threading.Tasks;
+
+namespace TEAMModelOS.SDK.Models
+{
+    public static class OverallEducationService
+    {
+        public static Dictionary<string, object> GetQueryCond(JsonElement request) {
+            Dictionary<string, object> dict = new Dictionary<string, object>();
+            if (request.TryGetProperty("periodId", out JsonElement periodId) && !string.IsNullOrWhiteSpace($"{periodId}"))
+            {
+                dict.Add("periodId", periodId);
+            }
+            if (request.TryGetProperty("classIds", out JsonElement classIds))
+            {
+                dict.Add("classId[*]", classIds);
+            }
+            return dict;
+        }
+    }
+}

+ 57 - 1
TEAMModelOS.SDK/Models/Service/SchoolService.cs

@@ -1,4 +1,5 @@
 using Azure.Cosmos;
+using DocumentFormat.OpenXml.Bibliography;
 using HTEXLib.COMM.Helpers;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.International.Converters.PinYinConverter;
@@ -20,12 +21,67 @@ namespace TEAMModelOS.SDK
 {
     public class SchoolService
     {
+        /// <summary>
+        /// 根据年级获取入学
+        /// </summary>
+        /// <param name="semesterList"></param>
+        /// <returns></returns>
+        public static (List<KeyValuePair<int, int>> gradeYear, HashSet<int> years) GetYears(School school, string periodId, IEnumerable<int> grades, long time = 0) {
+            var date = DateTimeOffset.UtcNow;
+            //2001-09-09 09:46:40
+            if (time > 1000000000000)
+            {
+                date = DateTimeOffset.FromUnixTimeMilliseconds(time);
+            }
+            //年级算法
+            var period = school.period.Find(x => x.id.Equals(periodId));
+          
+
+            int Day = date.Day;
+            int Month = date.Month;
+            int Year = date.Year;
+            int start = int.Parse($"{Year}0901");
+            var se = period.semesters.Find(x => x.start == 1);
+            if (se == null)
+            {
+                se = period.semesters.First();
+            }
+            string sm = "09";
+            string sd = "01";
+            if (se != null)
+            {
+                sm = se.month >= 10 ? $"{se.month}" : $"0{se.month}";
+                sd = se.day >= 10 ? $"{se.day}" : $"0{se.day}";
+                start = int.Parse($"{Year}{sm}{sd}");
+            }
+            int curr = int.Parse(date.ToString("yyyyMMdd"));
+            //新学年开学时间大于当前时间,计算年级需要减1   20220901-20220408 > 0 则当前20220408是2021年入学的,
+            //当前时间大于新学年开学时间,计算年级则不需要  20220901-20221203 < 1 则当前20221203是2022年入学的,
+            //20230901-20230101 > 0 则当前20230101是2022年入学的,
+            int dis = start - curr;
+            List<int > years= new List<int>();
+            List<KeyValuePair<int, int>> gradeYear = new List<KeyValuePair<int, int>>();
+            foreach (int grade in grades) {
+                int year = 0;
+                if (dis > 0)
+                {
+                    year = Year - grade -1;
+                }
+                else {
+                    year= Year - grade ;
+                }
+                years.Add(year);
+                gradeYear.Add(new KeyValuePair<int, int>(grade,year ));
+            }
+            return (gradeYear,years.ToHashSet());
+        }
+
         /// <summary>
         /// 根据年份获取年级,只返回time 或当前时间以前入学的学生年级。
         /// </summary>
         /// <param name="semesterList"></param>
         /// <returns></returns>
-        public static (List<KeyValuePair<int, string>> yearGrades,HashSet<string> grades) GetGrades(School school,string periodId , IEnumerable<int> years,long time =0) {
+        public static (List<KeyValuePair<int, string>> yearGrade,HashSet<string> grades) GetGrades(School school,string periodId , IEnumerable<int> years,long time =0) {
             var date = DateTimeOffset.UtcNow;
             //2001-09-09 09:46:40
             if (time > 1000000000000) {

+ 1 - 1
TEAMModelOS/Controllers/Both/CourseController.cs

@@ -15,7 +15,7 @@ using TEAMModelOS.Models.Dto;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using System.Dynamic;

+ 1 - 1
TEAMModelOS/Controllers/Both/ItemController.cs

@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Http;
 using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 1 - 1
TEAMModelOS/Controllers/Both/LessonRecordController.cs

@@ -18,7 +18,7 @@ using TEAMModelOS.Filter;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Service;

+ 1 - 1
TEAMModelOS/Controllers/Both/PaperController.cs

@@ -13,7 +13,7 @@ using Microsoft.AspNetCore.Http;
 using System.IdentityModel.Tokens.Jwt;
 using Azure.Cosmos;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using System.Text;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 1 - 1
TEAMModelOS/Controllers/Client/HiScanController.cs

@@ -12,7 +12,7 @@ using TEAMModelOS.Models.Dto;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.Models;

+ 1 - 1
TEAMModelOS/Controllers/Common/AreaController.cs

@@ -19,7 +19,7 @@ using TEAMModelOS.Filter;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 1 - 1
TEAMModelOS/Controllers/Common/SurveyController.cs

@@ -11,7 +11,7 @@ using TEAMModelOS.Models.Dto;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.Models;
 using Microsoft.Extensions.Options;

+ 1 - 1
TEAMModelOS/Controllers/Normal/AreaSettingController.cs

@@ -16,7 +16,7 @@ using TEAMModelOS.Filter;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 1 - 1
TEAMModelOS/Controllers/Normal/ArtSettingController.cs

@@ -19,7 +19,7 @@ using TEAMModelOS.Filter;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 0 - 3
TEAMModelOS/Controllers/OpenApi/Business/BizGroupListController.cs

@@ -71,8 +71,5 @@ namespace TEAMModelOS.Controllers
             return Ok(new { responseData });
         }
 
-
-
-
     }
 }

+ 0 - 15
TEAMModelOS/Controllers/OpenApi/Business/BizOverallEducationController.cs

@@ -65,21 +65,6 @@ namespace TEAMModelOS.Controllers
             return Ok(new { responseData });
         }
 
-        /// <summary>
-        /// 学生详细信息
-        /// </summary>
-        /// <param name="jsonElement"></param>
-        /// <returns></returns>
-        [ProducesDefaultResponseType]
-        [HttpPost("get-student-info")]
-        [ApiToken(Auth = "1902", Name = "学生详细信息", TName = "學生詳細信息", EName = "Student Details", RWN = "R", Limit = false)]
-        public async Task<IActionResult> GetLoginStuInfo(JsonElement jsonElement)
-        {
-            var (id, school) = HttpContext.GetApiTokenInfo();
-            //if(!jsonElement.TryGetProperty("schoolId",out JsonElement schoolId)) return Ok(new { code = RespondCode.ParamsError, msg = "参数错误:schoolId", data = "" });
-            var responseData = await OpenApiService.GetLoginStuInfo(_azureCosmos, _dingDing, _option, id, school, jsonElement);
-            return Ok(new { responseData });
-        }
 
         #region  杉达公司
         /// <summary>

+ 66 - 0
TEAMModelOS/Controllers/OpenApi/Business/BizStudentController.cs

@@ -0,0 +1,66 @@
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Configuration;
+using TEAMModelOS.SDK.DI;
+using TEAMModelOS.SDK;
+using TEAMModelOS.Models;
+using Microsoft.Extensions.Options;
+using System.Threading.Tasks;
+using TEAMModelOS.SDK.Models.Dtos;
+using TEAMModelOS.SDK.Context.Constant;
+using System.Collections.Generic;
+using System.Text.Json;
+using TEAMModelOS.SDK.Extension;
+using TEAMModelOS.Filter;
+using TEAMModelOS.SDK.Models;
+using Azure.Cosmos;
+using TEAMModelOS.SDK.Models.Cosmos.OpenEntity;
+using System;
+using System.Text;
+
+
+namespace TEAMModelOS.Controllers
+{
+    [Route("business")]
+    [ApiController]
+    public class BizStudentController : ControllerBase
+    {
+        public AzureCosmosFactory _azureCosmos;
+        private readonly AzureStorageFactory _azureStorage;
+        private readonly AzureRedisFactory _azureRedis;
+        private readonly DingDing _dingDing;
+        private readonly Option _option;
+        private readonly IConfiguration _configuration;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        private readonly AzureServiceBusFactory _serviceBus;
+        private readonly SnowflakeId _snowflakeId;
+
+        public BizStudentController(AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, AzureServiceBusFactory serviceBus, DingDing dingDing, CoreAPIHttpService coreAPIHttpService, IOptionsSnapshot<Option> option, IConfiguration configuration, SnowflakeId snowflakeId)
+        {
+            _azureCosmos = azureCosmos;
+            _azureStorage = azureStorage;
+            _azureRedis = azureRedis;
+            _dingDing = dingDing;
+            _option = option?.Value;
+            _configuration = configuration;
+            _coreAPIHttpService = coreAPIHttpService;
+            _serviceBus = serviceBus;
+            _snowflakeId = snowflakeId;
+        }
+        /// <summary>
+        /// 学生详细信息
+        /// </summary>
+        /// <param name="jsonElement"></param>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("get-student-info")]
+        [ApiToken(Auth = "1902", Name = "学生详细信息", TName = "學生詳細信息", EName = "Student Details", RWN = "R", Limit = false)]
+        public async Task<IActionResult> GetLoginStuInfo(JsonElement jsonElement)
+        {
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            //if(!jsonElement.TryGetProperty("schoolId",out JsonElement schoolId)) return Ok(new { code = RespondCode.ParamsError, msg = "参数错误:schoolId", data = "" });
+            var responseData = await OpenApiService.GetLoginStuInfo(_azureCosmos, _dingDing, _option, id, school, jsonElement);
+            return Ok(new { responseData });
+        }
+    }
+}

+ 1 - 1
TEAMModelOS/Controllers/OpenApi/OpenApiService.cs

@@ -23,7 +23,7 @@ using TEAMModelOS.SDK.Helper.Common.ReflectorExtensions;
 using TEAMModelOS.SDK.Context.Constant;
 using TEAMModelOS.SDK.Models.Dtos;
 using TEAMModelOS.SDK.Services;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Configuration;
 using Azure.Messaging.ServiceBus;
 using TEAMModelOS.Models;

+ 1 - 1
TEAMModelOS/Controllers/School/ClassController.cs

@@ -17,7 +17,7 @@ using TEAMModelOS.Filter;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;

+ 1 - 1
TEAMModelOS/Controllers/School/CorrectController.cs

@@ -12,7 +12,7 @@ using TEAMModelOS.Models.Dto;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Helper.Common.StringHelper;
 using TEAMModelOS.Models;

+ 1 - 1
TEAMModelOS/Controllers/School/KnowledgesController.cs

@@ -13,7 +13,7 @@ using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using Microsoft.AspNetCore.Authentication;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using TEAMModelOS.Filter;
 using HTEXLib.COMM.Helpers;

+ 77 - 0
TEAMModelOS/Controllers/Student/StudentOverallEducationController.cs

@@ -0,0 +1,77 @@
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Configuration;
+using TEAMModelOS.SDK.DI;
+using TEAMModelOS.SDK;
+using TEAMModelOS.Models;
+using Microsoft.Extensions.Options;
+using System.Threading.Tasks;
+using TEAMModelOS.SDK.Models.Dtos;
+using TEAMModelOS.SDK.Context.Constant;
+using System.Collections.Generic;
+using System.Text.Json;
+using TEAMModelOS.SDK.Extension;
+using TEAMModelOS.Filter;
+using TEAMModelOS.SDK.Models;
+using Azure.Cosmos;
+using TEAMModelOS.SDK.Models.Cosmos.OpenEntity;
+using System;
+using System.Text;
+using Azure.Core;
+using OpenXmlPowerTools;
+using TEAMModelOS.SDK.DI;
+
+namespace TEAMModelOS.Controllers
+{
+
+    /// <summary>
+    /// 学生五育画像接口
+    /// </summary>
+    [Route("overall-education")]
+    [ApiController]
+    public class StudentOverallEducationController : ControllerBase
+    {
+        private readonly AzureCosmosFactory _azureCosmos;
+        private readonly AzureStorageFactory _azureStorage;
+        private readonly AzureRedisFactory _azureRedis;
+        private readonly DingDing _dingDing;
+        private readonly Option _option;
+        private readonly IConfiguration _configuration;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        private readonly AzureServiceBusFactory _serviceBus;
+        private readonly SnowflakeId _snowflakeId;
+
+        public StudentOverallEducationController(AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, AzureServiceBusFactory serviceBus, DingDing dingDing, CoreAPIHttpService coreAPIHttpService, IOptionsSnapshot<Option> option, IConfiguration configuration, SnowflakeId snowflakeId)
+        {
+            _azureCosmos = azureCosmos;
+            _azureStorage = azureStorage;
+            _azureRedis = azureRedis;
+            _dingDing = dingDing;
+            _option = option?.Value;
+            _configuration = configuration;
+            _coreAPIHttpService = coreAPIHttpService;
+            _serviceBus = serviceBus;
+            _snowflakeId = snowflakeId;
+        }
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="json"></param>
+        /// <returns></returns>
+        [HttpPost("overview-base")]
+        public async Task<IActionResult> OverviewBase(JsonElement json) {
+            json.TryGetProperty("grade", out JsonElement _grade);
+            json.TryGetProperty("school", out JsonElement _school);
+            Dictionary<string, object> dict = OverallEducationService.GetQueryCond(json);
+            if (_grade.ValueKind.Equals(JsonValueKind.Number)) {
+                dict.Add("year", 2022);
+            }
+            StringBuilder studentCountSQL =new StringBuilder("select value count(1) from  c ");
+            AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(dict, studentCountSQL);
+            cosmosDbQuery.QueryText.Replace("where", "where  ( c.graduate = 0 or  IS_DEFINED(c.graduate) = false)");
+
+
+            return Ok(json);
+        }
+    }
+}

+ 1 - 1
TEAMModelOS/Controllers/Third/DingDingController.cs

@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Http;
 using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 1 - 1
TEAMModelOS/Controllers/Third/OAuth2Controller.cs

@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Http;
 using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 1 - 1
TEAMModelOS/Controllers/Third/Sc/ScApiController.cs

@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Http;
 using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 1 - 1
TEAMModelOS/Controllers/Third/Sc/ScController.cs

@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Http;
 using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 1 - 1
TEAMModelOS/Controllers/Third/Sc/ScDataInitController.cs

@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Http;
 using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 1 - 1
TEAMModelOS/Controllers/Third/Xkw/XkwOAuth2Controller.cs

@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Http;
 using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 1 - 1
TEAMModelOS/Controllers/Third/Xkw/XkwServiceController.cs

@@ -11,7 +11,7 @@ using Microsoft.AspNetCore.Http;
 using TEAMModelOS.SDK.Extension;
 using Azure.Cosmos;
 using System.Text;
-using TEAMModelOS.SDK.DI.AzureCosmos.Inner;
+using TEAMModelOS.SDK.DI;
 using Microsoft.Extensions.Options;
 using Azure.Messaging.ServiceBus;
 using Microsoft.Extensions.Configuration;

+ 6 - 4
TEAMModelOS/Controllers/XTest/FixLessonRecordController.cs

@@ -39,6 +39,7 @@ using TEAMModelOS.SDK.Models.Dtos;
 using DocumentFormat.OpenXml.Bibliography;
 using System.Formats.Asn1;
 using Microsoft.Azure.SignalR.Protocol;
+using System.Collections;
 
 namespace TEAMModelOS.Controllers.XTest
 {
@@ -101,12 +102,13 @@ namespace TEAMModelOS.Controllers.XTest
         {
             string school = json.GetProperty("school").GetString();
             string periodId = json.GetProperty("periodId").GetString();
-            List<int> years = json.GetProperty("years").Deserialize<List<int >>();
-            long time  = json.GetProperty("time").Deserialize<long  >();
+            //List<int> years = json.GetProperty("years").Deserialize<List<int >>();
+            //long time  = json.GetProperty("time").Deserialize<long  >();
             var client = _azureCosmos.GetCosmosClient();
             School schoolObj = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(school, new PartitionKey("Base"));
-            var grades= SchoolService.GetGrades(schoolObj, $"{periodId}", years, time);
-            return Ok(grades.yearGrades);
+          //  var grades= SchoolService.GetGrades(schoolObj, $"{periodId}", years, time);
+           var years= SchoolService.GetYears(schoolObj, $"{periodId}", new List<int>() { 2,1,3,0 }, 1657706205000);
+            return Ok(years.gradeYear);
         }
         /// <summary>
         ///

+ 3 - 9
TEAMModelOS/Controllers/XTest/TestController.cs

@@ -92,15 +92,9 @@ namespace TEAMModelOS.Controllers
             //}
             //var more=   teachers.Select(z => z.tmdid).Except(teacherTrains.Select(x => x.id));
 
-            QueryDefinition queryDefinition = new QueryDefinition($"SELECT  value(c) FROM c WHERE c.id=@id");
-            queryDefinition.WithParameter("@id", "1595321354");
-            List<Teacher> teachers = new List<Teacher>();
-            await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher)
-                .GetItemQueryIterator<Teacher>(queryDefinition: queryDefinition,requestOptions: new QueryRequestOptions { PartitionKey= new PartitionKey("Base") }))
-            {
-                teachers.Add(item);
-            }
-            return Ok(teachers);
+            QueryDefinition queryDefinition = new QueryDefinition($"SELECT  value(c) FROM c ");
+            var data= await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Student).GetList<Student>(queryDefinition, "Base-hbcn");
+            return Ok(new { data.continuationToken,data.list,data.ru});
         }