Sfoglia il codice sorgente

埋点,处理统计

CrazyIter_Bin 3 anni fa
parent
commit
c373899486

+ 2 - 2
TEAMModelFunction/MonitorServicesBus.cs

@@ -421,7 +421,7 @@ namespace TEAMModelFunction
                     {
                         teacherTrain.updateProperty.Add(up);
                     }
-                    teacherTrain = await StatisticsService.StatisticsTeacher(teacherTrain, setting, area, client);
+                    teacherTrain = await StatisticsService.StatisticsTeacher(teacherTrain, setting, area, client,null);
                 }
                 catch (CosmosException)
                 {
@@ -433,7 +433,7 @@ namespace TEAMModelFunction
                         school = change.school,
                         updateProperty = new HashSet<string> {  StatisticsService.TeacherAility,
                         StatisticsService.TeacherClass, StatisticsService.OfflineRecord }
-                    }, setting, area, client);
+                    }, setting, area, client, null);
                 }
             }
             

+ 2 - 2
TEAMModelOS.SDK/Models/Service/GroupListService.cs

@@ -241,7 +241,7 @@ namespace TEAMModelOS.SDK
                 var client = _azureCosmos.GetCosmosClient();
                 if (string.IsNullOrEmpty(list.no))
                 {
-                    list.no = $"{Utils.CreatSaltString(6, "0123456789")}";
+                    list.no = $"{Utils.CreatSaltString(6, "123456789")}";
                     for (int i = 0; i < 10; i++)
                     {
                         List<string> noStus = new List<string>();
@@ -291,7 +291,7 @@ namespace TEAMModelOS.SDK
                             }
                             else
                             {
-                                list.no = $"{Utils.CreatSaltString(6, "0123456789")}";
+                                list.no = $"{Utils.CreatSaltString(6, "123456789")}";
                             }
                         }
                     }

+ 49 - 25
TEAMModelOS.SDK/Models/Service/StatisticsService.cs

@@ -44,7 +44,7 @@ namespace TEAMModelOS.SDK
             await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageChange);
         }
 
-        public static async Task<List<TeacherTrain> > StatisticsArea(AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing)
+        public static async Task<List<TeacherTrain> > StatisticsArea(AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing,  HashSet<string> updates)
         {
             List<TeacherTrain> teacherTrains = new List<TeacherTrain>();
             List<School> schools = new List<School>();
@@ -53,26 +53,33 @@ namespace TEAMModelOS.SDK
             {
                 schools.Add(item);
             }
-            await foreach (var tarain in GetStatisticsSchool(schools, setting, area, client,_dingDing))
+            await foreach (var tarain in GetStatisticsSchool(schools, setting, area, client,_dingDing,updates))
             {
                 teacherTrains.AddRange(tarain);
             }
             return teacherTrains;
         }
-        private static async IAsyncEnumerable<List<TeacherTrain>> GetStatisticsSchool(List<School> schools, AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing)
+        private static async IAsyncEnumerable<List<TeacherTrain>> GetStatisticsSchool(List<School> schools, AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing,  HashSet<string> updates)
         {
             foreach (var school in schools)
             {
-                yield return await StatisticsSchool(school.id, setting, area, client,_dingDing);
+                yield return await StatisticsSchool(school.id, setting, area, client,_dingDing,updates);
             }
         }
-        public static async Task<List<TeacherTrain>> StatisticsSchool(string school, AreaSetting setting, Area area, CosmosClient client,DingDing _dingDing) {
+        public static async Task<List<TeacherTrain>> StatisticsSchool(string school, AreaSetting setting, Area area, CosmosClient client,DingDing _dingDing,HashSet<string> updates) {
             List<RGroupList> yxtrain = await GroupListService.GetGroupListMemberByType(client, "yxtrain", new List<string> { "school" }, $"{school}", _dingDing);
             List<TeacherTrain> trains = new List<TeacherTrain>();
             await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Teacher")
              .GetItemQueryIterator<TeacherTrain>(queryText: $"select value(c) from c  ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TeacherTrain-{school}") })) {
+               
                 trains.Add(item);
             }
