示例#1
0
        /// <summary>
        /// 获取报警消息列表
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        public Task <IApiResult> GetMessageList(P_Message.P_GetMessageList arg)
        {
            return(Task.Run(() =>
            {
                IApiResult ar = new IApiResult();
                try
                {
                    using (DAL.CarRentEntities db = new CarRentEntities())
                    {
                        var query = from m in db.ExceptionMessage
                                    join d in db.Devices
                                    on m.DeviceID equals d.DeviceID
                                    join u in db.Users
                                    on d.UserID equals u.UserID
                                    where m.Deleted == 0
                                    select new R_Message.GetMessageListPage_Result.GetMessageListPage_List
                        {
                            Created = m.Created ?? default(DateTime),
                            DeviceName = d.DeviceName,
                            UserID = u.UserID,
                            UserName = u.UserName,
                            ExceptionID = m.ExceptionID,
                            PhoneNum = d.PhoneNum,
                            Message = m.Message,
                            SerialNumber = d.SerialNumber
                        };
                        if (arg.userid != null)
                        {
                            query = query.Where(q => q.UserID == arg.userid);
                        }
                        if (arg.start_date != null)
                        {
                            query = query.Where(q => q.Created >= arg.start_date);
                        }
                        if (arg.end_date != null)
                        {
                            query = query.Where(q => q.Created <= arg.end_date);
                        }
                        if (!string.IsNullOrEmpty(arg.keyword))
                        {
                            query = query.Where(q => q.DeviceName.Contains(arg.keyword) || q.SerialNumber.Contains(arg.keyword) || q.PhoneNum.Contains(arg.keyword));
                        }
                        int total = query.Count();

                        // p=1 , pagesize=20    (p - 1) * pagesize = 0
                        var index = (arg.p - 1) * arg.pagesize;
                        query = query.OrderBy(p => p.Created).Skip(index).Take(arg.pagesize);
                        var list = query.ToList();
                        list.ForEach((s) => { s.RowIndex = ++index; });
                        ar.message = $"查询到{total}条数据.";
                        ar.result = new {
                            list = list,
                            pages = total % arg.pagesize == 0 ? total / arg.pagesize : total / arg.pagesize + 1,
                            // pages = Math.Ceiling(Convert.ToDecimal(total / arg.pagesize)),
                            total = total
                        };
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(this, ex);
                    ar.code = StatusCode.error;
                    ar.message = ex.Message;
                }
                return ar;
            }));
        }
示例#2
0
 public async Task <IApiResult> GetMessageList([FromUri] P_Message.P_GetMessageList pars)
 {
     return(await ApiAsync(pars, new BLL.MessageManager.Message().GetMessageList));
 }