/// <summary> /// 编辑 /// </summary> /// <param name="model"></param> /// <returns></returns> public override Result Edit(Message model) { var model1 = dal.Get(model.ID); if (model1 == null) { return(new Result(300, "数据不存在!")); } var sendStatus = DicHelper.Get("MessageSendType", "Send"); if (model1.Status != null && sendStatus != null && model1.Status.ID == sendStatus.ID) { return(new Result(300, "无法编辑发送状态的消息!")); } model1.Comment = model.Comment; model1.Content = model.Content; model1.Receives.Clear(); foreach (var i in model.Receives) { model1.Receives.Add(new MessageReceive { ID = 0, Message = model1, User = i.User, Status = DicHelper.Get("MessageReceiveType", "Unread") }); } model1.Title = model.Title; return(base.Edit(model1)); }
/// <summary> /// 添加 /// </summary> /// <param name="model"></param> /// <returns></returns> public override Result Add(Message model) { model.AddTime = DateTime.Now; model.AddUser = AdminHelper.Admin; model.ID = 0; model.Status = DicHelper.Get("MessageSendType", "Draft"); model.Type = DicHelper.Get("MessageType", "UserMessage"); foreach (var i in model.Receives) { i.Message = model; i.Status = DicHelper.Get("MessageReceiveType", "Unread"); } return(base.Add(model)); }
/// <summary> /// 阅读 /// </summary> /// <param name="ID"></param> /// <returns></returns> public DataResult Read(int ID) { var model = dal.Get(ID); if (model == null) { return(new DataResult(300, "数据获取失败!", null)); } if (model.ReadTime == null) { model.ReadTime = DateTime.Now; model.Status = DicHelper.Get("MessageReceiveType", "Read"); base.Edit(model); } return(new DataResult(200, "数据获取成功!", model)); }
/// <summary> /// 删除 /// </summary> /// <param name="ID"></param> /// <returns></returns> public override Result Delete(int ID) { var model = dal.Get(ID); if (model == null) { return(new Result(300, "数据获取失败!")); } model.Status = DicHelper.Get("MessageReceiveType", "Delete"); var result = dal.Edit(model); if (result) { return(new Result(200, "删除成功!")); } else { return(new Result(300, "删除失败!")); } }
/// <summary> /// 发送 /// </summary> /// <param name="ID"></param> /// <returns></returns> public Result Send(int ID) { var model = dal.Get(ID); if (model == null) { return(new Result(300, "数据不存在!")); } model.Status = DicHelper.Get("MessageSendType", "Send"); model.SendTime = DateTime.Now; var result = dal.Edit(model); if (result) { return(new Result(200, "发送成功!")); } else { return(new Result(300, "发送失败!")); } }
/// <summary> /// 列表 /// </summary> /// <param name="firstResult"></param> /// <param name="maxResults"></param> /// <param name="name"></param> /// <returns></returns> public ListResult <MessageReceive> List(int firstResult, int maxResults, string name = "") { // MessageReceive查询条件 var query1 = Restrictions.Eq("User", AdminHelper.Admin); var query2 = Restrictions.Eq("Status", DicHelper.Get("MessageReceiveType", "Delete")); var query3 = Restrictions.Not(query2); var query4 = Restrictions.And(query1, query3); // Message查询条件 var query5 = Restrictions.IsNotNull("SendTime"); if (!string.IsNullOrEmpty(name)) { var query6 = Restrictions.Like("Title", name, MatchMode.Anywhere); var query7 = Restrictions.Like("Content", name, MatchMode.Anywhere); var query8 = Restrictions.Or(query6, query7); query5 = Restrictions.And(query5, query8); } var total = dal.CreateCriterion().Add(query4).CreateCriteria("Message").Add(query5).SetProjection(Projections.RowCount()).UniqueResult <int>(); var list = dal.CreateCriterion().Add(query4).CreateCriteria("Message").Add(query5).AddOrder(Order.Desc("ID")).SetFirstResult(firstResult).SetMaxResults(maxResults).List <MessageReceive>(); return(new ListResult <MessageReceive>(200, "数据获取成功!", total, list)); }