+            if (updates != null) {
+                foreach (var up in updates)
+                {
+                    trains.ForEach(x => x.updateProperty.Add(up));
+                }
+            }
             var update = trains.FindAll(x => x.updateProperty.Count() > 0);
             var noupdate = trains.FindAll(x => x.updateProperty.Count() <=0);
             var members= yxtrain.SelectMany(x => x.members).ToList();
@@ -97,7 +104,13 @@ namespace TEAMModelOS.SDK
                     });
                 }
             }
-            returnTrains = await GetStatisticsTeacher(teacherTrains, setting, area, client);
+            List<Study> studies = new List<Study>();
+            await foreach (var item in client.GetContainer("TEAMModelOS", "Common")
+               .GetItemQueryIterator<Study>(queryText: $"select value(c) from c  ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Study-{school}") }))
+            {
+                studies.Add(item);
+            }
+            returnTrains = await GetStatisticsTeacher(teacherTrains, setting, area, client,studies);
             //await foreach (var tarain in GetStatisticsTeacher(teacherTrains, setting, area, client))
             //{
             //    returnTrains.Add(tarain);
@@ -109,24 +122,24 @@ namespace TEAMModelOS.SDK
             returnTrains.ForEach(x => x.groupName = members.Find(y => y.id.Equals(x.id))?.groupName);
             return returnTrains; 
         }
-        private static async Task<List<TeacherTrain>> GetStatisticsTeacher(List<TeacherTrain> trains, AreaSetting setting, Area area, CosmosClient client)
+        private static async Task<List<TeacherTrain>> GetStatisticsTeacher(List<TeacherTrain> trains, AreaSetting setting, Area area, CosmosClient client, List<Study> studies)
         {
             List<Task<TeacherTrain>> teachers = new List<Task<TeacherTrain>>();
             foreach (var train in trains)
             {
-                teachers.Add(StatisticsTeacher(train, setting, area, client));  //yield return await  StatisticsTeacher(  train,   setting,   area,   client);
+                teachers.Add(StatisticsTeacher(train, setting, area, client,studies));  //yield return await  StatisticsTeacher(  train,   setting,   area,   client);
             }
             await Task.WhenAll(teachers);
             return trains;
         }
