#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;
}
}
}