#region using System.Collections.Generic; using System.Data; using CSFramework.DB; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Interfaces; using CSFrameworkV5.Interfaces.InterfaceModels; using CSFrameworkV5.Models.DbEntity; #endregion namespace CSFrameworkV5.DataAccess { public class dalAdvancedFilter : dalBase, IBridge_AdvancedFilter { /// /// 构造器 /// /// 当前用户登录信息 public dalAdvancedFilter(Loginer user) : base(user) { } public bool Delete(string userID, string configName) { var sql = $"DELETE FROM sys_AdvancedFilterConfig WHERE Account={_Database.ParamSymboName}Account AND Name={_Database.ParamSymboName}Name;"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("Account", userID); cmd.AddParam("Name", configName); var i = DatabaseProvider.SystemDatabase.ExecuteCommand(cmd.Command); return i == 1; } public bool Exists(string userID, string configName) { var sql = $"SELECT COUNT(1) FROM sys_AdvancedFilterConfig WHERE Account={_Database.ParamSymboName}Account AND Name={_Database.ParamSymboName}Name;"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("Account", userID); cmd.AddParam("Name", configName); var o = DatabaseProvider.SystemDatabase.ExecuteScalar(cmd.Command); return ConvertEx.ToInt(o) > 0; } public List GetConfig(string userID) { var sql = $"SELECT * FROM sys_AdvancedFilterConfig WHERE Account={_Database.ParamSymboName}Account ORDER BY CreateDate DESC;"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("Account", userID); var dt = DatabaseProvider.SystemDatabase.GetTable(cmd.Command, "sys_AdvancedFilterConfig"); var list = new List(); foreach (DataRow R in dt.Rows) { var o = new MyConfigData(); o.AllFields = GetFromByte((byte[])R["AllFields"]); o.AllSelectedFields = GetFromByte((byte[])R["AllSelectedFields"]); o.BusinessName = ConvertEx.ToString(R["BusinessName"]); o.CreateDate = ConvertEx.ToDateTimeEx(R["CreateDate"]); o.isid = ConvertEx.ToInt(R["isid"]); o.Name = ConvertEx.ToString(R["Name"]); o.SQL = ConvertEx.ToString(R["SQL"]); list.Add(o); } return list; } public bool Post(MyConfigData data) { var model = new sys_AdvancedFilterConfig { Account = data.UserID, Name = data.Name, BusinessName = data.BusinessName, CreateDate = data.CreateDate, SQL = data.SQL, AllFields = ZipTools.CompressionArrayList(data.AllFields), AllSelectedFields = ZipTools.CompressionArrayList(data.AllSelectedFields) }; //代码重构:202106 var update = new DbDataUpdate(DatabaseProvider.SystemDatabase); var ok = update.AddObject(model, "isid"); return ok; } private List GetFromByte(byte[] bs) { var result = new List(); var list = ZipTools.DecompressionArrayList(bs); foreach (FieldNameDef F in list) result.Add(F); return result; } } }