-        public static async Task<TeacherTrain> StatisticsTeacher(TeacherTrain train,  AreaSetting setting, Area area, CosmosClient client) {
+        public static async Task<TeacherTrain> StatisticsTeacher(TeacherTrain train,  AreaSetting setting, Area area, CosmosClient client,List<Study> studies) {
             string _school = train.school;
             string _tmdid = train.tmdid;
            // TeacherTrain teacher_train = null;
             List<Task<TeacherTrain>> teachers = new List<Task<TeacherTrain>>();
             if (train.updateProperty.Count > 0) {
                 foreach (string property in train.updateProperty) {
-                    teachers.Add(DoProperty(train.updateProperty, property, setting, area, client, train));
+                    teachers.Add(DoProperty(train.updateProperty, property, setting, area, client, train,studies));
                 }
                 await   Task.WhenAll(teachers);
             }
@@ -136,7 +149,7 @@ namespace TEAMModelOS.SDK
             await client.GetContainer(Constant.TEAMModelOS, "Teacher").UpsertItemAsync<TeacherTrain>(train, new PartitionKey($"TeacherTrain-{_school}"));
             return train;
         }
-        private static async Task<TeacherTrain> DoProperty(HashSet<string> updateProperty,string property, AreaSetting setting, Area area, CosmosClient client, TeacherTrain train  )
+        private static async Task<TeacherTrain> DoProperty(HashSet<string> updateProperty,string property, AreaSetting setting, Area area, CosmosClient client, TeacherTrain train ,List<Study> studies )
         {
             string _school = train.school;
             string _tmdid = train.tmdid;
@@ -152,9 +165,12 @@ namespace TEAMModelOS.SDK
                     break;
                 //线下研修
                 case OfflineRecord:
-                    train = await DoOfflineRecord(train, setting, area, client, _school, _tmdid);
+                    train = await DoOfflineRecord(train, setting, area, client, _school, _tmdid,studies);
                     train.updateProperty.Remove(OfflineRecord);
                     break;
+                default:
+                    train.updateProperty.Remove(property);
+                    break;
             }
             return train;
             
@@ -245,7 +261,7 @@ namespace TEAMModelOS.SDK
         /// <param name="_school"></param>
         /// <param name="_tmdid"></param>
         /// <returns></returns>
-        public static async Task<TeacherTrain> DoOfflineRecord(TeacherTrain train, AreaSetting setting, Area area, CosmosClient client, string _school, string _tmdid) {
+        public static async Task<TeacherTrain> DoOfflineRecord(TeacherTrain train, AreaSetting setting, Area area, CosmosClient client, string _school, string _tmdid, List<Study> studies) {
             //owner:  school  area
             //线下 学校研修活动
             List<StuActivity> activities = new List<StuActivity>();
@@ -255,17 +271,20 @@ namespace TEAMModelOS.SDK
                 activities.Add(item);
             }
             string insql = "";
-            if (activities.IsNotEmpty())
-            {
-                insql = $" where c.id in ({string.Join(",", activities.Select(o => $"'{o.id}'"))})";
+            if (studies.IsEmpty()) {
+                studies = new List<Study>();
+                if (activities.IsNotEmpty())
+                {
+                    insql = $" where c.id in ({string.Join(",", activities.Select(o => $"'{o.id}'"))})";
 
+                }
+                await foreach (var item in client.GetContainer("TEAMModelOS", "Common")
+                .GetItemQueryIterator<Study>(queryText: $"select value(c) from c {insql} ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Study-{_school}") }))
+                {
+                    studies.Add(item);
+                }
             }
-            List<Study> studies = new List<Study>();
-            await foreach (var item in client.GetContainer("TEAMModelOS", "Common")
-            .GetItemQueryIterator<Study>(queryText: $"select value(c) from c {insql} ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Study-{_school}") }))
-            {
-                studies.Add(item);
-            }
+           
             List<StudyRecord> studyRecords = new List<StudyRecord>();
             await foreach (var item in client.GetContainer("TEAMModelOS", "Teacher")
             .GetItemQueryIterator<StudyRecord>(queryText: $"select value(c) from c {insql} ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"StudyRecord-{_tmdid}") }))
@@ -278,7 +297,7 @@ namespace TEAMModelOS.SDK
             {
                 homeworkRecords.Add(item);
             }
-         
+            List<OfflineRecord> offlines = new List<OfflineRecord>();
             activities.ForEach(item => {
                 Study study = studies.Find(y=>y.id.Equals(item.id));
                 StudyRecord studyRecord= studyRecords.Find(y => y.id.Equals(item.id));
@@ -293,12 +312,16 @@ namespace TEAMModelOS.SDK
                         done = item.taskStatus,
                         owner = item.owner
                     };
+                    record.sethour = study.hour;
+                    if (record.sethour <= 0) {
+                        Console.WriteLine(111);
+                    }
                     if (null != studyRecord)
                     {
                         //通过获得学时
                         record.hour = studyRecord.status == 1 ? study.hour : 0;
                         train.offlineTime = record.hour;
-                        record.sethour = study.hour;
+                        
                         if (studyRecord.status == 1)
                         {
                             record.score = 1;
@@ -321,9 +344,10 @@ namespace TEAMModelOS.SDK
                         record.hash = attachment.hash;
                         record.size = attachment.size;
                     }
-                    train.offlineRecords.Add(record);
+                    offlines.Add(record);
                 }
             });
+            train.offlineRecords= offlines;
             return train;
         }
         /// <summary>

+ 2 - 2
TEAMModelOS/Controllers/Analysis/AchievementController.cs

