using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Text.Json; using System.Threading.Tasks; using TEAMModelOS.SDK; using TEAMModelOS.SDK.DI; using TEAMModelOS.Service.Models; namespace TEAMModelOS.Controllers { [Route("api/[controller]")] [ApiController] public class PaperController: BaseController { private readonly SnowflakeId _snowflakeId; private readonly AzureCosmosFactory _azureCosmos; public PaperController(AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId) { _azureCosmos = azureCosmos; _snowflakeId = snowflakeId; } /// /// 删除 /// /// /// [HttpPost("delete")] public async Task Delete(IdPk request) { ResponseBuilder builder = ResponseBuilder.custom(); IdPk items = await _azureCosmos.DeleteAsync(request.id, request.pk); return builder.Data(items).build(); } /// /// 查询试卷摘要信息 /// /// /// [HttpPost("findSummary")] public async Task findSummary(JsonElement request) { ResponseBuilder builder = ResponseBuilder.custom(); //Dictionary dict = new Dictionary(); int keys = 0; var emobj = request.EnumerateObject(); while (emobj.MoveNext()) { keys++; //dict[emobj.Current.Name] = emobj.Current.Value; } List props = new List { "subjectCode", "id", "code", "periodCode", "name","itemCount","level","pointItem","pointScore","score", "gradeCode" }; if (keys > 0) { return builder.Data(await _azureCosmos.FindByDict(request, propertys: props)).build(); } else { return builder.build(); } } /// /// 查询试卷 /// /// /// [HttpPost("find")] public async Task Find(JsonElement request) { ResponseBuilder builder = ResponseBuilder.custom(); //Dictionary dict = new Dictionary(); var emobj = request.EnumerateObject(); int keys = 0; while (emobj.MoveNext()) { keys++; //dict[emobj.Current.Name] = emobj.Current.Value; } if (keys > 0) { return builder.Data(await _azureCosmos.FindByDict(request)).build(); } else { return builder.build(); } } /// /// 保存试卷 /// /// /// [HttpPost("upsert")] public async Task Upsert(Paper request) { ResponseBuilder builder = ResponseBuilder.custom(); if (string.IsNullOrEmpty(request.id)) { request.id = _snowflakeId.NextId() + ""; request.createTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(); await _azureCosmos.SaveOrUpdate(request); } else { await _azureCosmos.SaveOrUpdate(request); } return builder.Data(request).build(); } } }