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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#region
 
using System;
using System.Data;
using CSFramework.DB;
using CSFrameworkV5.Common;
using CSFrameworkV5.Core;
using CSFrameworkV5.Interfaces;
using CSFrameworkV5.Models;
 
#endregion
 
namespace CSFrameworkV5.DataAccess
{
    /// <summary>
    ///     消息中心
    /// </summary>
    public class dalMessageCenter : dalBase, IBridge_MessageCenter
    {
        public dalMessageCenter(Loginer loginer) : base(loginer)
        {
        }
 
        public void Broadcast(string message, string messageType)
        {
            var m = new sys_Message
            {
                Message = message,
                MessageType = messageType,
                PublishDate = DateTime.Now
            };
 
            var db = new DbDataUpdate(DatabaseProvider.SystemDatabase);
            db.AddObject(m, "isid");
        }
 
        public bool DeleteBroadcast(int isid)
        {
            var sql =
                $"DELETE FROM sys_Message WHERE isid={_Database.ParamSymboName}isid";
            var cmd = _Database.CreateCommand(sql);
            cmd.AddParam("isid", isid);
            return DatabaseProvider.SystemDatabase
                .ExecuteCommand(cmd.Command) == 1;
        }
 
        public bool DeleteMessage(string messageId)
        {
            var sql =
                $"DELETE FROM sys_MSG_Queue WHERE MessageID={_Database.ParamSymboName}MessageID";
            var cmd = _Database.CreateCommand(sql);
            cmd.AddParam("MessageID", messageId);
            return DatabaseProvider.SystemDatabase
                .ExecuteCommand(cmd.Command) == 1;
        }
 
        public DataTable GetBroadcast()
        {
            var sql = "SELECT * FROM sys_Message ORDER BY PublishDate DESC";
            return DatabaseProvider.SystemDatabase.GetTable(sql, "sys_Message");
        }
 
        public string GetBroadcastMessage()
        {
            var cmd =
                DatabaseProvider.SystemDatabase.CreateSqlProc(
                    "usp_GetBroadcastMessage");
            var o = DatabaseProvider.SystemDatabase.ExecuteScalar(cmd.Command);
            return ConvertEx.ToString(o);
        }
 
        public DataTable GetMessage(string account)
        {
            var sp = _Database.CreateSqlProc("usp_GetMessageByUser");
            sp.AddParam("Account", DbType.String, account);
            return DatabaseProvider.SystemDatabase.GetTable(sp.Command,
                "sys_MSG_Queue");
        }
 
        public DataTable GetMessageTopDays(int days)
        {
            var cmd =
                DatabaseProvider.SystemDatabase.CreateSqlProc(
                    "usp_GetMessageByDays");
            cmd.AddParam("Days", days);
            return DatabaseProvider.SystemDatabase.GetTable(cmd.Command,
                "sys_MSG_Queue");
        }
 
        public void MakeRead(string messageID, string account)
        {
            var m = new sys_MSG_Read
            {
                AccountID = account,
                MessageID = messageID,
                ReadTime = DateTime.Now
            };
 
            var db = new DbDataUpdate(DatabaseProvider.SystemDatabase);
            db.AddObject(m, "isid");
        }
 
        public void SendMessage(string message, int accountGroupType,
            string accountOrGroup)
        {
            var m = new sys_MSG_Queue
            {
                AccountOrGroupID = accountOrGroup,
                AccountOrGroupType = char.Parse(accountGroupType.ToStringEx()),
                Description = "",
                Message = message,
                MessageID = Guid.NewGuid().ToStringEx(),
                MessageType = "1",
                SendTime = DateTime.Now,
                SendUser = _Loginer.Account
            };
 
            var db = new DbDataUpdate(DatabaseProvider.SystemDatabase);
            db.AddObject(m, "isid");
        }
    }
}