@@ -4291,7 +4291,7 @@ namespace TEAMModelOS.Controllers.Analysis
                 {
                     if (string.IsNullOrEmpty(stu.no))
                     {
-                        string channelnum = $"{_option.LocationNum}{Utils.CreatSaltString(6, "0123456789")}";
+                        string channelnum = $"{_option.LocationNum}{Utils.CreatSaltString(6, "123456789")}";
                         stu.no = channelnum;
                     }
                     await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync(stu, stu.id);
@@ -4301,7 +4301,7 @@ namespace TEAMModelOS.Controllers.Analysis
                 {
                     if (string.IsNullOrEmpty(stu.no))
                     {
-                        string channelnum = $"{_option.LocationNum}{Utils.CreatSaltString(6, "0123456789")}";
+                        string channelnum = $"{_option.LocationNum}{Utils.CreatSaltString(6, "123456789")}";
                         stu.no = channelnum;
                     }
                     await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync(stu, stu.id);

+ 6 - 2
TEAMModelOS/Controllers/Common/StudyController.cs

@@ -421,12 +421,14 @@ namespace TEAMModelOS.Controllers.Common
         }
 
         [ProducesDefaultResponseType]
-        //[AuthToken(Roles = "teacher")]
+        [AuthToken(Roles = "teacher,admin,area")]
         [HttpPost("audit")]
         public async Task<IActionResult> Audit(JsonElement request)
         {
             try
             {
+                (string tmdid, _, _, string school) = HttpContext.GetAuthTokenInfo();
+                if (!HttpContext.Items.TryGetValue("Standard", out object standard)) return BadRequest();
                 if (!request.TryGetProperty("id", out JsonElement id)) return BadRequest();
                 //if (!request.TryGetProperty("code", out JsonElement code)) return BadRequest();
                 if (!request.TryGetProperty("tId", out JsonElement tId)) return BadRequest();
@@ -459,7 +461,9 @@ namespace TEAMModelOS.Controllers.Common
                         };
                         await client.GetContainer("TEAMModelOS", "Teacher").CreateItemAsync(setting, new PartitionKey($"{setting.code}"));
                     }
-                }               
+                    await StatisticsService.SendServiceBus($"{standard}", $"{teacId}", $"{school}", StatisticsService.OfflineRecord, 1, _configuration, _serviceBus);
+                }
+               
                 return Ok(new { code = HttpStatusCode.OK });
             }
             catch (Exception ex)

+ 9 - 4
TEAMModelOS/Controllers/Research/AbilityStatisticsController.cs

@@ -48,8 +48,13 @@ namespace TEAMModelOS.Controllers
         public async Task<IActionResult> GetSchoolAppraise(JsonElement request)
         {
             var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
-
-
+            request.TryGetProperty("update", out JsonElement _update);
+            HashSet<string> update = null;
+            if (_update.ValueKind.Equals(JsonValueKind.Array)) {
+                update= _update.ToObject<HashSet<string>>();
+            }
+           
+           
             if (!HttpContext.Items.TryGetValue("Standard", out object standard)) return BadRequest();
             var client = _azureCosmos.GetCosmosClient();
             Area area = null;
@@ -103,7 +108,7 @@ namespace TEAMModelOS.Controllers
                     count += 1;
                 }
                 //增加评审人员总人数,学习总人数。
-                List<TeacherTrain> teacherTrains  = await StatisticsService.StatisticsSchool(school, setting, area, client, _dingDing); ;
+                List<TeacherTrain> teacherTrains  = await StatisticsService.StatisticsSchool(school, setting, area, client, _dingDing,update) ;
                 //try
                 //{
                 //    teacherTrain = await client.GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<TeacherTrain>(userid, new PartitionKey($"TeacherTrain-{school}"));
@@ -195,7 +200,7 @@ namespace TEAMModelOS.Controllers
                         picture= picture,
                         updateProperty = new HashSet<string> {  StatisticsService.TeacherAility,
                         StatisticsService.TeacherClass, StatisticsService.OfflineRecord }
-                    }, setting, area, client);
+                    }, setting, area, client,null);
                   
                 }
                 return Ok(new { teacherTrain , setting });

+ 13 - 2
TEAMModelOS/Controllers/Research/AppraiseController.cs

