1.修复多账套对接时报工切换账套不生效(严重bug)
2.切换底层逻辑,增加外部增加数据源的接口 3.增加缓存,减少频繁登录导致可能存在的突发数据库连接异常
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Microsoft.Data.Sqlite;
|
||||
using SqlSugar;
|
||||
using UFIDA.U8.Framework.Api.Common.Unit.GM;
|
||||
using UFIDA.U8.Framework.Api.ControlObject.Models;
|
||||
|
||||
namespace UFIDA.U8.Framework.Api.Unit
|
||||
{
|
||||
/// <summary>
|
||||
/// 公共帮助类
|
||||
/// </summary>
|
||||
public static class CommUnit
|
||||
{
|
||||
/// <summary>
|
||||
/// 读取对应配置
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetConfig(string key)
|
||||
{
|
||||
return ConfigurationManager.AppSettings[key];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 解密
|
||||
/// </summary>
|
||||
/// <param name="val"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetDecrypt(string val)
|
||||
{
|
||||
return GMUtil.SM2Decrypt(GetConfig("PrivateKey"), val);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加密
|
||||
/// </summary>
|
||||
/// <param name="val"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetEncrypt(string val)
|
||||
{
|
||||
return GMUtil.SM2Encrypt(GetConfig("PublicKey"), val);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取数据库配置信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="Exception"></exception>
|
||||
public static ConnectionConfig GetConnectionConfig()
|
||||
{
|
||||
if (Enum.TryParse<DbType>(GetConfig("DbType"), true, out var dbType))
|
||||
{
|
||||
var connStr = GetDecrypt(GetConfig("ConnectionString"));
|
||||
|
||||
var path = $"{AppDomain.CurrentDomain.BaseDirectory}{connStr}";
|
||||
|
||||
|
||||
var liteConn = new SqliteConnectionStringBuilder()
|
||||
{
|
||||
DataSource = path
|
||||
};
|
||||
|
||||
var conn = new ConnectionConfig()
|
||||
{
|
||||
DbType = dbType,
|
||||
ConnectionString = liteConn.ConnectionString,
|
||||
ConfigId = "0",
|
||||
IsAutoCloseConnection = true,
|
||||
MoreSettings = new ConnMoreSettings()
|
||||
{
|
||||
IsWithNoLockQuery = true
|
||||
}
|
||||
};
|
||||
|
||||
return conn;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("请维护数据库类型");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取连接对象
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static SqlSugarClient GetDbClient()
|
||||
{
|
||||
var db = new SqlSugarClient(CommUnit.GetConnectionConfig());
|
||||
|
||||
return db;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取登录参数
|
||||
/// </summary>
|
||||
/// <param name="cAccId"></param>
|
||||
/// <param name="bAP"></param>
|
||||
/// <param name="pDate"></param>
|
||||
/// <returns></returns>
|
||||
public static async Task<LoginParamter> GetLoginParamter(string cAccId,bool bAP=false,string pDate="")
|
||||
{
|
||||
var db = new SqlSugarClient(CommUnit.GetConnectionConfig());
|
||||
|
||||
var account=await db.Queryable<SysU8AccountConfig>().FirstAsync(a => a.Status == StatusEnum.Enable && a.cAccountNo == cAccId);
|
||||
|
||||
if (account != null)
|
||||
{
|
||||
var param=new LoginParamter()
|
||||
{
|
||||
cSrv = account.cSrv,
|
||||
pAccId = account.cAcc_DataSource,
|
||||
pDate = string.IsNullOrWhiteSpace(pDate)?$"{DateTime.Today:yyyy-MM-dd}":pDate,
|
||||
pPassword = string.IsNullOrWhiteSpace(account.cPassword)?"":GetDecrypt(account.cPassword),
|
||||
pYearId = string.IsNullOrWhiteSpace(pDate) ? $"{DateTime.Today.Year}" :$"{DateTime.Parse(pDate).Year}",
|
||||
pSubId = bAP ? "AP" : "DP",
|
||||
pUserId = account.cUser_Id
|
||||
};
|
||||
|
||||
return param;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user