Files
U8API/UFIDA.U8.Framework.Api/Unit/CommUnit.cs
T
2024-12-15 14:01:58 +08:00

134 lines
4.0 KiB
C#

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.Entity;
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(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(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,
cAccId = account.cAcc_Id
};
return param;
}
return null;
}
}
}