|
@@ -0,0 +1,116 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Threading.Tasks;
|
|
|
+using Microsoft.AspNetCore.Http;
|
|
|
+using Microsoft.AspNetCore.Mvc;
|
|
|
+using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
|
|
|
+using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
|
|
|
+using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
|
|
|
+using TEAMModelOS.SDK.Module.AzureCosmosDB.Interfaces;
|
|
|
+using TEAMModelOS.Service.Models.Syllabus;
|
|
|
+
|
|
|
+namespace TEAMModelOS.Controllers.Syllabus
|
|
|
+{
|
|
|
+ [Route("api/[controller]")]
|
|
|
+ [ApiController]
|
|
|
+ public class ResourceController : ControllerBase
|
|
|
+ {
|
|
|
+
|
|
|
+ private IAzureCosmosDBRepository _cosmos;
|
|
|
+
|
|
|
+ public ResourceController(IAzureCosmosDBRepository cosmos)
|
|
|
+ {
|
|
|
+ _cosmos = cosmos;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 删除 代理
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T"></typeparam>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <param name="builder"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ delegate Task DeleteDelegate<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder);
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 保存或更新SyllabusResource
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("SaveOrUpdateSyllabusResource")]
|
|
|
+ public async Task<BaseJosnRPCResponse> SaveOrUpdateSyllabusResource(JosnRPCRequest<List<SyllabusResource>> request)
|
|
|
+ {
|
|
|
+ JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
|
+ if (request.@params.IsNotEmpty())// != null )
|
|
|
+ {
|
|
|
+ List<SyllabusResource> resource = request.@params;
|
|
|
+ foreach (SyllabusResource item in resource)
|
|
|
+ {
|
|
|
+ if (item.id == null)
|
|
|
+ {
|
|
|
+ item.id = item.sha1Code + "-" + item.contentType + "-" + item.size;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<SyllabusResource> ts = await _cosmos.SaveAll(resource);
|
|
|
+ if (ts.Count > 0) builder.Data("保存或新增成功");
|
|
|
+ else builder.Error(false, ResponseCode.FAILED, "失败");
|
|
|
+ }
|
|
|
+ return builder.build();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取SyllabusResource
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("FindSyllabusResourceByDict")]
|
|
|
+ public async Task<BaseJosnRPCResponse> FindSyllabusResourceByDict(JosnRPCRequest<Dictionary<string, object>> request)
|
|
|
+ {
|
|
|
+ // request.@params.TryAdd("PartitionKey", request.lang);
|
|
|
+ JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
|
+ if (request.@params != null)
|
|
|
+ {
|
|
|
+ List<SyllabusResource> data = new List<SyllabusResource>();
|
|
|
+ data = await _cosmos.FindByParams<SyllabusResource>(request.@params);
|
|
|
+ if (data.IsNotEmpty()) {
|
|
|
+ return builder.Data(data.OrderBy(m => m.createTime)).Extend(new Dictionary<string, object> { { "count", data.Count } }).build();
|
|
|
+
|
|
|
+ }else return builder.Error(false, ResponseCode.NOT_FOUND, "资源未找到").build();
|
|
|
+
|
|
|
+ }
|
|
|
+ else return builder.Error(false,ResponseCode.PARAMS_ERROR,"参数为空").build();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 删除 SyllabusResource
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("DeleteSyllabusResource")]
|
|
|
+ public async Task<BaseJosnRPCResponse> DeleteSyllabusResource(JosnRPCRequest<Dictionary<string, object>> request)
|
|
|
+ {
|
|
|
+ JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
|
|
|
+ DeleteDelegate<SyllabusResource> deleteDelegate1 = Delete<SyllabusResource>;
|
|
|
+ await deleteDelegate1(request, builder);
|
|
|
+ return builder.build();
|
|
|
+ }
|
|
|
+
|
|
|
+ private async Task Delete<T>(JosnRPCRequest<Dictionary<string, object>> request, JsonRPCResponseBuilder builder)
|
|
|
+ {
|
|
|
+ List<T> schoolBlocks = await _cosmos.FindByParams<T>(request.@params);
|
|
|
+ if (schoolBlocks.IsNotEmpty())
|
|
|
+ {
|
|
|
+ schoolBlocks.ForEach(x => { _cosmos.DeleteAsync<T>(x); });
|
|
|
+ builder.Data("删除成功");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ builder.Error(false, ResponseCode.NOT_FOUND, "未找到对应知识块");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|