@@ -16,6 +16,8 @@ using TEAMModelOS.SDK.Extension;
 using static TEAMModelOS.Controllers.SchoolTeacherController;
 using System.Dynamic;
 using HTEXLib.COMM.Helpers;
+using Microsoft.Extensions.Configuration;
+using TEAMModelOS.Filter;
 
 namespace TEAMModelOS.Controllers.Research
 {
@@ -30,12 +32,16 @@ namespace TEAMModelOS.Controllers.Research
         private readonly SnowflakeId _snowflakeId;
         private readonly DingDing _dingDing;
         private readonly Option _option;
-        public AppraiseController(AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option)
+        private readonly AzureServiceBusFactory _serviceBus;
+        public IConfiguration _configuration { get; set; }
+        public AppraiseController(AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option, AzureServiceBusFactory serviceBus, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
             _snowflakeId = snowflakeId;
             _dingDing = dingDing;
-            _option = option?.Value; ;
+            _option = option?.Value;
+            _serviceBus = serviceBus;
+            _configuration = configuration;
         }
         /// <summary>
         ///课堂实录操作接口
@@ -44,7 +50,10 @@ namespace TEAMModelOS.Controllers.Research
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("opt")]
+        [AuthToken(Roles = "teacher,admin,area")]
         public async Task<IActionResult> Opt(JsonElement request) {
+            if (!HttpContext.Items.TryGetValue("Standard", out object standard)) return BadRequest();
+            (string id, _, _, string school) = HttpContext.GetAuthTokenInfo();
             var client = _azureCosmos.GetCosmosClient();
             if (!request.TryGetProperty("tmdid", out JsonElement _tmdid)) return BadRequest();
             if (!request.TryGetProperty("videoId", out JsonElement _videoId)) return BadRequest();
@@ -121,6 +130,7 @@ namespace TEAMModelOS.Controllers.Research
                         else {
                             await client.GetContainer("TEAMModelOS", "Teacher").ReplaceItemAsync<Appraise>(appraise, appraise.id, new PartitionKey(code));
                         }
+                        await StatisticsService.SendServiceBus($"{standard}", $"{_tmdid}", $"{school}", StatisticsService.TeacherClass, 1, _configuration, _serviceBus);
                         return Ok(new { dimensions, score });
                     case bool when $"{_opt}".Equals("Comment", StringComparison.OrdinalIgnoreCase):
                         if (!request.TryGetProperty("comment", out JsonElement _comment)) return BadRequest();
@@ -238,6 +248,7 @@ namespace TEAMModelOS.Controllers.Research
                         else {
                             await client.GetContainer("TEAMModelOS", "Teacher").ReplaceItemAsync<Appraise>(appraiseComment, appraiseComment.id, new PartitionKey(code));
                         }
+                        
                         return Ok(new { timeLine, reply });
                     case bool when $"{_opt}".Equals("ReadAllComment", StringComparison.OrdinalIgnoreCase):
                         if (!request.TryGetProperty("atSchool", out JsonElement _atSchool)) return BadRequest();

+ 15 - 3
TEAMModelOS/Controllers/Research/ClassVideoController.cs

@@ -15,6 +15,8 @@ using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Extension;
 using static TEAMModelOS.Controllers.SchoolTeacherController;
 using HTEXLib.COMM.Helpers;
+using Microsoft.Extensions.Configuration;
+using TEAMModelOS.Filter;
 
 namespace TEAMModelOS.Controllers.Research
 {
@@ -29,12 +31,17 @@ namespace TEAMModelOS.Controllers.Research
         private readonly SnowflakeId _snowflakeId;
         private readonly DingDing _dingDing;
         private readonly Option _option;
-        public ClassVideoController(AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option)
+        private readonly AzureServiceBusFactory _serviceBus;
+        public IConfiguration _configuration { get; set; }
+        public ClassVideoController(AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option, AzureServiceBusFactory serviceBus, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
             _snowflakeId = snowflakeId;
             _dingDing = dingDing;
-            _option = option?.Value; ;
+            _option = option?.Value; 
+            _serviceBus = serviceBus;
+            _configuration = configuration;
+      
         }
 
         /// <summary>
@@ -190,10 +197,13 @@ namespace TEAMModelOS.Controllers.Research
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("opt")]
+        [AuthToken(Roles = "teacher,admin,area")]
         public async Task<IActionResult> Opt(JsonElement request)
         {
             try
             {
+                (string id, _, _, string school) = HttpContext.GetAuthTokenInfo();
+                if (!HttpContext.Items.TryGetValue("Standard", out object standard)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
                 if (!request.TryGetProperty("tmdid", out JsonElement _tmdid)) return BadRequest();
                 if (!request.TryGetProperty("school", out JsonElement _school)) return BadRequest();
@@ -210,6 +220,7 @@ namespace TEAMModelOS.Controllers.Research
                             var fid= videoRd.files.Find(x => x.id.Equals($"{_videoId}"));
                             fid.score = int.Parse($"{_score}");
                             await client.GetContainer("TEAMModelOS", "Teacher").ReplaceItemAsync<ClassVideo>(videoRd,videoRd.id, new PartitionKey(code));
+                            await StatisticsService.SendServiceBus($"{standard}", $"{_tmdid}", $"{school}", StatisticsService.TeacherClass, 1, _configuration, _serviceBus);
                             return Ok(new { status = 1 });
                         }
                         catch (CosmosException ex)
@@ -258,6 +269,7 @@ namespace TEAMModelOS.Controllers.Research
                                     return Ok(new { classVideo });
                                 }
                             }
+                            await StatisticsService.SendServiceBus($"{standard}", $"{_tmdid}", $"{school}", StatisticsService.TeacherClass, 0, _configuration, _serviceBus);
                             return Ok(new { classVideo });
                         }
                         else {
@@ -280,7 +292,7 @@ namespace TEAMModelOS.Controllers.Research
                                 });
                             }
                             await client.GetContainer("TEAMModelOS", "Teacher").ReplaceItemAsync<ClassVideo>(delvideo, $"{_tmdid}", new PartitionKey(code));
