12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using Microsoft.AspNetCore.Mvc;
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading.Tasks;
- using TEAMModelOS.Models;
- using TEAMModelOS.SDK;
- using TEAMModelOS.SDK.DI;
- using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
- using TEAMModelOS.SDK.Context.Exception;
- using System.Text.Json;
- using TEAMModelOS.Models.SchoolInfo;
- namespace TEAMModelOS.Controllers
- {
- [Route("api/[controller]")]
- [ApiController]
- public class SchoolController : Controller
- {
- public AzureCosmosFactory _azureCosmos;
- public SchoolController(AzureCosmosFactory azureCosmos)
- {
- _azureCosmos = azureCosmos;
- }
- /// <summary>
- /// 保存或更新学校
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("upsert")]
- public async Task<BaseResponse> Upsert(School request)
- {
- ResponseBuilder builder = ResponseBuilder.custom();
- if (string.IsNullOrEmpty(request.id))
- {
- List<School> schools = await _azureCosmos.FindByDict<School>(new Dictionary<string, object> { { "code", request.schoolCode } });
- if (schools.IsNotEmpty())
- {
- return builder.Error(ResponseCode.DATA_EXIST, "学校编码已存在!").build();
- }
- request.code = request.schoolCode;
- request.id = request.schoolCode;
- }
- else {
- List<School> schools = await _azureCosmos.FindByDict<School>(new Dictionary<string, object> { { "id", request.id } });
- if (schools.IsEmpty())
- {
- return builder.Error(ResponseCode.PARAMS_ERROR, "id不存在,不能更新").build();
- }
- }
- if (request.id.Equals(request.code) && request.id.Equals(request.schoolCode))
- {
- School datas = await _azureCosmos.SaveOrUpdate<School>(request);
- return builder.Data(datas).build();
- }
- else {
- return builder.Error(ResponseCode.PARAMS_ERROR, "id,code,schoolCode必须相同!").build();
- }
-
- }
- /// <summary>
- /// 查找学校
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("find")]
- public async Task<BaseResponse> Find(JsonElement request)
- {
- ResponseBuilder builder = ResponseBuilder.custom();
-
- if (request.TryGetProperty("code", out JsonElement code) &&! string.IsNullOrEmpty(code.ToString()))
- {
- List<School> sc = await _azureCosmos.FindByDict<School>(request);
- return builder.Data(sc).build();
- }
- else {
- return builder.Data(null).build();
- }
- }
- /// <summary>
- /// 取得所有學校基本資料("id","schoolCode","schoolName")
- /// </summary>
- /// <param name="GetAllSchoolBaesInfo"></param>
- /// <returns></returns>
- [HttpPost("GetAllSchoolBaesInfo")]
- public async Task<BaseResponse> GetAllSchoolBaesInfo(JsonElement request)
- {
- ResponseBuilder builder = ResponseBuilder.custom();
- List<School> sc = await _azureCosmos.FindSQL<School>("SELECT c.id, c.schoolCode, c.schoolName, c.address, c.picture FROM c WHERE c.pk='School'");
- return builder.Data(sc).build();
- }
- }
- }
|