算法库管理

main
zhangbin 1 month ago
parent fe09d5937f
commit 471ffd2fe1

@ -0,0 +1,122 @@
using OpenAuth.App.BaseApp.Base;
using OpenAuth.Repository.Domain;
using OpenAuth.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Infrastructure.CloudSdk.minio;
using OpenAuth.App.Interface;
using SqlSugar;
using Infrastructure;
using Microsoft.AspNetCore.Http;
using DocumentFormat.OpenXml.EMMA;
namespace OpenAuth.App.ServiceApp
{
public class AlgorithmsRepositoryApp : SqlSugarBaseApp<LasaAlgorithmsRepository, SugarDbContext>
{
public AlgorithmsRepositoryApp(ISugarUnitOfWork<SugarDbContext> unitWork, ISimpleClient<LasaAlgorithmsRepository> repository, IAuth auth) : base(unitWork, repository, auth)
{
}
#region 算法库管理
//添加算法库
public async Task<Response<bool>> AddAlgorithmsRepository(LasaAlgorithmsRepository info)
{
using (var db = UnitWork.CreateContext())
{
info.Id = Guid.NewGuid().ToString();
await db.LasaAlgorithmsRepository.InsertAsync(info);
foreach (var item in info.ModelLabels)
{
item.Id = Guid.NewGuid().ToString();
item.PId = info.Id;
}
await db.LasaModelLabel.InsertRangeAsync(info.ModelLabels);
if (db.Commit())
return new Response<bool>
{
Result = true,
Message = "添加成功"
};
else
return new Response<bool>
{
Result = false,
Message = "添加失败"
};
}
}
//修改算法库
public async Task<Response<bool>> UpdateAlgorithmsRepository(LasaAlgorithmsRepository info)
{
using (var db = UnitWork.CreateContext())
{
await db.LasaAlgorithmsRepository.UpdateAsync(info);
await db.LasaModelLabel.DeleteAsync(r => r.PId == info.Id);
foreach (var item in info.ModelLabels)
{
item.Id = Guid.NewGuid().ToString();
item.PId = info.Id;
}
await db.LasaModelLabel.InsertRangeAsync(info.ModelLabels);
if (db.Commit())
return new Response<bool>
{
Result = true,
Message = "修改成功"
};
else
return new Response<bool>
{
Result = false,
Message = "修改失败"
};
}
}
//删除算法库
public async Task<Response<bool>> DeleteAlgorithmsRepository(string id)
{
using (var db = UnitWork.CreateContext())
{
await db.LasaAlgorithmsRepository.DeleteByIdAsync(id);
await db.LasaModelLabel.DeleteAsync(r => r.PId == id);
if (db.Commit())
return new Response<bool>
{
Result = true,
Message = "删除成功"
};
else
return new Response<bool>
{
Result = false,
Message = "删除失败"
};
}
}
/// <summary>
/// 分页获取所有数据
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="key"></param>
/// <returns></returns>
public async Task<Response<PageInfo<List<LasaAlgorithmsRepository>>>> GetPageList(int page, int limit, string key)
{
RefAsync<int> totalCount = 0;
using (var db = UnitWork.CreateContext())
{
var list = await db.LasaAlgorithmsRepository.AsQueryable().Includes(a => a.ModelLabels)
.WhereIF(!string.IsNullOrEmpty(key), a => a.Name.Contains(key))
.ToPageListAsync(page, limit, totalCount);
return new Response<PageInfo<List<LasaAlgorithmsRepository>>>
{
Result = new PageInfo<List<LasaAlgorithmsRepository>> { Items = list, Total = totalCount }
};
}
}
#endregion
}
}

@ -0,0 +1,29 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenAuth.Repository.Domain
{
[SugarTable("lasa_algorithmsrepository")]
public class LasaAlgorithmsRepository
{
[SugarColumn(IsPrimaryKey = true)]
public string Id { get; set; }
public string Name { get; set; }
public string Describe { get; set; }
public string Pic { get; set; }
public string Size { get; set; }
public int Type { get; set; }
public string Path { get; set; }
public DateTime? CreateTime { get; set; }
public string PushUrl { get; set; }
public string PullUrl { get; set; }
public string ServiceUrl { get; set; }
public string SecretKey { get; set; }
[Navigate(NavigateType.OneToMany, nameof(LasaModelLabel.PId))]
public List<LasaModelLabel> ModelLabels { get; set; }
}
}

@ -0,0 +1,20 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenAuth.Repository.Domain
{
[SugarTable("lasa_modellabel")]
public class LasaModelLabel
{
[SugarColumn(IsPrimaryKey = true)]
public string Id { get; set; }
public string Name { get; set; }
public int EnumValue { get; set; }
public double Reliability { get; set; }
public string PId { get; set; }
}
}

@ -81,7 +81,8 @@ namespace OpenAuth.Repository
public SugarRepositiry<DroneDocktask> DroneDocktask { get; set; }
public SugarRepositiry<LasaMediaFile> LasaMediaFile { get; set; }
public SugarRepositiry<LasaAlgorithmsRepository> LasaAlgorithmsRepository { get; set; }
public SugarRepositiry<LasaModelLabel> LasaModelLabel { get; set; }
public SugarRepositiry<DbfineInfo> DbfineInfo { get; set; }
public SugarRepositiry<SysOpenJob> SysOpenJob { get; set; }

@ -0,0 +1,111 @@
using Infrastructure;
using Infrastructure.Cache;
using Infrastructure.CloudSdk.minio;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App.ServiceApp;
using OpenAuth.Repository.Domain;
using System.Net.Http;
namespace OpenAuth.WebApi.Controllers.ServiceControllers
{
/// <summary>
/// 算法库
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
public class AlgorithmsRepositoryController : ControllerBase
{
private readonly AlgorithmsRepositoryApp _app;
public AlgorithmsRepositoryController(AlgorithmsRepositoryApp app)
{
_app = app;
}
/// <summary>
/// 添加算法
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public async Task<Response<bool>> AddAlgorithmsRepository(LasaAlgorithmsRepository info)
{
var result = new Response<bool>();
try
{
result = await _app.AddAlgorithmsRepository(info);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
/// <summary>
/// 修改算法
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public async Task<Response<bool>> UpdateAlgorithmsRepository(LasaAlgorithmsRepository info)
{
var result = new Response<bool>();
try
{
result = await _app.UpdateAlgorithmsRepository(info);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
/// <summary>
/// 删除算法
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public async Task<Response<bool>> DeleteAlgorithmsRepository(string id)
{
var result = new Response<bool>();
try
{
result = await _app.DeleteAlgorithmsRepository(id);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
/// <summary>
/// 获取算法列表
/// </summary>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<Response<PageInfo<List<LasaAlgorithmsRepository>>>> GetAlgorithmsRepositoryList(int page, int limit, string key)
{
var result = new Response<PageInfo<List<LasaAlgorithmsRepository>>>();
try
{
result = await _app.GetPageList(page, limit, key);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.Message;
}
return result;
}
}
}
Loading…
Cancel
Save