123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- using Microsoft.AspNetCore.Mvc;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using TEAMModelOS.Service.Models.Core;
- using TEAMModelOS.Service.Models.Syllabus;
- using TEAMModelOS.SDK.Context.Exception;
- using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
- using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
- using TEAMModelOS.SDK.Extension.SnowFlake;
- using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
- using TEAMModelOS.SDK.Helper.Security.ShaHash;
- using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
- using TEAMModelOS.Controllers;
- namespace TEAMModelOS.Controllers.Syllabus
- {
- [Route("api/[controller]")]
- [ApiController]
- public class VolumeController : BaseController
- {
- private readonly IAzureCosmosDBRepository azureCosmosDBRepository;
- public VolumeController(IAzureCosmosDBRepository _azureCosmosDBRepository)
- {
- azureCosmosDBRepository = _azureCosmosDBRepository;
- }
- /// <summary>
- /// 新增册别
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("SaveOrUpdate")]
- public async Task<BaseJosnRPCResponse> SaveOrUpdate(JosnRPCRequest<Volume> request)
- {
- JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
- if (request.@params.editors != null && request.@params.editors.Length > 5)
- {
- throw new BizException("共编人数大于5人!");
- }
- if (string.IsNullOrEmpty(request.@params.id))
- {
- if (request.@params.type == 0)
- {
- List<Volume> volumesFind = await azureCosmosDBRepository.FindByDict<Volume>(new Dictionary<string, object>() {
- { "schoolCode",request.@params.schoolCode},{ "periodCode", request.@params.periodCode},
- { "subjectCode", request.@params.subjectCode},{ "gradeCode", request.@params.gradeCode},
- { "semesterCode",request.@params.gradeCode},{ "volumeName",request.@params.volumeName} ,
- { "status",1} ,{ "type",0} }, true);
- if (volumesFind.IsNotEmpty())
- {
- throw new BizException("已存在!", 500);
- }
- ///校本课纲
- string key = request.@params.schoolCode + IdWorker.getInstance().NextId();
- request.@params.id = key;
- request.@params.volumeCode = key;
- }
- else if (request.@params.type == 1)
- {
- List<Volume> volumesFind = await azureCosmosDBRepository.FindByDict<Volume>(new Dictionary<string, object>() {
- { "schoolCode",request.@params.schoolCode},{ "periodCode", request.@params.periodCode},
- { "subjectCode", request.@params.subjectCode},{ "gradeCode", request.@params.gradeCode},
- { "semesterCode",request.@params.gradeCode},{ "volumeName",request.@params.volumeName},
- { "TEAMModelId",request.@params.TEAMModelId}, { "status",1} ,{ "type",1} }, true);
- if (volumesFind.IsNotEmpty())
- {
- throw new BizException("已存在!", 500);
- }
- ///个人课纲
- string key = "dynamic" + request.@params.TEAMModelId.Replace("#", "") + IdWorker.getInstance().NextId();
- request.@params.id = key;
- request.@params.volumeCode = key;
- }
- else if (request.@params.type == 2)
- {
- ///系统课纲
- string key = "system" + IdWorker.getInstance().NextId();
- request.@params.schoolCode = "system";
- request.@params.id = key;
- request.@params.volumeCode = key;
- }
- }
- else {
- if (request.@params.type == 0)
- {
- List<Volume> volumesFind = await azureCosmosDBRepository.FindByDict<Volume>(new Dictionary<string, object>() {
- { "schoolCode",request.@params.schoolCode},{ "periodCode", request.@params.periodCode},
- { "subjectCode", request.@params.subjectCode},{ "gradeCode", request.@params.gradeCode},
- { "semesterCode",request.@params.gradeCode},{ "volumeName",request.@params.volumeName} ,
- { "status",1} ,{ "type",0} }, true);
- if (volumesFind.IsNotEmpty())
- {
- if (!volumesFind[0].id.Equals(request.@params.id)) {
- throw new BizException("已存在!", 500);
- }
- }
- }
- else if (request.@params.type == 1)
- {
- List<Volume> volumesFind = await azureCosmosDBRepository.FindByDict<Volume>(new Dictionary<string, object>() {
- { "schoolCode",request.@params.schoolCode},{ "periodCode", request.@params.periodCode},
- { "subjectCode", request.@params.subjectCode},{ "gradeCode", request.@params.gradeCode},
- { "semesterCode",request.@params.gradeCode},{ "volumeName",request.@params.volumeName},
- { "TEAMModelId",request.@params.TEAMModelId}, { "status",1} ,{ "type",1} }, true);
- if (volumesFind.IsNotEmpty())
- {
- if (!volumesFind[0].id.Equals(request.@params.id))
- {
- throw new BizException("已存在!", 500);
- }
- }
-
- }
- else if (request.@params.type == 2)
- {
- }
- }
- List<Volume> volumes = new List<Volume>
- {
- request.@params
- };
- List<Volume> volume = await azureCosmosDBRepository.SaveAll<Volume>(volumes);
- return builder.Data(volume.IsEmpty() ? null : volume[0]).build();
- }
- /// <summary>
- /// 删除册别
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("Delete")]
- public async Task<BaseJosnRPCResponse> Delete(JosnRPCRequest<Volume> request)
- {
- JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
- bool flag = false;
- if (!string.IsNullOrEmpty(request.@params.id))
- {
- //if (request.@params.type == 0)
- //{
- request.@params.status = 0;
- List<Volume> volumes = new List<Volume>
- {
- request.@params
- };
- await azureCosmosDBRepository.SaveAll<Volume>(volumes);
- flag = true;
- //}
- //else
- //{
- // await azureCosmosDBRepository.DeleteAsync<Volume>(request.@params.id, request.@params.schoolCode);
- // await azureCosmosDBRepository.DeleteAll<SyllabusNode>(new Dictionary<string, object>() { { "volumeCode", request.@params.id } });
- // flag = true;
- //}
- }
- return builder.Data(flag).build();
- }
- /// <summary>
- /// 查找册别
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("Find")]
- public async Task<BaseJosnRPCResponse> Find(JosnRPCRequest<Dictionary<string, object>> request)
- {
- JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
- List<Volume> volumes ;
- if (request.@params.TryGetValue("schoolCode", out _))
- {
- volumes = await azureCosmosDBRepository.FindByParams<Volume>(request.@params);
- }
- else
- {
- throw new BizException("schoolCode is null!");
- }
- return builder.Data(volumes).build();
- }
- }
- }
|