新框架PDA后端(祈禧6月初版本)
南骏 池
3 天以前 fca0719af6948fe8fa1e4f094f8e7dba339c7428
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
using NewPdaSqlServer.DB;
using NewPdaSqlServer.entity;
using SqlSugar;
 
namespace NewPdaSqlServer.service.@base;
 
public class MessageCenterManager : Repository<MessageCenter>
{
    //当前类已经继承了 Repository 增、删、查、改的方法
 
    public (List<MessageCenter> item, int TotalCount) GetPushFailedPage(
        MessageCenter query)
    {
        var totalCount = 0;
        var messageCenters = Db.Queryable<MessageCenter>()
            .Where(s => s.Result == query.DealWith
                        && s.Seq == 1 && s.Title != null
                        && s.DealWith == query.DealWith)
            .OrderByDescending(s => s.CreateDate)
            .ToPageList(query.PageIndex, query.Limit, ref totalCount);
 
        return (messageCenters, totalCount);
    }
 
    //查看是否有未处理的消息
    public int IsShow(MessageCenter query)
    {
        return Context.Queryable<MessageCenter>()
            .Where(it =>
                it.Result == 0 && it.Status == 1 &&
                it.Seq == 1 && it.Title != null)
            .WhereIF(query.isShow == 1, it => it.DealWith == 0)
            .Count();
    }
 
    //将消息设置为已读的
    public int UpdateRead(MessageCenter query)
    {
        return Db.Updateable<MessageCenter>()
            .SetColumns(s => s.DealWith == 1)
            .SetColumns(s => s.UpdateBy == query.UpdateBy)
            .SetColumns(s =>
                s.UpdateDate == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
            .Where(s => s.Guid == query.Guid)
            .ExecuteCommand();
    }
 
 
    public int save(MessageCenter entity)
    {
        entity.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        entity.Method = "POST";
        return Db.Insertable(entity).ExecuteReturnIdentity();
    }
 
    public bool SetError(MessageCenter entity)
    {
        entity.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        entity.Method = "POST";
        entity.Result = 0;
        entity.DealWith = 0;
        entity.Status = 1;
        return base.Insert(entity);
    }
 
    //获取所有没有成功的请求
    public List<MessageCenter> ErrorMsg()
    {
        return Context.Queryable<MessageCenter>()
            .GroupBy(a => new
            {
                a.TableName, a.Pid, a.Title, a.PageName
            })
            .Where(a =>
                a.DealWith == 0 && a.Status == 0 && a.Result == 0 &&
                a.Title == null)
            .Select<MessageCenter>(a => new MessageCenter
            {
                TableName = a.TableName,
                Pid = a.Pid,
                Title = a.Title,
                PageName = a.PageName,
                Count = SqlFunc.AggregateCount(a.Guid)
            }).ToList();
    }
    //根据几种情况更新  保持页面id是固定的
 
 
    //前台重新发送
    public int ResetUpdate(MessageCenter entity)
    {
        return UseTransaction(db =>
        {
            return db.Updateable<MessageCenter>()
                .SetColumns(a => a.Data == entity.Data)
                .SetColumns(a => a.Result == entity.Result)
                .SetColumns(a => a.ResultData == entity.ResultData)
                .SetColumns(a => a.Status == entity.Status)
                .SetColumns(a => a.DealWith == entity.DealWith)
                .SetColumnsIF(!string.IsNullOrEmpty(entity.UpdateBy),
                    a => a.UpdateBy == entity.UpdateBy)
                .SetColumnsIF(!string.IsNullOrEmpty(entity.UpdateDate),
                    a => a.UpdateDate == entity.UpdateDate)
                .Where(a => a.Guid == entity.Guid)
                .ExecuteCommand();
        });
    }
 
    public int[] getBadge()
    {
        var count = Db.Queryable<MessageCenter>()
            .Where(s => s.Result == 0 && s.Status == 1
                                      && s.Seq == 1 && s.Title != null).Count();
 
        var count1 = Db.Queryable<MessageCenter>()
            .Where(s => s.Result == 1 && s.Status == 1
                                      && s.Seq == 1 && s.Title != null).Count();
 
        return [count, count1];
    }
}