using HL_FristAidPlatform_Help; using HL_FristAidPlatform_IDataBase; using HL_FristAidPlatform_Models; using SqlSugar; namespace HL_FristAidPlatform_DataBase { /// /// 通知、消息 /// public class T_Service_NoticeDB : BaseDB, IT_Service_Notice { public SqlSugarClient db = GetClient(); /// /// 增加一条数据 /// public T_Service_Notice Add(T_Service_Notice model) { return db.Insertable(model).IgnoreColumns(it => new { it.GUID }).ExecuteReturnEntity(); } /// /// 更新一条数据 /// public bool Update(T_Service_Notice model) { return db.Updateable(model).ExecuteCommand() == 0 ? false : true; } /// /// 删除一条数据 /// public bool Delete(long ID) { return db.Deleteable(it => it.ID == ID).ExecuteCommand() == 0 ? false : true; ; } /// /// 获取分页列表 /// /// 起始页 /// 每页大小 /// 消息类型编号 /// 阅读状态 /// 用户编号 /// 查询关键词 /// public TableModel GetPageList(int pageIndex, int pageSize, long noticeTypeID, int readState, long userID, string keyWord) { int TotalNumber = 0; TableModel t = new TableModel(); var listMode = db.Queryable((Notice, Receiving, NoticeType) => new object[] { JoinType.Left,Receiving.NoticeID==Notice.ID, JoinType.Left,Notice.TypeID==NoticeType.ID, }).Where((Notice, Receiving, NoticeType) => Notice.DeleteFlag == 0).WhereIF(userID > 0, (Notice, Receiving, NoticeType) => Receiving.UserID == userID).WhereIF(noticeTypeID > 0, (Notice, Receiving, NoticeType) => Notice.TypeID == noticeTypeID).WhereIF(readState != -1, (Notice, Receiving, NoticeType) => Receiving.ReadState == readState).WhereIF(!string.IsNullOrEmpty(keyWord), (Notice, Receiving, NoticeType) => Notice.Content.Contains(keyWord) || NoticeType.TypeName.Contains(keyWord)) .Select((Notice, Receiving, NoticeType) => new T_Service_NoticeModel { ID = Notice.ID, GUID = Notice.GUID.ToString(), Content = Notice.Content, TypeID = Notice.TypeID, IsSendSMS = Notice.IsSendSMS, CreatorID = Notice.CreatorID, Creator = Notice.Creator, CreationDate = Notice.CreationDate, DeleteFlag = Notice.DeleteFlag, TypeName = NoticeType.TypeName, ReadState = Receiving.ReadState, ReadStateCase = Receiving.ReadState.ToString(), FirstReadingTime = Receiving.FirstReadingTime, TotalReading = Receiving.TotalReading, }).OrderBy(Notice => Notice.CreationDate, OrderByType.Desc).ToPageList(pageIndex, pageSize, ref TotalNumber); t.Code = 0; t.PageCount = listMode.Count; t.TotalNumber = TotalNumber; t.Data = listMode; t.Msg = "成功"; return t; } /// /// 获得前几行数据 /// public T_Service_Notice Get(long ID) { return db.Queryable().First(it => it.ID == ID); } /// /// 根据用户编号和阅读表示获取消息列表 /// /// 用户编号 /// 阅读标识-1全部0未读1已读 /// 前多少条 /// public TableModel GetListByUserID(long userID, int readState, int topNumber) { TableModel t = new TableModel(); //取指定条数 if (topNumber > 0) { var listMode = db.Queryable((Notice, Receiving, NoticeType) => new object[] { JoinType.Left,Notice.ID==Receiving.NoticeID, JoinType.Left,Notice.TypeID==NoticeType.ID, }) .Where((Notice, Receiving, NoticeType) => Receiving.UserID == userID && Notice.DeleteFlag == 0) .WhereIF(readState != -1, (Notice, Receiving, NoticeType) => Receiving.ReadState == readState) .Select((Notice, Receiving, NoticeType) => new T_Service_NoticeModel { ID = Notice.ID, GUID = Notice.GUID.ToString(), PatientGuid = Notice.PatientGuid, Content = Notice.Content, TypeID = Notice.TypeID, IsSendSMS = Notice.IsSendSMS, CreatorID = Notice.CreatorID, Creator = Notice.Creator, CreationDate = Notice.CreationDate, DeleteFlag = Notice.DeleteFlag, TypeName = NoticeType.TypeName, ReadState = Receiving.ReadState, ReadStateCase = Receiving.ReadState.ToString(), FirstReadingTime = Receiving.FirstReadingTime, TotalReading = Receiving.TotalReading, }).Take(topNumber).OrderBy((Notice) => Notice.CreationDate, OrderByType.Desc).ToList(); t.Code = 0; t.TotalNumber = listMode.Count; t.Data = listMode; t.Msg = "成功"; return t; } //取所有 else { var listMode = db.Queryable((Notice, Receiving, NoticeType) => new object[] { JoinType.Left,Notice.ID==Receiving.NoticeID, JoinType.Left,Notice.TypeID==NoticeType.ID, }) .Where((Notice, Receiving, NoticeType) => Receiving.UserID == userID && Notice.DeleteFlag == 0) .WhereIF(readState != -1, (Notice, Receiving, NoticeType) => Receiving.ReadState == readState) .Select((Notice, Receiving, NoticeType) => new T_Service_NoticeModel { ID = Notice.ID, GUID = Notice.GUID.ToString(), Content = Notice.Content, TypeID = Notice.TypeID, IsSendSMS = Notice.IsSendSMS, CreatorID = Notice.CreatorID, Creator = Notice.Creator, CreationDate = Notice.CreationDate, DeleteFlag = Notice.DeleteFlag, TypeName = NoticeType.TypeName, ReadState = Receiving.ReadState, ReadStateCase = Receiving.ReadState.ToString(), FirstReadingTime = Receiving.FirstReadingTime, TotalReading = Receiving.TotalReading, }).OrderBy((Notice) => Notice.CreationDate, OrderByType.Desc).ToList(); t.Code = 0; t.TotalNumber = listMode.Count; t.Data = listMode; t.Msg = "成功"; return t; } } } }