123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading.Tasks;
- using TEAMModelOS.SDK.Context.Exception;
- using TEAMModelOS.SDK.Extension.SnowFlake;
- using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
- using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
- using TEAMModelOS.Service.Models.Syllabus;
- using TEAMModelOS.Service.Services.Syllabus.Interface;
- namespace TEAMModelOS.Service.Services.Syllabus.Implement
- {
- public class VolumeService : IVolumeService
- {
- private readonly IAzureCosmosDBV3Repository azureCosmosDBRepository;
- public VolumeService(IAzureCosmosDBV3Repository azureCosmosDBRepository)
- {
- this.azureCosmosDBRepository = azureCosmosDBRepository;
- }
- public async Task<List<SyllabusVolume>> SaveOrUpdateVolume(SyllabusVolume request)
- {
- if (request.editors != null && request.editors.Count > 5)
- {
- throw new BizException("共编人数大于5人!");
- }
- if (string.IsNullOrEmpty(request.id))
- {
- if (request.type == 0)
- {
- List<SyllabusVolume> volumesFind = await azureCosmosDBRepository.FindByDict<SyllabusVolume>(new Dictionary<string, object>() {
- { "scopeCode",request.scopeCode},{ "periodCode", request.periodCode},
- { "subjectCode", request.subjectCode},{ "gradeCode", request.gradeCode},
- { "semesterCode",request.semesterCode},{ "volumeName",request.volumeName} ,
- { "status",1} ,{ "type",0} });
- if (volumesFind.IsNotEmpty())
- {
- throw new BizException("已存在!", ResponseCode.DATA_EXIST);
- }
- ///校本课纲
- string key = request.scopeCode + IdWorker.getInstance().NextId();
- request.id = key;
- request.volumeCode = key;
- }
- else if (request.type == 1)
- {
- List<SyllabusVolume> volumesFind = await azureCosmosDBRepository.FindByDict<SyllabusVolume>(new Dictionary<string, object>() {
- { "schoolCode",request.scopeCode},{ "periodCode", request.periodCode},
- { "subjectCode", request.subjectCode},{ "gradeCode", request.gradeCode},
- { "semesterCode",request.semesterCode},{ "volumeName",request.volumeName},
- { "TEAMModelId",request.TEAMModelId}, { "status",1} ,{ "type",1} });
- if (volumesFind.IsNotEmpty())
- {
- throw new BizException("已存在!", ResponseCode.DATA_EXIST);
- }
- ///个人课纲
- string key = "dynamic" + request.TEAMModelId.Replace("#", "") + IdWorker.getInstance().NextId();
- request.id = key;
- request.volumeCode = key;
- }
- else if (request.type == 2)
- {
- ///系统课纲
- string key = "system" + IdWorker.getInstance().NextId();
- request.scopeCode = "system";
- request.id = key;
- request.volumeCode = key;
- }
- }
- else
- {
- if (request.type == 0)
- {
- List<SyllabusVolume> volumesFind = await azureCosmosDBRepository.FindByDict<SyllabusVolume>(new Dictionary<string, object>() {
- { "schoolCode",request.scopeCode},{ "periodCode", request.periodCode},
- { "subjectCode", request.subjectCode},{ "gradeCode", request.gradeCode},
- { "semesterCode",request.semesterCode},{ "volumeName",request.volumeName} ,
- { "status",1} ,{ "type",0} });
- if (volumesFind.IsNotEmpty())
- {
- if (!volumesFind[0].id.Equals(request.id))
- {
- throw new BizException("已存在!", ResponseCode.DATA_EXIST);
- }
- }
- }
- else if (request.type == 1)
- {
- List<SyllabusVolume> volumesFind = await azureCosmosDBRepository.FindByDict<SyllabusVolume>(new Dictionary<string, object>() {
- { "schoolCode",request.scopeCode},{ "periodCode", request.periodCode},
- { "subjectCode", request.subjectCode},{ "gradeCode", request.gradeCode},
- { "semesterCode",request.semesterCode},{ "volumeName",request.volumeName},
- { "TEAMModelId",request.TEAMModelId}, { "status",1} ,{ "type",1} });
- if (volumesFind.IsNotEmpty())
- {
- if (!volumesFind[0].id.Equals(request.id))
- {
- throw new BizException("已存在!", ResponseCode.DATA_EXIST);
- }
- }
- }
- else if (request.type == 2)
- {
- }
- }
- List<SyllabusVolume> volumes = new List<SyllabusVolume>
- {
- request
- };
- List<SyllabusVolume> volume = await azureCosmosDBRepository.SaveOrUpdateAll<SyllabusVolume>(volumes);
- return volume;
- }
- }
- }
|