using AUTS.Domain.Entities;
using AUTS.Services.Enums;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AUTS.Domain.Application;
using MySql.Data.MySqlClient;
using AUTS.Services.Manager;
namespace AUTS.Services.Cache
{
///
/// 缓存
///
public static class CacheHelp
{
#region 公共库缓存键名
private static readonly string sysDBListKey = "sysManage_DBList";//库列表
private static readonly string sysCompanyListKey = "sysManage_CompanyList";//客户列表
private static readonly string sysUserAuthListKey = "sysManage_UserAuthList";//用户权限列表
private static readonly string sysDBCofinStrListKey = "sysManage_DBCofinStrList";//库连接串列表
private static readonly string sysCurrencyListKey = "sysManage_CurrencyList";//库连接串列表
private static readonly string sysSearchKeyKey = "sysManage_SearchKeyList";//库搜索关键词列表
private static readonly string sysUserOperationKey = "UserOperation_";//用户当前选择库
private static readonly string sysDBOrderStatusListKey = "sysManage_OrderStatusList";//客户库订单状态列表
private static readonly string sysDBOUserListKey = "sysUserList";//客户库订单状态列表
private static readonly string sysDBSnListKey = "sysSNlist";//订单表
#endregion
#region 客户库缓存键名
private static readonly string userDBCustomerListKey = "_CustomerList";//客户库客户列表
private static readonly string userDBProjectListKey = "_ProjectList";//客户库产品列表
private static readonly string userDBPLineListKey = "_PLineList";//客户库产线列表
private static readonly string userDBOrderListKey = "_OrderList";//客户库订单列表
private static readonly string userDBStationListKey = "_StationList";//客户库工作站列表
private static readonly string userDBOrderInternalListKey = "_OrderInternalList";//客户库内部订单列表
private static readonly string userDBSnRulesListKey = "_SnRulesList";//客户库内部订单列表
private static readonly string userDBSnProjectTypeKey = "_ProjectType";//客户库产品类型列表
private static readonly string userDBSnRepairTypesKey = "_RepairTypes";//维修类型列表
private static readonly string userDBSnRepairReasonKey = "_SnRepairReason";//维修原因列表
private static readonly string userDBSnRepairResultsKey = "_RepairResults";//维修结果列表
#endregion
#region Hash缓存前缀
private static readonly string sysServiceListKey = "sysManage_Hash_ServiceList";//Hash缓存前缀
#endregion
#region 公共库部分
#region 数据库列表
#region 获取写入数据库列表
///
/// 获取写入数据库列表
///
/// 返回数据库列表
public static List GetSysDBList()
{
return BaseCacheHelp.GetCache(sysDBListKey, () =>
{
var list = new List();
using (var db = new Uts_ManageEntities())
{
//取所有
list = db.TBL_UTS_Manage_DBList.ToList();
}
return list;
});
}
#endregion
#region 清除数据库列表缓存
///
/// 清除数据库列表缓存
///
public static void ClearSysDBList()
{
BaseCacheHelp.ClearCache(sysDBListKey);
}
#endregion
#endregion
#region 厂家列表
#region 获取写入厂家列表
///
/// 获取写入厂家列表
///
/// 返回数据库列表
public static List GetCompanyList()
{
return BaseCacheHelp.GetCache(sysCompanyListKey, () =>
{
var list = new List();
using (var db = new Uts_ManageEntities())
{
//取所有
list = db.TBL_UTS_Manage_Company.ToList();
}
return list;
});
}
#endregion
#region 清除写入厂家列表缓存
///
/// 清除写入厂家列表缓存
///
public static void ClearCompanyList()
{
BaseCacheHelp.ClearCache(sysCompanyListKey);
}
#endregion
#endregion
#region 用户权限列表
#region 获取写入用户权限列表
///
/// 获取写入用户权限列表
///
/// 返回数据库列表
public static List GetUserAuthList()
{
return BaseCacheHelp.GetCache(sysUserAuthListKey, () =>
{
var list = new List();
using (var db = new Uts_ManageEntities())
{
//取所有
list = db.TBL_UTS_Manage_UserAuth_Operation.ToList();
}
return list;
});
}
#endregion
#region 清除用户权限列表缓存
///
/// 清除用户权限列表缓存
///
public static void ClearUserAuthList()
{
BaseCacheHelp.ClearCache(sysUserAuthListKey);
}
#endregion
#endregion
#region 数据库连接串列表
#region 获取写入数据库连接串列表
///
/// 获取写入厂家列表
///
/// 返回数据库列表
public static List GetDBCofinStrList()
{
return BaseCacheHelp.GetCache(sysDBCofinStrListKey, () =>
{
//取所有
var dbList = GetSysDBList();
var dbServer = Tool.ConfigHelper.GetConfigString("DBServer");//数据库服务器
string dbPort = Tool.ConfigHelper.GetConfigString("DBPort");//服务器端口
var dbCofinStrlist = new List();
foreach (var item in dbList)
{
MySql.Data.MySqlClient.MySqlConnectionStringBuilder one = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder
{
Server = dbServer,
Database = item.DatabaseName,//数据库名
UserID = item.DatabaseUser,//用户名
Password = item.DatabasePassword,//密码
Port = UInt16.Parse(dbPort),
Pooling = true
};
var cofinStr = one.ConnectionString;
dbCofinStrlist.Add(new Domain.Application.DBCofinStrModel
{
ID = item.ID,
CofinStr = cofinStr,
});
}
return dbCofinStrlist;
});
}
#endregion
#region 清除数据库连接串列表缓存
///
/// 清除数据库连接串列表缓存
///
public static void ClearSysDBListDBCofinStrList()
{
BaseCacheHelp.ClearCache(sysDBCofinStrListKey);
}
#endregion
#endregion
#region 搜索关键词列
#region 获取搜索关键词列表
///
/// 获取写入厂家列表
///
/// 返回数据库列表
public static List GetSearchKeyList()
{
return BaseCacheHelp.GetCache(sysSearchKeyKey, () =>
{
var list = new List();
using (var db = new Uts_ManageEntities())
{
//取所有
list = db.TBL_UTS_Manage_SearchKey.ToList();
}
return list;
});
}
#endregion
#region 清除搜索关键词列缓存
///
/// 清除写入厂家列表缓存
///
public static void ClearSearchKeyList()
{
BaseCacheHelp.ClearCache(sysSearchKeyKey);
}
#endregion
#endregion
///
/// 币种列表
///
///
public static List GetSysCurrencyList()
{
return BaseCacheHelp.GetCache(sysCurrencyListKey, () =>
{
var dbCofinStrlist = new List();
dbCofinStrlist.Add(new Domain.Sys_Currency
{
CurrencyName = "人民币",
Currency = "CNY",
CurrencySymbol = "¥",
});
dbCofinStrlist.Add(new Domain.Sys_Currency
{
CurrencyName = "美元",
Currency = "USD",
CurrencySymbol = "$",
});
dbCofinStrlist.Add(new Domain.Sys_Currency
{
CurrencyName = "欧元",
Currency = "EUR",
CurrencySymbol = "€",
});
dbCofinStrlist.Add(new Domain.Sys_Currency
{
CurrencyName = "日元",
Currency = "JPY",
CurrencySymbol = "¥",
});
dbCofinStrlist.Add(new Domain.Sys_Currency
{
CurrencyName = "新台币",
Currency = "TWD",
CurrencySymbol = "NT",
});
return dbCofinStrlist;
});
}
///
/// 用户当前选择库
///
///
///
///
public static int GetUserOperation(string userName, int dbID = 0)
{
if (dbID == 0)
{
return BaseCacheHelp.GetCache(sysUserOperationKey + userName, () =>
{
return dbID;
});
}
else
{
BaseCacheHelp.SetCache(sysUserOperationKey + userName, () =>
{
return dbID;
});
return dbID;
}
}
#endregion
public static DataTable GetTodayData(string key,DataTable data = null)
{
return BaseCacheHelp.GetCache(key, () =>
{
return data;
});
}
#region 客户库部分
#region 厂家列表
#region 获取写入客户库厂家列表
///
/// 获取写入客户库厂家列表
///
///
public static List GetUserDBCustomerList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBCustomerListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_Customer").GetList();
return list;
});
}
return null;
}
#endregion
#region 清除客户库厂家列表缓存
///
/// 清除客户库厂家列表缓存
///
public static void ClearUserDBCustomerList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBCustomerListKey);
}
}
#endregion
#endregion
#region 获取写入维修类型列表
public static List GetUserDBSnRepairTypesList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBSnRepairTypesKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_RepairTypes").GetList();
return list;
});
}
return null;
}
#endregion
#region 获取维修原因列表
public static List GetUserDBRepairReasonList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBSnRepairReasonKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_RepairReason").GetList();
return list;
});
}
return null;
}
#endregion
#region 获取维修产品结果列表
public static List GetUserDBRepairResultsList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBSnRepairResultsKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_RepairResults").GetList();
return list;
});
}
return null;
}
#endregion
#region 产品列表
#region 获取写入客户库产品列表
///
/// 获取写入客户库产品列表
///
///
public static List GetUserDBProjectList()
{
var onDB = Manager.Users.GerOnUserCustomer();
string strwhere = string.Empty;
int userid = Manager.Users.Umodel.ID;
int dbid = GetUserOperation(Users.Umodel.UserName);//后期修改回来
if (SqlConnect.ProjectData(userid, dbid).ToString() != "")
{
string[] str = SqlConnect.ProjectData(userid, dbid).ToString().Split(',');
foreach (var item in str)
{
strwhere += "ID= " + item + " or ";
}
strwhere = strwhere.Substring(0, strwhere.Length - 3);
}
if (onDB != null)
{
if (strwhere != "")
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBProjectListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_Project").GetList(strwhere);
return list;
});
}
else
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBProjectListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_Project").GetList();
return list;
});
}
}
return null;
}
#endregion
public static List GetUserDBPSnlist()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + sysDBSnListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_SnList").GetList();
return list;
});
}
return null;
}
#region 清除客户库产品列表缓存
///
/// 清除客户库产品列表缓存
///
public static void ClearUserDBProjectList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBProjectListKey);
}
}
public static void ClearUserDBProjectList(string DbName)
{
BaseCacheHelp.ClearCache(DbName + userDBProjectListKey);
}
#endregion
#endregion
#region 产线列表
#region 获取写入客户产线列表
///
/// 获取写入客户产线列表
///
///
public static List GetUserDBPLineList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBPLineListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_ProductionLine").GetList();
return list;
});
}
return null;
}
#endregion
#region 清除客户库产线列表缓存
///
/// 清除客户库产线列表缓存
///
public static void ClearUserDBPLineList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBPLineListKey);
}
}
#endregion
#endregion
#region 产品类型列表
#region 获取写入客户产品类型列表
///
/// 获取写入订单列表
///
///
public static List GetUserDBProjectTypeList(string dbName = null)
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache((dbName ?? onDB.DatabaseName) + userDBSnProjectTypeKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_ProductTypes").GetList();
return list;
});
}
return null;
}
#endregion
#region 清除客户库产品类型列表缓存
///
/// 清除客户库订单列表缓存
///
public static void ClearUserDBProjectTypeList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBSnProjectTypeKey);
}
}
#endregion
#endregion
#region 订单列表
#region 获取写入客户订单列表
///
/// 获取写入客户订单列表
///
///
public static List GetUserDBOrderList(string dbName = null)
{
string strwhere = string.Empty;
int userid = Manager.Users.Umodel.ID;
int dbid = GetUserOperation(Users.Umodel.UserName);
if (SqlConnect.ProjectData(userid, dbid).ToString() != "")
{
string[] str = SqlConnect.ProjectData(userid, dbid).ToString().Split(',');
foreach (var item in str)
{
strwhere += "ProductID= " + item + " or ";
}
strwhere = strwhere.Substring(0, strwhere.Length - 3);
}
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
if (strwhere != "")
{
return BaseCacheHelp.GetCache((dbName ?? onDB.DatabaseName) + userDBOrderListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_Orders").GetList(strwhere);
if (list == null)
return new List();
return list;
});
}
else
{
return BaseCacheHelp.GetCache((dbName ?? onDB.DatabaseName) + userDBOrderListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_Orders").GetList();
if (list == null)
return new List();
return list;
});
}
}
return null;
}
#endregion
public static List GeiUserList()
{
return BaseCacheHelp.GetCache(sysDBOUserListKey, () =>
{
var list = new List();
using (var db = new Uts_ManageEntities())
{
list = db.TBL_UTS_Manage_User.ToList();
}
return list;
});
}
#region 清除客户库订单列表缓存
///
/// 清除客户库订单列表缓存
///
public static void ClearUserDBOrderList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBOrderListKey);
}
}
#endregion
public static void ClearProductTypes()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBSnProjectTypeKey);
}
}
#endregion
#region 订单状态
#region 获取写入客户库订单状态列表
///
/// 获取写入客户库订单状态列表
///
///
public static List GetUserDBOrderStatusLis()
{
return BaseCacheHelp.GetCache(sysDBOrderStatusListKey, () =>
{
//取所有
var list = new DBUtility.Common.DALHelper("TBL_UTS_Manage_OrderStatus").GetList();
return list;
});
}
#endregion
#region 清除客户库订单状态列表缓存
///
/// 清除客户库订单状态列表缓存
///
public static void ClearUserDBOrderStatusLis()
{
BaseCacheHelp.ClearCache(sysDBOrderStatusListKey);
}
#endregion
#endregion
#region 工作站列表
#region 获取写入客户工作站列表
///
/// 获取写入客户工作站列表
///
///
public static List GetUserDBStationList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBStationListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_StationList").GetList();
if (list != null)
list = list.Where(e => e.IsValid == 1).OrderBy(x => x.ArtworkOrder).ToList();
return list;
});
}
return null;
}
public static List GetUserDBStationList(System.Web.HttpContext context)
{
var onDB = Manager.Users.GerOnUserCustomer(context);
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBStationListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_StationList").GetList().Where(e => e.IsValid == 1).ToList();
return list;
});
}
return null;
}
#endregion
#region 清除客户库工作站列表缓存
///
/// 清除客户库工作站列表缓存
///
public static void ClearUserDBStationList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBStationListKey);
}
}
public static void ClearUserDBStationList(string DbName)
{
BaseCacheHelp.ClearCache(DbName + userDBStationListKey);
}
public static void ClearUserDBOrderList(string DbName)
{
BaseCacheHelp.ClearCache(DbName + userDBOrderListKey);
}
public static void ClearUserDBOrderIList(string DbName)
{
BaseCacheHelp.ClearCache(DbName + userDBOrderInternalListKey);
}
#endregion
#endregion
#region 内部订单列表
#region 获取写入内部订单列表
///
/// 获取写入客户订单列表
///
///
public static List GetUserDBOrderInternalList()
{
string strwhere = string.Empty;
int userid = Manager.Users.Umodel.ID;
int dbid = GetUserOperation(Users.Umodel.UserName);
if (SqlConnect.ProjectData(userid, dbid).ToString() != "")
{
string[] str = SqlConnect.ProjectData(userid, dbid).ToString().Split(',');
foreach (var item in str)
{
strwhere += "ProductID= " + item + " or ";
}
strwhere = strwhere.Substring(0, strwhere.Length - 3);
}
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
if(strwhere != "")
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBOrderInternalListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_OrderInternal").GetList(strwhere);
if (list == null)
return new List();
return list;
});
}
else
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBOrderInternalListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_OrderInternal").GetList();
if (list == null)
return new List();
return list;
});
}
}
return null;
}
#endregion
#region 清除客户库内部单列表缓存
///
/// 清除客户库内部单列表缓存
///
public static void ClearUserDBOrderInternalList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBOrderInternalListKey);
}
}
#endregion
#endregion
#region 条码规则列表
#region 获取写入条码规则列表
///
/// 获取写入条码规则列表
///
///
public static List GetUserDBSnRulesList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
return BaseCacheHelp.GetCache(onDB.DatabaseName + userDBSnRulesListKey, () =>
{
//取所有
var list = new DBUtility.Custom.DALHelperCustom("TBL_SnRules").GetList();
return list;
});
}
return null;
}
#endregion
#region 清除客户库条码规则列表缓存
///
/// 清除客户库条码规则列表缓存
///
public static void ClearUserDBSnRulesList()
{
var onDB = Manager.Users.GerOnUserCustomer();
if (onDB != null)
{
BaseCacheHelp.ClearCache(onDB.DatabaseName + userDBSnRulesListKey);
}
}
#endregion
#endregion
#endregion
#region Hash缓存
#region 服务Hash列表(UDP通讯)
#region 获取写入服务Hash列表
///
/// 获取写入服务Hash列表
///
/// 返回数据库列表
public static TBL_UTS_Manage_DataServiceList GetHashService(int sid)
{
return BaseCacheHelp.GetHashCache(sysServiceListKey, sid.ToString(), () =>
{
var mdoel = new TBL_UTS_Manage_DataServiceList();
using (var db = new Uts_ManageEntities())
{
//取所有
mdoel = db.TBL_UTS_Manage_DataServiceList.SingleOrDefault(x => x.ID == sid);
}
return mdoel;
});
}
#endregion
#region 写入服务Hash
///
/// 写入服务Hash
///
///
public static void SetHashService(TBL_UTS_Manage_DataServiceList model)
{
BaseCacheHelp.SetHashCache(sysServiceListKey, model.ID.ToString(), model);
}
#endregion
#region 获取服务Hash列表
public static List GetHashServiceList()
{
if (BaseCacheHelp.CheckKey(sysServiceListKey))
{
return BaseCacheHelp.GetHashAllCache(sysServiceListKey).Values.OrderBy(x => x.ID).ToList();
}
else
{
var list = new List();
using (var db = new Uts_ManageEntities())
{
//取所有
list = db.TBL_UTS_Manage_DataServiceList.OrderBy(x => x.ID).ToList();
Dictionary dic = list.ToDictionary(key => key.ID.ToString(), value => value);
BaseCacheHelp.SetHashCache(sysServiceListKey, dic);
}
return list;
}
}
#endregion
#endregion
#endregion
}
}