Browse Source

完善研修报告PDF完整条件

zhouj1203@hotmail.com 3 years ago
parent
commit
356f79b595

+ 1 - 1
TEAMModelOS.FunctionV4/Program.cs

@@ -47,7 +47,7 @@ namespace TEAMModelOS.FunctionV4
                services.AddAzureStorage(context.Configuration.GetSection("Azure:Storage:ConnectionString").Get<string>());
                services.AddAzureRedis(context.Configuration.GetSection("Azure:Redis:ConnectionString").Get<string>());
                services.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools()));
-               services.AddSnowflakeId(Convert.ToInt64(context.Configuration.GetSection("Option:LocationNum")), 1);
+               services.AddSnowflakeId(Convert.ToInt64(context.Configuration.GetSection("Option:LocationNum").Get<Int32>()), 1);
            })
            .Build();
             await host.RunAsync();

+ 130 - 48
TEAMModelOS.FunctionV4/ServiceBus/ActiveTaskTopic.cs

@@ -624,7 +624,6 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
                 /*                var jsonMsg = JsonDocument.Parse(msg);
                                 jsonMsg.RootElement.TryGetProperty("id", out JsonElement id);
                                 //jsonMsg.RootElement.TryGetProperty("code", out JsonElement code);*/
-                List<Study> studies = new();
                 JsonElement element = msg.ToObject<JsonElement>();
                 element.TryGetProperty("id", out JsonElement ids);
                 List<string> tIds = ids.ToObject<List<string>>();