-
+                            await StatisticsService.SendServiceBus($"{standard}", $"{_tmdid}", $"{school}", StatisticsService.TeacherClass, 0, _configuration, _serviceBus);
                             //TODO同时删除话题和点评记录
                             return Ok(new { classVideo = delvideo });
                         }

+ 2 - 2
TEAMModelOS/Services/Common/SheetService.cs

@@ -16,7 +16,7 @@ namespace TEAMModelOS.Services.Common
     {
         public static async Task<string> genSheetId(CosmosClient client , DingDing _dingDing, TEAMModelOS.Models. Option _option, string sheetCode, string tbname)
         {
-            string _num09 = "0123456789";
+            string _num09 = "123456789";
             string id = $"{Utils.CreatSaltString(7, _num09)}";
             for (int i = 0; i < 10; i++)
             {
@@ -43,7 +43,7 @@ namespace TEAMModelOS.Services.Common
         }
         public static async Task<string> genSheetNo(CosmosClient client, DingDing _dingDing, TEAMModelOS.Models.Option _option, string sheetCode, string tbname,string  from)
         {
-            string _num09 = "0123456789";
+            string _num09 = "123456789";
             string no = $"{Utils.CreatSaltString(7, _num09)}";
             for (int i = 0; i < 10; i++)
             {

+ 3 - 3
TEAMModelOS/TEAMModelOS.csproj

@@ -37,9 +37,9 @@
     <SpaRoot>ClientApp\</SpaRoot>
     <DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
     <UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-    <Version>5.2111.22</Version>
-    <AssemblyVersion>5.2111.22.1</AssemblyVersion>
-    <FileVersion>5.2111.22.1</FileVersion>
+    <Version>5.2111.24</Version>
+    <AssemblyVersion>5.2111.24.1</AssemblyVersion>
+    <FileVersion>5.2111.24.1</FileVersion>
     <Description>TEAMModelOS(IES5)</Description>
     <PackageReleaseNotes>版本说明</PackageReleaseNotes>
   </PropertyGroup>