示例#1
0
        public ActionResult List()
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var vm = new Models.SmsTo.List();

                vm.SendStatus = typeof(Code.EnumHelper.SmsSendStatus).ToItemList();
                vm.SendStatus.Insert(0, new SelectListItem {
                    Text = "==状态==", Value = "-999999"
                });

                var tb = from p in db.Table <Entity.tbSmsTo>()
                         select p;

                if (string.IsNullOrEmpty(vm.SearchText) == false)
                {
                    tb = tb.Where(d => d.Mobile.Contains(vm.SearchText));
                }

                if (vm.StatusId != -999999)
                {
                    tb = tb.Where(d => d.Status == vm.StatusId);
                }

                //开始日期
                if (string.IsNullOrEmpty(vm.DateSearchFrom))
                {
                    vm.DateSearchFrom = DateTime.Now.AddDays(-7).ToString(XkSystem.Code.Common.StringToDate);
                }
                //结束日期
                if (string.IsNullOrEmpty(vm.DateSearchTo))
                {
                    vm.DateSearchTo = DateTime.Now.ToString(XkSystem.Code.Common.StringToDate);
                }

                var fromDate = Convert.ToDateTime(vm.DateSearchFrom);
                var toDate   = Convert.ToDateTime(vm.DateSearchTo).AddDays(1);

                vm.SmsToList = (from p in tb
                                join m in db.Table <Entity.tbSms>() on p.tbSms.Id equals m.Id into n
                                from k in n.DefaultIfEmpty()
                                where p.SendDate >= fromDate && p.SendDate < toDate
                                orderby p.SendDate descending
                                select new Dto.SmsTo.List
                {
                    Id = p.Id,
                    Mobile = p.Mobile,
                    No = p.No,
                    Remark = p.Remark,
                    Retry = p.Retry,
                    SmsId = p.tbSms.Id,
                    SmsTitle = k == null ? "" : k.SmsTitle,
                    Status = p.Status,
                    SendDate = p.SendDate,
                    SysUserName = p.tbSysUser.UserName
                }).ToPageList(vm.Page);

                return(View(vm));
            }
        }
示例#2
0
        public ActionResult GetSmsToList(SmsSendRequestModel model)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var vm = new Models.SmsTo.List();
                var tb = (from p in db.TableRoot <Entity.tbSmsTo>()
                          where (p.Status == decimal.Zero || p.Status == -decimal.One) &&
                          p.tbTenant.Id == model.TenantId &&
                          p.tbTenant.IsDeleted == false &&
                          p.tbSms.PlanDate.Day == DateTime.Now.Day
                          select p);

                var tbSmsToList = (from p in tb
                                   join m in db.TableRoot <Entity.tbSms>() on p.tbSms.Id equals m.Id into n
                                   from k in n.DefaultIfEmpty()
                                   orderby p.SendDate
                                   select new Dto.SmsTo.List
                {
                    Id = p.Id,
                    Mobile = p.Mobile,
                    No = p.No,
                    Remark = p.Remark,
                    Retry = p.Retry,
                    SmsId = p.tbSms.Id,
                    SmsTitle = k == null ? "" : k.SmsTitle,
                    Status = p.Status,
                    SendDate = p.SendDate,
                    SysUserName = p.tbSysUser.UserName
                }).Take(50).ToList();

                return(Json(tbSmsToList));
            }
        }
示例#3
0
 public ActionResult List(Models.SmsTo.List vm)
 {
     return(Code.MvcHelper.Post(null, Url.Action("List", new
     {
         searchText = vm.SearchText,
         dateSearchFrom = vm.DateSearchFrom,
         dateSearchTo = vm.DateSearchTo,
         statusId = vm.StatusId,
         pageSize = vm.Page.PageSize,
         pageCount = vm.Page.PageCount,
         pageIndex = vm.Page.PageIndex
     })));
 }
示例#4
0
        public ActionResult Export()
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var file = System.IO.Path.GetTempFileName();
                var vm   = new Models.SmsTo.List();
                var tb   = from p in db.Table <Entity.tbSmsTo>()
                           select p;

                if (string.IsNullOrEmpty(vm.SearchText) == false)
                {
                    tb = tb.Where(d => d.Mobile.Contains(vm.SearchText));
                }

                if (vm.StatusId != -999999)
                {
                    tb = tb.Where(d => d.Status == vm.StatusId);
                }

                //开始日期
                if (string.IsNullOrEmpty(vm.DateSearchFrom))
                {
                    vm.DateSearchFrom = DateTime.Now.AddDays(-7).ToString(XkSystem.Code.Common.StringToDate);
                }
                //结束日期
                if (string.IsNullOrEmpty(vm.DateSearchTo))
                {
                    vm.DateSearchTo = DateTime.Now.ToString(XkSystem.Code.Common.StringToDate);
                }

                var fromDate = Convert.ToDateTime(vm.DateSearchFrom);
                var toDate   = Convert.ToDateTime(vm.DateSearchTo).AddDays(1);

                vm.SmsToList = (from p in tb
                                join m in db.Table <Entity.tbSms>() on p.tbSms.Id equals m.Id into n
                                from k in n.DefaultIfEmpty()
                                where p.SendDate >= fromDate && p.SendDate < toDate
                                orderby p.SendDate descending
                                select new Dto.SmsTo.List
                {
                    Id = p.Id,
                    Mobile = p.Mobile,
                    No = p.No,
                    Remark = p.Remark,
                    Retry = p.Retry,
                    SmsId = p.tbSms.Id,
                    SmsTitle = k == null ? "" : k.SmsTitle,
                    Status = p.Status,
                    SendDate = p.SendDate,
                    SysUserName = p.tbSysUser.UserName
                }).ToList();

                var dt = new System.Data.DataTable();
                dt.Columns.AddRange(new System.Data.DataColumn[]
                {
                    new System.Data.DataColumn("序号"),
                    new System.Data.DataColumn("手机号"),
                    new System.Data.DataColumn("发送时间"),
                    new System.Data.DataColumn("状态"),
                    new System.Data.DataColumn("重试次数"),
                    new System.Data.DataColumn("接收人员"),
                    new System.Data.DataColumn("短信内容"),
                    new System.Data.DataColumn("备注")
                });
                var index = 0;
                foreach (var a in vm.SmsToList)
                {
                    index++;
                    var dr = dt.NewRow();
                    dr["序号"]   = index;
                    dr["手机号"]  = a.Mobile;
                    dr["接收人员"] = a.SysUserName;
                    dr["发送时间"] = a.SendDate.ToString(XkSystem.Code.Common.StringToDateTime);
                    if (a.Status == decimal.Zero)
                    {
                        dr["状态"] = "未发送";
                    }
                    else if (a.Status == decimal.One)
                    {
                        dr["状态"] = "发送成功";
                    }
                    else if (a.Status == -decimal.One)
                    {
                        dr["状态"] = "失败";
                    }
                    dr["重试次数"] = a.Retry;
                    dr["短信内容"] = a.SmsTitle;
                    dr["备注"]   = a.Remark;
                    dt.Rows.Add(dr);
                }

                Code.NpoiHelper.DataTableToExcel(file, dt);

                if (string.IsNullOrEmpty(file) == false)
                {
                    return(File(file, Code.Common.DownloadType, Code.Common.ExportByExcel));
                }
                else
                {
                    return(View());
                }
            }
        }