1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#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
    {
        /// <summary>
        ///     构造器
        /// </summary>
        /// <param name="user">当前用户登录信息</param>
        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<MyConfigData> 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<MyConfigData>();
            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<FieldNameDef> GetFromByte(byte[] bs)
        {
            var result = new List<FieldNameDef>();
            var list = ZipTools.DecompressionArrayList(bs);
            foreach (FieldNameDef F in list) result.Add(F);
 
            return result;
        }
    }
}