123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- 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.Models;
- using TEAMModelOS.Models.SchoolInfo;
- 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;
- }
- /// <summary>
- /// 删除
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("delete")]
- public async Task<BaseResponse> Delete(IdPk request)
- {
- ResponseBuilder builder = ResponseBuilder.custom();
- IdPk items = await _azureCosmos.DeleteAsync<Paper>(request.id, request.pk);
- return builder.Data(items).build();
- }
- /// <summary>
- /// 查询试卷摘要信息
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("findSummary")]
- public async Task<BaseResponse> findSummary(JsonElement request)
- {
- ResponseBuilder builder = ResponseBuilder.custom();
- //Dictionary<string, object> dict = new Dictionary<string, object>();
- int keys = 0;
- var emobj = request.EnumerateObject();
- while (emobj.MoveNext())
- {
- keys++;
- //dict[emobj.Current.Name] = emobj.Current.Value;
- }
- List<string> props = new List<string> {
- "subjectCode", "id", "code", "periodCode",
- "name","itemCount","level","pointItem","pointScore","score", "gradeCode"
- };
- if (keys > 0)
- {
- return builder.Data(await _azureCosmos.FindByDict<Paper>(request, propertys: props)).build();
- }
- else {
- return builder.build();
- }
-
- }
- /// <summary>
- /// 查询试卷
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("find")]
- public async Task<BaseResponse> Find(JsonElement request)
- {
- ResponseBuilder builder = ResponseBuilder.custom();
- //Dictionary<string, object> dict = new Dictionary<string, object>();
- 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<Paper>(request)).build();
- }
- else
- {
- return builder.build();
- }
- }
- /// <summary>
- /// 保存试卷
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("upsert")]
- public async Task<BaseResponse> 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();
- }
- }
- }
|