操控平台后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
4.7 KiB

using System.ComponentModel;
using Admin.Bodk.Device.Entities.Dto;
using Admin.Bodk.Device.Entities.equipment;
using Admin.NET.Core;
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Mapster;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
3 months ago
using NewLife.Caching;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
namespace Admin.Bodk.Device.Services;
3 months ago
/// <summary>
/// 服务管理
/// </summary>
[ApiDescriptionSettings(Order = 2)]
3 months ago
public class SupportService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<Entities.Base> _baseRep;
private readonly SqlSugarRepository<Entities.Support> _supportRep;
3 months ago
private readonly ICache _cache;
public SupportService(SqlSugarRepository<Entities.Base> baseRep, SqlSugarRepository<Entities.Support> supportRep,
ICache cache)
{
_baseRep = baseRep;
_supportRep = supportRep;
3 months ago
_cache = cache;
}
3 months ago
/// <summary>
/// 获取检测信息列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("获取检测信息列表")]
3 months ago
[Authorize(AuthenticationSchemes =
JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)]
public async Task<SqlSugarPagedList<SupportOutput>> PostGetDetectionList(BaseInput input)
{
List<SupportOutput> items = new List<SupportOutput>();
3 months ago
items.Add(new SupportOutput()
{ State = "检测中", Name = "检测1", DetectionServiceId = "dd123323", DetectionServiceType = 0 });
items.Add(new SupportOutput()
{ State = "已完成", Name = "检测2", DetectionServiceId = "dd1233213", DetectionServiceType = 1 });
items.Add(new SupportOutput()
{ State = "已完成", Name = "检测3", DetectionServiceId = "dd1233213", DetectionServiceType = 1 });
return new SqlSugarPagedList<SupportOutput>() { Page = 1, PageSize = 20, Items = items, Total = 3 };
}
3 months ago
/// <summary>
/// 获取细胞服务列表
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("获取细胞服务列表")]
3 months ago
[Authorize(AuthenticationSchemes =
JwtBearerDefaults.AuthenticationScheme + "," + SignatureAuthenticationDefaults.AuthenticationScheme)]
public async Task<SqlSugarPagedList<CellOutput>> PostGetCellList(BaseInput input)
{
List<CellOutput> items = new List<CellOutput>();
3 months ago
var cache = _cache.Get<dynamic>("bodk:device:M9hjashdfkj863478236478:summary");
items.Add(new CellOutput()
{
Code = "BT00D0015314A", Activity = "98%", Temperature = -192.5, Humidity = "0.5%",
Density = "1*10^7个/ml", Capacity = "1.8ml", Type = 1, Location = "松山湖", LastOperationTime = null,
DeviceInfo = new DeviceInfo()
{
3 months ago
DeviceId = 23223232, PicUrl = "", LiquidNitrogenHeight = cache is null ? 180 : cache.LiquidHeight,
Temperature = cache is null ? -195.2 : cache.TankTopTemperature,
Address = "广东省东莞市松山湖园区科技二路宏远新智汇1栋",
3 months ago
Longitude =113.88596284379673 ,
Latitude = 22.961465648223214,
Humidity = cache is null ? "0.1%" : $"{cache?.CavityHumidity.ToString("0.0")}%",
3 months ago
Name = "M9_01", CellBaseInfo = new CellBaseInfo() { BaseName = "松山湖", BaseId = 13545 }
}
});
return new SqlSugarPagedList<CellOutput>() { Page = 1, PageSize = 20, Items = items, Total = 3 };
}
3 months ago
/// <summary>
/// 增加服务
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[UnitOfWork]
[ApiDescriptionSettings(Name = "Add"), HttpPost]
[DisplayName("增加服务")]
public async Task<long> AddSupport(SupportAddInput input)
{
3 months ago
if (input is null) throw Oops.Oh("参数不能为空");
var equipment = input.Adapt<Entities.Support>();
var newEquipment = await _supportRep.AsInsertable(equipment).ExecuteReturnEntityAsync();
// if (input?.TaskChainList is { Count: > 0 })
// {
// foreach (var taskChain in input.TaskChainList)
// {
// taskChain.EquipmentId = newEquipment.Id;
// await _taskChainRepository.AsInsertable(taskChain).ExecuteReturnEntityAsync();
// }
// }
return newEquipment.Id;
}
}