|
@@ -369,6 +369,7 @@ namespace TEAMModelOS.Controllers
|
|
|
SubActLsRecord subActLsRecord = new SubActLsRecord();
|
|
|
subActLsRecord.id = scoreCalcLsRecord[0].items[i].id;
|
|
|
subActLsRecord.name = scoreCalcLsRecord[0].items[i].name;
|
|
|
+ subActLsRecord.startTime = scoreCalcLsRecord[0].items[i].createTime;
|
|
|
// 子項目比重由外層取得
|
|
|
subActLsRecord.rate = scoreCalcLsRecord[0].itemRates[i];
|
|
|
subActLsRecord.use = scoreCalcLsRecord[0].items[i].use;
|
|
@@ -402,6 +403,7 @@ namespace TEAMModelOS.Controllers
|
|
|
SubActActivity subActActivity = new SubActActivity();
|
|
|
subActActivity.id = scoreCalcActivity[i].items[j].id;
|
|
|
subActActivity.name = scoreCalcActivity[i].items[j].name;
|
|
|
+ subActActivity.startTime = scoreCalcActivity[i].items[j].createTime;
|
|
|
// 子項目比重由外層取得
|
|
|
subActActivity.rate = scoreCalcActivity[i].itemRates[j];
|
|
|
subActActivity.use = scoreCalcActivity[i].items[j].use;
|
|
@@ -867,7 +869,12 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
|
|
|
// 取公式表的 id
|
|
|
- string sql_Formula = $"SELECT c.id FROM c where c.scorecalcActId in ({sb.ToString().Remove(sb.Length - 1, 1)}) ";
|
|
|
+ string scorecalcActIdstr = "''";
|
|
|
+ if (sb.Length > 0)
|
|
|
+ {
|
|
|
+ scorecalcActIdstr = sb.ToString().Remove(sb.Length - 1, 1);
|
|
|
+ }
|
|
|
+ string sql_Formula = $"SELECT c.id FROM c where c.scorecalcActId in ({scorecalcActIdstr}) ";
|
|
|
await foreach (var item in clientTeacher.GetItemQueryIterator<ItemId>(queryText: sql_Formula))
|
|
|
{
|
|
|
formulaIdslist.Add(item.id);
|
|
@@ -1046,6 +1053,7 @@ namespace TEAMModelOS.Controllers
|
|
|
scoreCalcActivityItems.use = true;
|
|
|
scoreCalcActivityItems.sort = 1;
|
|
|
scoreCalcActivityItems.custom = true;
|
|
|
+ scoreCalcActivityItems.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
scoreCalcActivity.items.Add(scoreCalcActivityItems);
|
|
|
// 根據學生數量設定預設值
|
|
|
List<double> zeroScores = new List<double>();
|
|
@@ -1137,6 +1145,7 @@ namespace TEAMModelOS.Controllers
|
|
|
scoreCalcActivityItems.name = ishaveName ? (name + "") : "子項目";
|
|
|
scoreCalcActivityItems.use = true;
|
|
|
scoreCalcActivityItems.custom = true;
|
|
|
+ scoreCalcActivityItems.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
|
|
|
// 先判斷是否為課堂紀錄 根據項目的類別寫入的欄位需要調整
|
|
|
if (scoreCalcActivityBase.type == "lessonrecord")
|
|
@@ -1643,7 +1652,7 @@ namespace TEAMModelOS.Controllers
|
|
|
//評量資料
|
|
|
List<ExamItem> examItem = new List<ExamItem>();
|
|
|
//評量名稱
|
|
|
- List<ExamItem> examItemName = new List<ExamItem>();
|
|
|
+ List<ExamItem> examItemNameStartTime = new List<ExamItem>();
|
|
|
//作業資料
|
|
|
List<HomeworkItem> homeworkItems = new List<HomeworkItem>();
|
|
|
//作業分數
|
|
@@ -1970,6 +1979,14 @@ namespace TEAMModelOS.Controllers
|
|
|
// 補上寫進DB的子項目名稱欄位
|
|
|
scoreCalcLsRecord.items[i].name = lessonBasesCalcList[i].summary.meterialName;
|
|
|
|
|
|
+ for (int j = 0; j < lessonRecords.Count; j++)
|
|
|
+ {
|
|
|
+ if (scoreCalcLsRecord.items[i].id == lessonRecords[j].id)
|
|
|
+ {
|
|
|
+ scoreCalcLsRecord.items[i].createTime = lessonRecords[j].startTime;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
List<double> stuActAttendScores = new List<double>();
|
|
|
List<double> stuActPointScores = new List<double>();
|
|
|
List<double> stuActItactScores = new List<double>();
|
|
@@ -2021,11 +2038,11 @@ namespace TEAMModelOS.Controllers
|
|
|
sb_examIds.Append($"'{examItem[i].examId}',");
|
|
|
}
|
|
|
// 取評量名稱
|
|
|
- string sql_examName = $"SELECT c.name FROM c where c.pk = 'Exam' and c.id in ({sb_examIds.ToString().Remove(sb_examIds.Length - 1, 1)})";
|
|
|
+ string sql_examName = $"SELECT c.name, c.startTime FROM c where c.pk = 'Exam' and c.id in ({sb_examIds.ToString().Remove(sb_examIds.Length - 1, 1)})";
|
|
|
//string sql_examName = $"SELECT c.id as examId, c.name FROM c where c.pk = 'Exam' and c.id in ({sb_examIds.ToString().Remove(sb_examIds.Length - 1, 1)})";
|
|
|
await foreach (var item in clientCommon.GetItemQueryIterator<ExamItem>(queryText: sql_examName))
|
|
|
{
|
|
|
- examItemName.Add(item);
|
|
|
+ examItemNameStartTime.Add(item);
|
|
|
}
|
|
|
|
|
|
List<ExamItem> examItemCalcList = new List<ExamItem>();
|
|
@@ -2062,9 +2079,9 @@ namespace TEAMModelOS.Controllers
|
|
|
for (int i = 0; i < examItemCalcList.Count; i++)
|
|
|
{
|
|
|
bool isDataOk = false;
|
|
|
- for (int j = 0; j < examItemName.Count; j++)
|
|
|
+ for (int j = 0; j < examItemNameStartTime.Count; j++)
|
|
|
{
|
|
|
- if (examItemCalcList[i].examId == examItemName[j].examId)
|
|
|
+ if (examItemCalcList[i].examId == examItemNameStartTime[j].examId)
|
|
|
{
|
|
|
isDataOk = true;
|
|
|
}
|
|
@@ -2082,7 +2099,8 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
ScoreCalcActivityItems scoreCalcActivityItems = new ScoreCalcActivityItems();
|
|
|
scoreCalcActivityItems.id = examItemCalcList[i].examId;
|
|
|
- scoreCalcActivityItems.name = examItemName[i].name;
|
|
|
+ scoreCalcActivityItems.name = examItemNameStartTime[i].name;
|
|
|
+ scoreCalcActivityItems.createTime = examItemNameStartTime[i].startTime;
|
|
|
scoreCalcActivityItems.use = true;
|
|
|
scoreCalcActivity_eaxm.items.Add(scoreCalcActivityItems);
|
|
|
scoreCalcActivity_eaxm.stuActScores.Add(examItemCalcList[i].sum);
|
|
@@ -2099,11 +2117,11 @@ namespace TEAMModelOS.Controllers
|
|
|
// 由classId判斷是取甚麼班級
|
|
|
if (ishaveClassId)
|
|
|
{
|
|
|
- sql_homeworkIds = $"SELECT c.id, c.name FROM c WHERE c.pk = 'Homework' AND ARRAY_CONTAINS(c.classes, \"{classId}\", true)";
|
|
|
+ sql_homeworkIds = $"SELECT c.id, c.name, c.startTime FROM c WHERE c.pk = 'Homework' AND ARRAY_CONTAINS(c.classes, \"{classId}\", true)";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- sql_homeworkIds = $"SELECT c.id, c.name FROM c WHERE c.pk = \"Homework\" AND ARRAY_CONTAINS(c.stuLists, \"{grouplistId}\", true)";
|
|
|
+ sql_homeworkIds = $"SELECT c.id, c.name, c.startTime FROM c WHERE c.pk = \"Homework\" AND ARRAY_CONTAINS(c.stuLists, \"{grouplistId}\", true)";
|
|
|
}
|
|
|
|
|
|
await foreach (var item in clientCommon.GetItemQueryIterator<HomeworkItem>(queryText: sql_homeworkIds))
|
|
@@ -2125,6 +2143,7 @@ namespace TEAMModelOS.Controllers
|
|
|
ScoreCalcActivityItems scoreCalcActivityItems = new ScoreCalcActivityItems();
|
|
|
scoreCalcActivityItems.id = homeworkItems[i].id;
|
|
|
scoreCalcActivityItems.name = homeworkItems[i].name;
|
|
|
+ scoreCalcActivityItems.createTime = homeworkItems[i].startTime;
|
|
|
scoreCalcActivityItems.use = true;
|
|
|
|
|
|
scoreCalcActivity_homework.items.Add(scoreCalcActivityItems);
|
|
@@ -2337,5 +2356,84 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
return scoreCalcActivityItems;
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// (十七)查詢項目屬性資料
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [ProducesDefaultResponseType]
|
|
|
+ [Authorize(Roles = "IES")]
|
|
|
+ [HttpPost("get-itemprops")]
|
|
|
+ public async Task<IActionResult> GetItemProps(JsonElement request)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (!request.TryGetProperty("ids", out JsonElement ids)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("type", out JsonElement type)) return BadRequest();
|
|
|
+ string[] idsarr = ids.ToString().Split(',');
|
|
|
+ StringBuilder idssb = new StringBuilder();
|
|
|
+ if (idsarr.Length > 0)
|
|
|
+ {
|
|
|
+ foreach (var id in idsarr)
|
|
|
+ {
|
|
|
+ idssb.Append("'");
|
|
|
+ idssb.Append(id);
|
|
|
+ idssb.Append("'");
|
|
|
+ idssb.Append(",");
|
|
|
+ }
|
|
|
+ if (idssb.Length > 0)
|
|
|
+ {
|
|
|
+ idssb.Remove(idssb.Length - 1, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ string sql = "";
|
|
|
+ List<ItemProps> ItemPropsList = new List<ItemProps>();
|
|
|
+
|
|
|
+ var clientCommon = _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common);
|
|
|
+ var clientSchool = _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School);
|
|
|
+
|
|
|
+ switch (type.ToString())
|
|
|
+ {
|
|
|
+ case "lessonrecord":
|
|
|
+ sql = $"SELECT c.id, c.name, c.startTime FROM c where c.id in ({idssb}) and c.pk = 'LessonRecord'";
|
|
|
+ await foreach (var item in clientSchool.GetItemQueryIterator<ItemProps>(queryText: sql))
|
|
|
+ {
|
|
|
+ ItemPropsList.Add(item);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "exam":
|
|
|
+ sql = $"SELECT c.id, c.name, c.startTime, c.source FROM c where c.id in ({idssb}) and c.pk = 'Exam'";
|
|
|
+ await foreach (var item in clientCommon.GetItemQueryIterator<ItemProps>(queryText: sql))
|
|
|
+ {
|
|
|
+ ItemPropsList.Add(item);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "homework":
|
|
|
+ sql = $"SELECT c.id, c.name, c.startTime FROM c where c.id in ({idssb}) and c.pk = 'Homework'";
|
|
|
+ await foreach (var item in clientCommon.GetItemQueryIterator<ItemProps>(queryText: sql))
|
|
|
+ {
|
|
|
+ ItemPropsList.Add(item);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return Ok(ItemPropsList);
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ //await _dingDing.SendBotMsg($"OS,{_option.Location},open-api/upsert()\n{e.Message}\n{e.StackTrace}\n{e.StackTrace}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ return BadRequest();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|