@@ -649,6 +648,8 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
                 }
                 foreach (string id in tIds)
                 {
+                    List<Study> studies = new();
+                    StringBuilder stringBuilder = new StringBuilder();
                     List<(List<string> tch, List<Dictionary<string, List<string>>> groupLists)> tchInfo = new();
                     var query = $"SELECT  top 1  c.tchLists,c.groupLists FROM c where array_contains(c.teacIds, '{id}') order by c.createTime desc";
                     await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryStreamIterator(queryText: query, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Study-{code}") }))
@@ -696,71 +697,152 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
                         cname = tchList.Where(c => c.id == id).FirstOrDefault().name;
                     }
 
-                    var queryInfo = $"select value(c) from c where (c.status<>404 or IS_DEFINED(c.status) = false and array_contains(c.teacIds, '{id}') )";
+                    var queryInfo = $"select value(c) from c where (c.status<>404 or IS_DEFINED(c.status) = false) and array_contains(c.teacIds, '{id}')";
                     await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryIterator<Study>(queryText: queryInfo, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Study-{code}") }))
                     {
                         studies.Add(item);
 
                     }
                     List<string> details = new();
-                    StringBuilder stringBuilder = new StringBuilder();
                     foreach (Study study in studies)
                     {
-
-                        var start = DateTimeHelper.FromUnixTimestamp(study.startTime).ToString("yyyy/MM/dd HH:mm:ss");
-                        var end = DateTimeHelper.FromUnixTimestamp(study.endTime).ToString("yyyy/MM/dd HH:mm:ss");
-                        string tname = string.Empty;
-                        List<string> setName = new();
-                        foreach (string setting in study.settings)
+                        var sresponse = await client.GetContainer("TEAMModelOS", "Teacher").ReadItemStreamAsync(study.id, new PartitionKey($"StudyRecord-{id}"));
+                        if (sresponse.Status == 200)
                         {
-                            if (setting.Equals("sign"))
-                            {
-                                setName.Add("扫码签到");
-                            }
-                            else if (setting.Equals("hw"))
-                            {
-                                setName.Add("作业提交");
-                            }
-                            else if (setting.Equals("survey"))
-                            {
-                                setName.Add("问卷反馈");
-                            }
-                            else if (setting.Equals("exam"))
+                            var json = await JsonDocument.ParseAsync(sresponse.ContentStream);
+                            StudyRecord record = json.ToObject<StudyRecord>();
+                            if (record.status == 1)
                             {
-                                setName.Add("评测活动");
-                            }
-                        }
-                        switch (study.type)
-                        {
-                            case 1:
-                                tname = "信息化教学案例展示与分享";
-                                break;
-                            case 2:
-                                tname = "专家专题培训";
-                                break;
-                            case 3:
-                                tname = "同课同构";
-                                break;
-                            case 4:
-                                tname = "同课异构";
-                                break;
-                            case 5:
-                                tname = "校本2.0培训";
-                                break;
-                            case 6:
-                                tname = "自定义活动";
-                                break;
-                        };
-                        stringBuilder.Append($@"<tr>
+                                if (!string.IsNullOrEmpty(study.workId))
+                                {
+                                    var response = await client.GetContainer("TEAMModelOS", "Teacher").ReadItemStreamAsync(study.workId, new PartitionKey($"HomeworkRecord-{id}"));
+                                    if (response.Status == 200)
+                                    {
+                                        var start = DateTimeHelper.FromUnixTimestamp(study.startTime).ToString("yyyy/MM/dd");
+                                        var end = DateTimeHelper.FromUnixTimestamp(study.endTime).ToString("yyyy/MM/dd");
+                                        string tname = string.Empty;
+                                        List<string> setName = new();
+                                        foreach (string setting in study.settings)
+                                        {
+                                            if (setting.Equals("sign"))
+                                            {
+                                                setName.Add("扫码签到");
+                                            }
+                                            else if (setting.Equals("hw"))
+                                            {
+                                                setName.Add("作业提交");
+                                            }
+                                            else if (setting.Equals("survey"))
+                                            {
+                                                setName.Add("问卷反馈");
+                                            }
+                                            else if (setting.Equals("exam"))
+                                            {
+                                                setName.Add("评测活动");
+                                            }
+                                        }
+                                        switch (study.type)
+                                        {
+                                            case 1:
+                                                tname = "信息化教学案例展示与分享";
+                                                break;
+                                            case 2:
+                                                tname = "专家专题培训";
+                                                break;
+                                            case 3:
+                                                tname = "同课同构";
+                                                break;
+                                            case 4:
+                                                tname = "同课异构";
+                                                break;
+                                            case 5:
+                                                tname = "校本2.0培训";
+                                                break;
+                                            case 6:
+                                                tname = "自定义活动";
+                                                break;
+                                        };
+                                        stringBuilder.Append($@"<tr>
                                                         <td> {study.topic} </td>
                                                         <td> {tname} </td >
                                                         <td> {study.hour} </td >
-                                                        <td> 1 </td >
+                                                        <td> {study.hour} </td >
+                                                        <td> {start} 到 {end} </td>
+                                                        <td>{study.desc}</td>
+                                                        <td> {string.Join("、", setName.Select(x => $"{x}\n"))} </td>
+                                                        <td> 已完成 </td >
+                                                    </tr> ");
+                                    }
+                                    else
+                                    {
+                                        continue;
+                                    }
+                                }
+                                else
+                                {
+                                    var start = DateTimeHelper.FromUnixTimestamp(study.startTime).ToString("yyyy/MM/dd");
+                                    var end = DateTimeHelper.FromUnixTimestamp(study.endTime).ToString("yyyy/MM/dd");
+                                    string tname = string.Empty;
+                                    List<string> setName = new();
+                                    foreach (string setting in study.settings)
+                                    {
+                                        if (setting.Equals("sign"))
+                                        {
+                                            setName.Add("扫码签到");
+                                        }
+                                        else if (setting.Equals("hw"))
+                                        {
+                                            setName.Add("作业提交");
+                                        }
+                                        else if (setting.Equals("survey"))
+                                        {
+                                            setName.Add("问卷反馈");
+                                        }
+                                        else if (setting.Equals("exam"))
+                                        {
+                                            setName.Add("评测活动");
+                                        }
+                                    }
+                                    switch (study.type)
+                                    {
+                                        case 1:
+                                            tname = "信息化教学案例展示与分享";
+                                            break;
+                                        case 2:
+                                            tname = "专家专题培训";
+                                            break;
+                                        case 3:
+                                            tname = "同课同构";
+                                            break;
+                                        case 4:
+                                            tname = "同课异构";
+                                            break;
+                                        case 5:
+                                            tname = "校本2.0培训";
+                                            break;
+                                        case 6:
+                                            tname = "自定义活动";
+                                            break;
+                                    };
+                                    stringBuilder.Append($@"<tr>
+                                                        <td> {study.topic} </td>
+                                                        <td> {tname} </td >
+                                                        <td> {study.hour} </td >
+                                                        <td> {study.hour} </td >
                                                         <td> {start} 到 {end} </td>
                                                         <td>{study.desc}</td>
                                                         <td> {string.Join("、", setName.Select(x => $"{x}\n"))} </td>
                                                         <td> 已完成 </td >
                                                     </tr> ");
+                                }
+                            }
+                            else {
+                                continue;
+                            }
+                        }
+                        else {
+                            continue;
+                        }                                                                    
                     }
                     await StudyService.GenPdf(id, areaId, cname, sname, gname, stringBuilder.ToString(), _converter, _azureStorage,_dingDing);
                 }

+ 1 - 0
TEAMModelOS/Controllers/Common/StudyController.cs

@@ -690,6 +690,7 @@ namespace TEAMModelOS.Controllers.Common
                 }
                 list.tmdid = new List<string>(tch);
                 await tasky.TaskPage(10);
+
                 if (statu == 1) {
                     var messageBlobItemCond = new ServiceBusMessage(new { id = tch, school, userType = "tmdid" }.ToJsonString());
                     var ItemCondQueue = _configuration.GetValue<string>("Azure:ServiceBus:GenPdfQueue");