CrazyIter_Bin 2 gadi atpakaļ
vecāks
revīzija
237cca71f4
1 mainītis faili ar 49 papildinājumiem un 0 dzēšanām
  1. 49 0
      TEAMModelOS.SDK/Models/Service/StudentService.cs

+ 49 - 0
TEAMModelOS.SDK/Models/Service/StudentService.cs

@@ -3,6 +3,7 @@ using Azure.Cosmos;
 using Azure.Messaging.ServiceBus;
 using HTEXLib.COMM.Helpers;
 using Microsoft.Extensions.Configuration;
+using OpenXmlPowerTools;
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -15,6 +16,7 @@ using TEAMModelOS.Models;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
+using TEAMModelOS.SDK.Models.Service;
 
 namespace TEAMModelOS.SDK
 {
@@ -1414,6 +1416,8 @@ namespace TEAMModelOS.SDK
                    .GetItemQueryIterator<Imei>(queryText:imeiQueryText,requestOptions:new QueryRequestOptions { PartitionKey= new PartitionKey("Imei")})){
                     imeis.Add(item);
                 }
+                List<Student> graduate_students = new List<Student>();
+                List<Class> school_classes = new List<Class>();
                 string queryText = "";
                 if (graduate == 0)
                 {
@@ -1421,6 +1425,27 @@ namespace TEAMModelOS.SDK
                 }
                 else {
                     queryText = $"SELECT  *  FROM c WHERE c.code = 'Base-{schoolId}' and  c.graduate = 1 and c.year ={inyear} ";
+
+
+                    ///查询当年的毕业班
+                    string sql = sql = $"SELECT value c FROM c where  c.graduate =1 and c.year ={inyear}"; ;
+                   
+                    var client = _azureCosmos.GetCosmosClient();
+                    await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<Class>
+                    (queryText: sql,
+                       requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Class-{schoolId}") }))
+                    {
+                        school_classes.Add(item);
+                    }
+                    //如果已经毕业的班级不为空。
+                    if (school_classes.IsNotEmpty()) {
+                        string classSql = $"SELECT  value c    FROM c WHERE c.code = 'Base-{schoolId}' and  c.graduate = 1  and c.classId in(   {string.Join(",", school_classes.Select(x => $"'{x.id}'"))}  )";
+                        await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").GetItemQueryIterator<Student>( queryText: classSql,
+                        requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base-{schoolId}")})) 
+                        {
+                            graduate_students.Add(item);
+                        }
+                    }
                 }
                  
 
@@ -1590,6 +1615,30 @@ namespace TEAMModelOS.SDK
                         gender = o.gender,
                         guardians =o.guardians,
                     }));
+
+                graduate_students.ForEach(o => {
+                    var imeiObj = imeis.Find(x => x.stuid.Equals(o.id));
+                    Class stuClass = school_classes.Find(x => x.id.Equals(o.classId));
+                    ret.Add(
+                    new
+                    {
+                        o.id,
+                        o.name,
+                        o.picture,
+                        o.year,
+                        o.no,
+                        classId = stuClass?.id,
+                        classNo = stuClass?.no,
+                        className = stuClass?.name,
+                        gradeId = stuClass?.gradeId,
+                        o.periodId,
+                        classYear = stuClass?.year,
+                        irs = o.irs,
+                        imei = imeiObj?.id,
+                        gender = o.gender,
+                        guardians = o.guardians,
+                    });
+                });
                 return ret;
             }
             catch (Exception ex)