增加新的wifi上报接口
This commit is contained in:
parent
4e9bf32859
commit
50a66a813d
|
|
@ -8,7 +8,7 @@ using Waste.Domain;
|
|||
namespace Waste.Application
|
||||
{
|
||||
public class ResultList : W_Result
|
||||
{
|
||||
{
|
||||
/// <summary>
|
||||
/// 商户名称
|
||||
/// </summary>
|
||||
|
|
@ -191,4 +191,34 @@ namespace Waste.Application
|
|||
/// </summary>
|
||||
public bool IsWeight { get; set; } = false;
|
||||
}
|
||||
/// <summary>
|
||||
/// wifi模块上传的数据包体
|
||||
/// </summary>
|
||||
public class WifiPackage
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备机器码
|
||||
/// </summary>
|
||||
public string sn { get; set; }
|
||||
/// <summary>
|
||||
/// 桶大小
|
||||
/// </summary>
|
||||
public string size { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 垃圾桶编号
|
||||
/// </summary>
|
||||
public string trashcode { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 垃圾类别
|
||||
/// </summary>
|
||||
public string WasteType { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 重量,KG
|
||||
/// </summary>
|
||||
public string Weight { get; set; } = "0";
|
||||
/// <summary>
|
||||
/// 是否为心跳包
|
||||
/// </summary>
|
||||
public bool IsHeart { get; set; } = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,5 +30,11 @@ namespace Waste.Application
|
|||
/// <param name="myPackage"></param>
|
||||
/// <returns></returns>
|
||||
Task InsertResultBy4GAsync(nMyPackage myPackage);
|
||||
/// <summary>
|
||||
/// wifi模块测量结果增加
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
Task InsertResultByWifiAsync(WifiPackage data);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ namespace Waste.Application
|
|||
NetWeight = x.NetWeight,
|
||||
Registration = x.Registration,
|
||||
CreateTime = x.CreateTime,
|
||||
PostStatus= -1
|
||||
PostStatus = -1
|
||||
})
|
||||
.Mapper((it, cache) =>
|
||||
{
|
||||
|
|
@ -116,13 +116,13 @@ namespace Waste.Application
|
|||
it.DeviceEcode = dev.Ecode;
|
||||
it.DeviceAddress = dev.Address;
|
||||
}
|
||||
var allres = cache.Get(list =>
|
||||
{
|
||||
var ids = list.Select(e => e.Id).ToList();
|
||||
return dbClient.Queryable<W_ResultExt>().Where(e => ids.Contains(e.ResultId)).ToList();
|
||||
});
|
||||
var allres = cache.Get(list =>
|
||||
{
|
||||
var ids = list.Select(e => e.Id).ToList();
|
||||
return dbClient.Queryable<W_ResultExt>().Where(e => ids.Contains(e.ResultId)).ToList();
|
||||
});
|
||||
var res = allres.FirstOrDefault(e => e.ResultId == it.Id);
|
||||
if(res != null)
|
||||
if (res != null)
|
||||
{
|
||||
it.PostStatus = res.Status;
|
||||
}
|
||||
|
|
@ -136,6 +136,53 @@ namespace Waste.Application
|
|||
limit = param.limit
|
||||
};
|
||||
}
|
||||
/// <summary>
|
||||
/// wifi模块测量结果增加
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
public async Task InsertResultByWifiAsync(WifiPackage data)
|
||||
{
|
||||
//查找设备
|
||||
var device = await dbClient.Queryable<W_Device>().FirstAsync(x => data.sn == x.Ecode);
|
||||
// _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
|
||||
if (device == null)
|
||||
{
|
||||
//记录日志
|
||||
_loggerService.AddLogger($"设备未找到,参数:{data.ToJson()}", 3);
|
||||
}
|
||||
var devicedata = await dbClient.Queryable<W_DeviceData>().FirstAsync(x => x.DeviceId == device.Id);
|
||||
var resultid = IDGen.NextID();
|
||||
DateTime time = DateTime.Now;
|
||||
//检查设备是否为今天第一次上报
|
||||
bool isfrist = false;
|
||||
if (device.LastHeartTime.HasValue && device.LastHeartTime.Value.Date != DateTime.Now.Date)
|
||||
{
|
||||
isfrist = true;
|
||||
}
|
||||
//记录数据
|
||||
await dbClient.Ado.UseStoredProcedure().ExecuteCommandAsync("Proc_InsertResult", new
|
||||
{
|
||||
deviceid = device.Id,
|
||||
businessid = device.Businessid,
|
||||
resultid = resultid,
|
||||
imei = devicedata.IMSI,
|
||||
iccid = devicedata.ICCID,
|
||||
imsi = devicedata.IMSI,
|
||||
time = time,
|
||||
latitude = "",
|
||||
longitude = "",
|
||||
sign = "",
|
||||
city = "",
|
||||
area = data.trashcode,
|
||||
wastetype = data.WasteType,
|
||||
weigth = data.Weight,
|
||||
isheart = data.IsHeart,
|
||||
tare = device.Tare,
|
||||
isfrist = isfrist
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 新的4G模块测量结果增加
|
||||
|
|
@ -207,7 +254,7 @@ namespace Waste.Application
|
|||
{
|
||||
//查找设备
|
||||
var device = await dbClient.Queryable<W_Device>().FirstAsync(x => myPackage.IMEI == x.Ecode);
|
||||
// _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
|
||||
// _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
|
||||
if (device == null)
|
||||
{
|
||||
//记录日志
|
||||
|
|
@ -255,7 +302,7 @@ namespace Waste.Application
|
|||
myPackage.Area = Convert.ToInt32(typeHex, 16).ToString();
|
||||
}
|
||||
//000F000002.16进制
|
||||
// var areaHex = Convert.ToHexString(areaBytes);
|
||||
// var areaHex = Convert.ToHexString(areaBytes);
|
||||
|
||||
}
|
||||
//记录数据
|
||||
|
|
|
|||
|
|
@ -207,4 +207,52 @@ namespace Waste.Application.ThirdApiInfo
|
|||
/// </summary>
|
||||
public string ExceptionInfo { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// wifi模块发送的数据
|
||||
/// </summary>
|
||||
public class WifiRequestC2SDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 参数,包含sn和测量数据
|
||||
/// </summary>
|
||||
public string @params { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// wifi模块发送的数据解析
|
||||
/// </summary>
|
||||
public class WifiRequestS2SDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备机器码
|
||||
/// </summary>
|
||||
public string sn { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 包头,固定为A9
|
||||
/// </summary>
|
||||
public string Header { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// 分隔符,固定为00
|
||||
/// </summary>
|
||||
public string splitstr { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 解密出的16进制数据
|
||||
/// </summary>
|
||||
public string data { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// 数据是否验证通过
|
||||
/// </summary>
|
||||
public bool ischecked { get; set; } = true;
|
||||
/// <summary>
|
||||
/// 是否为心跳包
|
||||
/// </summary>
|
||||
public bool IsHeart { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 结果集
|
||||
/// </summary>
|
||||
public byte[] databyte { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,5 +44,11 @@ namespace Waste.Application.ThirdApiInfo
|
|||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
Task UpdateVersionAsync(DeviceVerS2SDto data);
|
||||
/// <summary>
|
||||
/// 通过ailink wifi模式发送的数据
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
Task<object> WifiPostAsync(WifiRequestC2SDto data);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -299,5 +299,15 @@ namespace Waste.Application.ThirdApiInfo
|
|||
}
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过ailink wifi模式发送的数据
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<object> WifiAsync(WifiRequestC2SDto data)
|
||||
{
|
||||
return await _openService.WifiPostAsync(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
using Furion;
|
||||
using Furion.DependencyInjection;
|
||||
using Furion.DistributedIDGenerator;
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
using Nirvana.Common;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
|
|
@ -30,13 +31,18 @@ namespace Waste.Application.ThirdApiInfo
|
|||
private readonly ISuZhouService _suZhouService;
|
||||
private readonly ILoggerService _loggerService;
|
||||
private readonly ICapPublisher _capBus;
|
||||
public OpenService(ISqlSugarRepository<W_Device> sqlSugarRepository, ISuZhouService suZhouService, ILoggerService loggerService, ICapPublisher capPublisher)
|
||||
private readonly IDistributedCache _cahce;
|
||||
private readonly IResultService _resultService;
|
||||
|
||||
public OpenService(ISqlSugarRepository<W_Device> sqlSugarRepository, ISuZhouService suZhouService, ILoggerService loggerService, ICapPublisher capPublisher, IDistributedCache distributedCache, IResultService resultService)
|
||||
{
|
||||
repository = sqlSugarRepository;
|
||||
dbClient = repository.Context;
|
||||
_suZhouService = suZhouService;
|
||||
_loggerService = loggerService;
|
||||
_capBus = capPublisher;
|
||||
_cahce = distributedCache;
|
||||
_resultService = resultService;
|
||||
}
|
||||
/// <summary>
|
||||
/// 更新上报状态
|
||||
|
|
@ -376,5 +382,159 @@ namespace Waste.Application.ThirdApiInfo
|
|||
{
|
||||
await _capBus.PublishAsync("device.service.updatever", data);
|
||||
}
|
||||
/// <summary>
|
||||
/// 通过ailink wifi模式发送的数据
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<object> WifiPostAsync(WifiRequestC2SDto data)
|
||||
{
|
||||
//记录发送过来的数据
|
||||
_loggerService.AddLogger($"wifi发送原始数据,data={data.ToJson()}", 3);
|
||||
var successdata = Encoding.UTF8.GetBytes("A901019A");
|
||||
var returndata = new
|
||||
{
|
||||
status = "1",
|
||||
data = Convert.ToBase64String(successdata)
|
||||
};
|
||||
//数据解析
|
||||
var result = AnalyProto(data);
|
||||
if (!result.ischecked)
|
||||
{
|
||||
return returndata;
|
||||
}
|
||||
if (result.databyte.Length == 0)
|
||||
{
|
||||
return returndata;
|
||||
}
|
||||
//小于14则表示结束
|
||||
if (result.databyte.Length < 14)
|
||||
{
|
||||
var databytes = await _cahce.GetAsync(result.sn);
|
||||
if (databytes != null && databytes.Length > 0)
|
||||
{
|
||||
byte[] newval = new byte[databytes.Length + result.databyte.Length];
|
||||
databytes.CopyTo(newval, 0);
|
||||
result.databyte.CopyTo(newval, databytes.Length);
|
||||
var datastr = Encoding.GetEncoding("gb2312").GetString(newval);
|
||||
datastr.Replace(@"\r\n", "");
|
||||
var arr = datastr.Split('@');
|
||||
string wastetype = arr[2];//垃圾类型
|
||||
string weight = arr[3];//重量,kg
|
||||
string trashno = string.Empty; //垃圾桶编号
|
||||
string size = string.Empty;//桶大小
|
||||
var sizebytes = Encoding.Default.GetBytes(arr[0]);
|
||||
size = Convert.ToHexString(sizebytes);
|
||||
var trashbytes = Encoding.Default.GetBytes(arr[1]);
|
||||
//长度为5个字节,后三位为垃圾桶编号(16进制)
|
||||
if (trashbytes.Length == 5)
|
||||
{
|
||||
var typeBytes = new byte[3];
|
||||
for (var i = 0; i < 3; i++)
|
||||
{
|
||||
typeBytes[i] = trashbytes[i + 2];
|
||||
}
|
||||
var typeHex = Convert.ToHexString(typeBytes);
|
||||
trashno = Convert.ToInt32(typeHex, 16).ToString();
|
||||
}
|
||||
await _resultService.InsertResultByWifiAsync(new WifiPackage
|
||||
{
|
||||
sn = result.sn,
|
||||
WasteType = wastetype,
|
||||
Weight = weight,
|
||||
trashcode = trashno,
|
||||
size = size,
|
||||
IsHeart = result.IsHeart
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var val = await _cahce.GetAsync(result.sn);
|
||||
var time = new DistributedCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(60));
|
||||
if (val != null && val.Length > 0)
|
||||
{
|
||||
byte[] newval = new byte[val.Length + result.databyte.Length];
|
||||
val.CopyTo(newval, 0);
|
||||
result.databyte.CopyTo(newval, val.Length);
|
||||
await _cahce.SetAsync(result.sn, newval, time);
|
||||
}
|
||||
else
|
||||
{
|
||||
await _cahce.SetAsync(result.sn, result.databyte, time);
|
||||
}
|
||||
}
|
||||
return returndata;
|
||||
}
|
||||
/// <summary>
|
||||
/// wifi数据解析
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
private WifiRequestS2SDto AnalyProto(WifiRequestC2SDto data)
|
||||
{
|
||||
WifiRequestS2SDto dto = new WifiRequestS2SDto();
|
||||
//检查是否为有效的base64数据
|
||||
if (!AESEncrypt.IsBase64(data.@params))
|
||||
{
|
||||
dto.data = data.@params;
|
||||
return dto;
|
||||
}
|
||||
//数据为base64加密
|
||||
byte[] resultByte = Convert.FromBase64String(data.@params);
|
||||
dto.data = BytesToHexStr(resultByte);
|
||||
//574D07884A1882FCC2FE346BA1D80E 00 A903000D0A1A9A
|
||||
_loggerService.AddLogger($"wifi结果推送,解析出的数据:{dto.data}", 3);
|
||||
int len = resultByte.Count();//数据总长度
|
||||
//长度格式是否正确,固定长度为36位
|
||||
if (len < 23)
|
||||
{
|
||||
return dto;
|
||||
}
|
||||
//前15个字节为sn。中间以 00 分隔。后面为测量结果数据 A9 03 00 0D 0A 1A 9A
|
||||
int i = 0;
|
||||
byte[] snbyte = new byte[15];
|
||||
for (i = 0; i < 15; i++)
|
||||
{
|
||||
snbyte[i] = resultByte[i];
|
||||
}
|
||||
dto.sn = BytesToHexStr(snbyte).Replace(" ", "");
|
||||
dto.splitstr = ByteToHexStr(resultByte[i]);
|
||||
i++;
|
||||
dto.Header = ByteToHexStr(resultByte[i]);//固定为A9
|
||||
if (dto.Header != "A9") //固定为A9
|
||||
{
|
||||
return dto;
|
||||
}
|
||||
string heartstr = ByteToHexStr(resultByte[i + 2]);//是否为测量数据
|
||||
if (heartstr != "00")
|
||||
{
|
||||
dto.IsHeart = true;
|
||||
}
|
||||
dto.ischecked = true;
|
||||
string datalenstr = ByteToHexStr(resultByte[i + 1]); //数据体长度
|
||||
int datalen = HextToDec(datalenstr).ToInt();
|
||||
i += 3;
|
||||
dto.databyte = new byte[datalen - 1];
|
||||
for (int j = 0; j < datalen; j++)
|
||||
{
|
||||
if (i < len - 2)
|
||||
{
|
||||
dto.databyte[j] = resultByte[i];
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return dto;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// 字节转16进制
|
||||
/// </summary>
|
||||
/// <param name="bt"></param>
|
||||
/// <returns></returns>
|
||||
private string ByteToHexStr(byte bt)
|
||||
{
|
||||
return ((int)bt).ToString("X2");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1752,6 +1752,36 @@
|
|||
是否为有效测量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Waste.Application.WifiPackage">
|
||||
<summary>
|
||||
wifi模块上传的数据包体
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.WifiPackage.sn">
|
||||
<summary>
|
||||
设备机器码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.WifiPackage.size">
|
||||
<summary>
|
||||
桶大小
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.WifiPackage.trashcode">
|
||||
<summary>
|
||||
垃圾桶编号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.WifiPackage.WasteType">
|
||||
<summary>
|
||||
垃圾类别
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.WifiPackage.Weight">
|
||||
<summary>
|
||||
重量,KG
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Waste.Application.IResultService">
|
||||
<summary>
|
||||
投放记录
|
||||
|
|
@ -1778,6 +1808,13 @@
|
|||
<param name="myPackage"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.IResultService.InsertResultByWifiAsync(Waste.Application.WifiPackage)">
|
||||
<summary>
|
||||
wifi模块测量结果增加
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Waste.Application.ResultInfos.ResultAppService">
|
||||
<summary>
|
||||
投放记录
|
||||
|
|
@ -1809,6 +1846,13 @@
|
|||
<param name="param"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.ResultService.InsertResultByWifiAsync(Waste.Application.WifiPackage)">
|
||||
<summary>
|
||||
wifi模块测量结果增加
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.ResultService.InsertResultBy4GAsync(Waste.Application.nMyPackage)">
|
||||
<summary>
|
||||
新的4G模块测量结果增加
|
||||
|
|
@ -2577,6 +2621,56 @@
|
|||
错误信息
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Waste.Application.ThirdApiInfo.WifiRequestC2SDto">
|
||||
<summary>
|
||||
wifi模块发送的数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestC2SDto.params">
|
||||
<summary>
|
||||
参数,包含sn和测量数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Waste.Application.ThirdApiInfo.WifiRequestS2SDto">
|
||||
<summary>
|
||||
wifi模块发送的数据解析
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.sn">
|
||||
<summary>
|
||||
设备机器码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.Header">
|
||||
<summary>
|
||||
包头,固定为A9
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.splitstr">
|
||||
<summary>
|
||||
分隔符,固定为00
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.data">
|
||||
<summary>
|
||||
解密出的16进制数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.ischecked">
|
||||
<summary>
|
||||
数据是否验证通过
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.IsHeart">
|
||||
<summary>
|
||||
是否为心跳包
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.databyte">
|
||||
<summary>
|
||||
结果集
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Waste.Application.ThirdApiInfo.IOpenService">
|
||||
<summary>
|
||||
设备对接接口
|
||||
|
|
@ -2617,6 +2711,13 @@
|
|||
<param name="data"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.ThirdApiInfo.IOpenService.WifiPostAsync(Waste.Application.ThirdApiInfo.WifiRequestC2SDto)">
|
||||
<summary>
|
||||
通过ailink wifi模式发送的数据
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Waste.Application.ThirdApiInfo.OpenAppService">
|
||||
<summary>
|
||||
开放数据
|
||||
|
|
@ -2678,6 +2779,13 @@
|
|||
<param name="ecode"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.ThirdApiInfo.OpenAppService.WifiAsync(Waste.Application.ThirdApiInfo.WifiRequestC2SDto)">
|
||||
<summary>
|
||||
通过ailink wifi模式发送的数据
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Waste.Application.ThirdApiInfo.OpenService">
|
||||
<summary>
|
||||
设备对接接口
|
||||
|
|
@ -2739,6 +2847,27 @@
|
|||
<param name="data"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.ThirdApiInfo.OpenService.WifiPostAsync(Waste.Application.ThirdApiInfo.WifiRequestC2SDto)">
|
||||
<summary>
|
||||
通过ailink wifi模式发送的数据
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.ThirdApiInfo.OpenService.AnalyProto(Waste.Application.ThirdApiInfo.WifiRequestC2SDto)">
|
||||
<summary>
|
||||
wifi数据解析
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.ThirdApiInfo.OpenService.ByteToHexStr(System.Byte)">
|
||||
<summary>
|
||||
字节转16进制
|
||||
</summary>
|
||||
<param name="bt"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Waste.Application.IWasteService.GetTypeListAsync(Nirvana.Common.QueryParams)">
|
||||
<summary>
|
||||
垃圾分类列表
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
<PackageReference Include="Furion.Extras.DatabaseAccessor.SqlSugar" Version="2.20.6" />
|
||||
<PackageReference Include="Furion.Extras.Logging.Serilog" Version="2.20.6" />
|
||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="2.20.6" />
|
||||
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="5.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ using Serilog;
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Waste.Core;
|
||||
|
||||
|
|
@ -70,12 +71,22 @@ namespace Waste.Web.Core
|
|||
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
|
||||
MyHttpContext.serviceCollection = services;
|
||||
#endregion
|
||||
//添加redis缓存
|
||||
services.AddStackExchangeRedisCache(options =>
|
||||
{
|
||||
// 连接字符串,这里也可以读取配置文件
|
||||
options.Configuration = "localhost";
|
||||
// 键名前缀
|
||||
options.InstanceName = "jt_";
|
||||
});
|
||||
//添加即时通讯
|
||||
// services.AddSignalR();
|
||||
}
|
||||
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||
{
|
||||
//启用 GB2312(按需)
|
||||
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
|
||||
app.UseSession();
|
||||
if (env.IsDevelopment())
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue