Files
tnb.server/ProductionMgr/Tnb.ProductionMgr/RedisDataService.cs
qianjiawei e60dc32456 redis页面
2023-11-10 16:03:45 +08:00

69 lines
3.1 KiB
C#

using System.Reflection;
using JNPF.Common.Cache;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using JNPF.VisualDev;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Tnb.Common.Redis;
using Tnb.ProductionMgr.Entities;
using Tnb.ProductionMgr.Interfaces;
namespace Tnb.ProductionMgr
{
/// <summary>
/// 数据采集
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)]
[Route("api/[area]/[controller]/[action]")]
[OverideVisualDev(ModuleId)]
public class RedisDataService : IOverideVisualDevService, IRedisDataService, IDynamicApiController, ITransient
{
private const string ModuleId = "30062789830933";
private readonly RedisData _redisData;
private readonly ISqlSugarRepository<RedisReadConfig> _repository;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public RedisDataService(RedisData redisData, ISqlSugarRepository<RedisReadConfig> repository)
{
_redisData = redisData;
_repository = repository;
OverideFuncs.CreateAsync = Create;
}
private async Task<dynamic> Create(VisualDevModelDataCrInput input)
{
RedisReadConfig redisReadConfig = new RedisReadConfig();
redisReadConfig.id = SnowflakeIdHelper.NextId();
redisReadConfig.dev_name = input.data[nameof(RedisReadConfig.dev_name)].ToString();
redisReadConfig.tag_name = input.data[nameof(RedisReadConfig.tag_name)].ToString();
redisReadConfig.data = input.data[nameof(RedisReadConfig.data)].ToString();
redisReadConfig.event_type = int.Parse(input.data[nameof(RedisReadConfig.event_type)].ToString()!);
redisReadConfig.data_type = int.Parse(input.data[nameof(RedisReadConfig.data_type)].ToString()!);
redisReadConfig.check_type = int.Parse(input.data[nameof(RedisReadConfig.check_type)].ToString()!);
redisReadConfig.enabled = int.Parse(input.data[nameof(RedisReadConfig.enabled)].ToString()!);
await _repository.AsSugarClient().Insertable(redisReadConfig).ExecuteCommandAsync();
return await Task.FromResult(true);
}
/// <summary>
/// 根据机号获取重量
/// </summary>
[HttpPost]
public async Task<dynamic> GetWeight(string device, string jihao)
{
bool flag = await _redisData.HashExist(device, jihao);
if (!flag)
{
throw Oops.Bah("没有找到" + device + "----" + jihao + "的数据");
}
string data = await _redisData.GetHash(device, jihao);
JObject? res = JsonConvert.DeserializeObject<JObject>(data);
decimal result = res != null && res["Value"] != null ? decimal.Parse(res["Value"]!.ToString()) : throw Oops.Bah("数据格式错误");
return result;
}
}
}