Browse Source

海豚云

master
wxd 1 month ago
parent
commit
40430026e5
  1. 16
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ThirdPushs/Hty/PushPeisResultPlugInsHty.cs
  2. 2
      src/Shentun.ColumnReferencePlugIns/Shentun.Peis.PlugIns.csproj
  3. 45
      src/Shentun.ColumnReferencePlugIns/ThirdPushs/Hty/PushPeisResultPlugInsBase.cs

16
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/ThirdPushs/Hty/PushPeisResultPlugInsHty.cs

@ -32,6 +32,7 @@ namespace Shentun.Peis.PlugIns.Extensions.ThirdPushs.Hty
public class PushPeisResultPlugInsHty : PushPeisResultPlugInsBase
{
public PushPeisResultPlugInsHty(Guid thirdInterfaceId) : base(thirdInterfaceId)
{
@ -62,6 +63,11 @@ namespace Shentun.Peis.PlugIns.Extensions.ThirdPushs.Hty
var pushBaseApi = InterfaceConfig.GetValue("Interface:PushBaseApi", "");
var columnReferenceId = InterfaceConfig.GetValue("Interface:ColumnReferenceId", "");
var token = GetThirdToken();
if (string.IsNullOrWhiteSpace(token))
{
throw new UserFriendlyException("获取token失败");
}
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
{
@ -126,11 +132,11 @@ namespace Shentun.Peis.PlugIns.Extensions.ThirdPushs.Hty
{
var constr = new pushHtyDataItemDto
{
dicValue = itemRow.reference_range_value.ToString(),
dicValue = itemRow.reference_range_value,
ordinary = 1,
p_value = itemRow.result.ToString(),
p_value = itemRow.result,
sysCode = itemCode.interface_code_value,
unit = itemRow.unit.ToString()
unit = itemRow.unit
};
var dcIndex = contents.Count + 1;
@ -148,7 +154,7 @@ namespace Shentun.Peis.PlugIns.Extensions.ThirdPushs.Hty
//推送信息
var formContent = new MultipartFormDataContent();
formContent.Add(new StringContent(_thirdToken), "token");
formContent.Add(new StringContent(token), "token");
formContent.Add(new StringContent("fbpc"), "urlFrom");
formContent.Add(new StringContent("-1"), "tmId");
formContent.Add(new StringContent(pushRequestJsonString, Encoding.UTF8, "application/json"), "pushData");
@ -159,7 +165,7 @@ namespace Shentun.Peis.PlugIns.Extensions.ThirdPushs.Hty
if (resultModel.stateMessage == "suc")
{
#region 更新人员状态
conn.Execute("update patient_register set is_push_third_result='Y' where id=@patient_register_id", new { patient_register_id = patientRegisterId });
#endregion
}

2
src/Shentun.ColumnReferencePlugIns/Shentun.Peis.PlugIns.csproj

@ -9,6 +9,8 @@
<ItemGroup>
<PackageReference Include="Dapper" Version="2.1.35" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.2.1" />
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
<PackageReference Include="Npgsql" Version="6.0.2" />

45
src/Shentun.ColumnReferencePlugIns/ThirdPushs/Hty/PushPeisResultPlugInsBase.cs

@ -1,4 +1,5 @@
using Dapper;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Configuration;
using Microsoft.Identity.Client;
using Newtonsoft.Json;
@ -23,7 +24,8 @@ namespace Shentun.Peis.PlugIns.ThirdPushs.Hty
//当前系统数据库地址
protected string? AppConnctionStr;
protected ThirdInterfaceDto? _thirdInterfaceDto;
protected string? _thirdToken;
private string? _thirdToken;
private readonly IMemoryCache _cache;
static PushPeisResultPlugInsBase()
{
@ -32,6 +34,7 @@ namespace Shentun.Peis.PlugIns.ThirdPushs.Hty
public PushPeisResultPlugInsBase(Guid thirdInterfaceId)
{
_cache = new MemoryCache(new MemoryCacheOptions());
AppConfig = new ConfigurationBuilder()
.SetBasePath(DirectoryHelper.GetAppDirectory()) // 设置基础路径为当前目录
@ -58,11 +61,13 @@ namespace Shentun.Peis.PlugIns.ThirdPushs.Hty
InterfaceConfig = configurationBuilder.Build();
}
GetThirdToken();
// GetThirdToken();
}
private void GetThirdToken()
protected string GetThirdToken()
{
if (!IsTokenValid())
{
var pushBaseApi = InterfaceConfig.GetValue("Interface:PushBaseApi", "");
var thirdLoginUser = InterfaceConfig.GetValue("Interface:ThirdLoginUser", "");
@ -79,13 +84,47 @@ namespace Shentun.Peis.PlugIns.ThirdPushs.Hty
if (resModel != null && resModel.state == "suc")
{
_thirdToken = resModel.token2;
SaveToken(_thirdToken);
}
else
{
throw new UserFriendlyException("获取token失败,检查配置的账户");
}
}
else
{
_thirdToken = GetToken();
}
return _thirdToken;
}
// 保存从其他系统获取的 Token
public void SaveToken(string token)
{
var cacheEntryOptions = new MemoryCacheEntryOptions()
.SetAbsoluteExpiration(TimeSpan.FromHours(1)) // 设置1小时过期
.SetPriority(CacheItemPriority.NeverRemove); // 避免被优先清除
_cache.Set("ExternalSystemToken", token, cacheEntryOptions);
}
// 获取 Token
public string GetToken()
{
_cache.TryGetValue("ExternalSystemToken", out string token);
return token;
}
// 检查 Token 是否有效
public bool IsTokenValid()
{
return _cache.TryGetValue("ExternalSystemToken", out _);
}
}
}
Loading…
Cancel
Save