public HttpResponseMessage Test() { var d = new RowNumModel <DoctorLearnViewModel>(); d.SearchParams = new DoctorLearnViewModel(); var ret = _iADDoctorService.GetDoctorLearn(d, true); var _filePath = HostingEnvironment.MapPath("/ExcelTemplate/" + "CatCityList.xlsx"); Workbook wb = new Workbook(_filePath); WorkbookDesigner book = new WorkbookDesigner(wb); book.SetDataSource("H", ret.Result); book.Process(); book.Workbook.Worksheets[0].Name = "222"; MemoryStream stream = new MemoryStream(); book.Workbook.Save(stream, SaveFormat.Xlsx); byte[] bytes = stream.ToArray(); var resp = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(bytes) }; resp.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-excel"); resp.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = $"{DateTime.Now.ToString("yyyyMMddHHmmsss")}{".xlsx"}" }; return(resp); }
/// <summary> /// 获取医生手动标签列表 /// </summary> /// <param name="tagGroup"></param> /// <returns></returns> public ReturnValueModel GetManualTagList(RowNumModel <TagGroupViewModel> rowNum) { ReturnValueModel rvm = new ReturnValueModel(); var list = from a in _rep.Where <TagInfo>(s => s.IsDeleted != 1 && s.TagType == "D2") select new { a.Id, a.TagName, a.CreateTime }; var total = list.Count(); var rows = list.OrderByDescending(s => s.CreateTime) .ToPaginationList(rowNum.PageIndex, rowNum.PageSize); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { total = total, rows = rows }; return(rvm); }
/// <summary> /// 系列课程-获取表列 /// </summary> /// <param name="rowNum"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetList(RowNumModel <SeriesCourses> rowNum, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var query = _rep.Where <SeriesCourses>(o => o.IsDeleted != 1); if (rowNum?.SearchParams != null) { if (!string.IsNullOrEmpty(rowNum?.SearchParams?.CourseTitle)) { query = query.Where(o => o.CourseTitle.Contains(rowNum.SearchParams.CourseTitle)); } } var total = query.Count(); var rows = query.OrderByDescending(o => o.CreateTime).ToPaginationList(rowNum.PageIndex, rowNum.PageSize); rvm.Success = true; rvm.Msg = ""; rvm.Result = new { total = total, rows = rows, }; return(rvm); }
/// <summary> /// 活跃趋势-打开次数 /// </summary> /// <param name="model"></param> /// <returns></returns> public ReturnValueModel GetOpenTimesList(RowNumModel <StatisticsTimeViewModel> model) { ReturnValueModel rvm = new ReturnValueModel(); var startTime = model.SearchParams.begin_date.AddSeconds(1.0); var endTime = model.SearchParams.end_date.AddDays(1.0).AddSeconds(-1.0); int IsVisotor = Convert.ToInt32(model.SearchParams.IsVistor ?? "0"); var allVisitList = _rep.Where <VisitTimes>(x => x.IsDeleted != 1 && x.VisitStart >= startTime && x.VisitStart <= endTime); var visitList = allVisitList.Where(x => x.Isvisitor == IsVisotor).ToList();//游客/非游客 var allvisitlistNumber = allVisitList?.Count() ?? 0; var visitlistNumber = visitList?.Count() ?? 0; var advTime = visitlistNumber == 0 ? 0 : visitList.Sum(s => s.StaySeconds) / visitlistNumber; rvm.Success = true; rvm.Msg = "success!"; rvm.Result = new { IsVisotor = IsVisotor == 0 ? "用户" : "游客", Count = visitlistNumber, PerCent = allvisitlistNumber == 0 ? 0 : (int)(((double)visitlistNumber / (double)allvisitlistNumber) * 100), AdvTime = advTime + "秒" }; return(rvm); }
/// <summary> /// 获取关键词列表 /// </summary> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetWordBlackLists(RowNumModel <WordBlackList> rowNum, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var list = _rep.Where <WordBlackList>(s => s.IsDeleted != 1); if (rowNum != null) { if (rowNum.SearchParams != null) { if (!string.IsNullOrEmpty(rowNum.SearchParams.Type)) { list = list.Where(s => s.Type == rowNum.SearchParams.Type); } if (!string.IsNullOrEmpty(rowNum.SearchParams.Words)) { list = list.Where(s => s.Words.Contains(rowNum.SearchParams.Words)); } } } var total = list.Count(); var rows = list.OrderBy(s => s.CreateTime).ToPaginationList(rowNum.PageIndex, rowNum.PageSize).ToList(); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { total, rows }; return(rvm); }
public ReturnValueModel AddVisitTimes(RowNumModel <VisitTimesViewModel> model, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); int isvisitor = 0; if (workUser == null || (string.IsNullOrEmpty(workUser.WxUser.Mobile))) { isvisitor = 1; } if (model != null) { TimeSpan ts = Convert.ToDateTime(model.SearchParams.VisitEnd) - Convert.ToDateTime(model.SearchParams.VisitStart); _rep.Insert(new VisitTimes() { Id = Guid.NewGuid().ToString(), UnionId = workUser?.WxUser.UnionId, WxuserId = workUser?.WxUser.Id, VisitStart = model.SearchParams.VisitStart, VisitEnd = model.SearchParams.VisitEnd, Isvisitor = isvisitor, StaySeconds = ts.Seconds, IsEnabled = 0, IsDeleted = 0 }); _rep.SaveChanges(); } rvm.Msg = "success"; rvm.Success = true; return(rvm); }
/// <summary> /// 临床指南列表 /// </summary> /// <param name="dataInfo">分页、搜索</param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetGuideList(RowNumModel <DataInfo> dataInfo, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var list = from a in _rep.Where <DataInfo>(s => s.IsDeleted != 1) //join b in _rep.Table<BuProDeptRel>() on a.Id equals b.DataInfoId where a.MediaType == 2 && a.IsDeleted != 1 select a; if (!string.IsNullOrEmpty(dataInfo.SearchParams.Title)) { list = list.Where(s => s.Title.Contains(dataInfo.SearchParams.Title)); } if (workUser != null) { var UserDept = workUser.WxUser.DepartmentName; list = list.Where(s => s.Dept == UserDept); } var total = list.Count(); var rows = list.OrderByDescending(o => o.CreateTime) .ToPaginationList(dataInfo.PageIndex, dataInfo.PageSize); rvm.Success = true; rvm.Msg = ""; rvm.Result = new { total = total, rows = rows }; return(rvm); }
/// <summary> /// 根据用户科室查询公众号推广信息 /// </summary> /// <param name="publicaccount"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel WxGetPublicAccount(RowNumModel <PublicAccount> publicaccount, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); //首先根据用户查询用户科室 var SendUser = _rep.SqlQuery <PublicAccount>("select * from DoctorModel where Id='" + workUser.WxUser.Id + "' or UnionId='" + workUser.WxUser.UnionId + "' && IsDeleted=0").FirstOrDefault(); if (SendUser != null) { rvm.Success = false; rvm.Msg = "The user does not exist"; } else { //根据用户科室查询公众号推广信息 var wxSend = _rep.SqlQuery <PublicAccount>("select * from PublicAccount where dept in('" + workUser.WxUser.DepartmentName + "') && IsDeleted=0"); var total = wxSend.Count(); var rows = wxSend.OrderByDescending(o => o.CreateTime) .ToPaginationList(publicaccount.PageIndex, publicaccount.PageSize); rvm.Result = new { total = total, rows = rows }; } return(rvm); }
/// <summary> /// 获取问卷列表 /// </summary> /// <param name="rowNum"></param> /// <returns></returns> public ReturnValueModel GetMeetQAList(RowNumModel <MeetQAContentViewModel> rowNum) { ReturnValueModel rvm = new ReturnValueModel(); var list = from a in _rep.All <QuestionModel>() join b in _rep.All <AnswerModel>() on a.Id equals b.QuestionId where a.IsDeleted != 1 && b.IsDeleted != 1 && string.IsNullOrEmpty(a.MeetId) group b by a into j select new MeetQAContentViewModel { Question = j.Key, Answers = j.Select(s => s) }; list = list.Where(rowNum.SearchParams); var total = list.Count(); var rows = list.OrderByDescending(s => s.Question.UpdateTime).ToPaginationList(rowNum.PageIndex, rowNum.PageSize); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { total = total, rows = rows }; return(rvm); }
/// <summary> /// 获取推广二维码的列表 /// </summary> /// <param name="id"></param> /// <returns></returns> public ReturnValueModel GetAdQRCodeList(RowNumModel <AdQRCode> rowNum) { ReturnValueModel rvm = new ReturnValueModel(); var list = _rep.Where <AdQRCode>(s => s.IsDeleted != 1); if (rowNum?.SearchParams != null) { if (!string.IsNullOrEmpty(rowNum.SearchParams.AppName)) { list = list.Where(s => s.AppName.Contains(rowNum.SearchParams.AppName)); } if (!string.IsNullOrEmpty(rowNum.SearchParams.AppUrl)) { list = list.Where(s => s.AppName.Contains(rowNum.SearchParams.AppUrl)); } if (!string.IsNullOrEmpty(rowNum.SearchParams.BuName)) { list = list.Where(s => s.AppName.Contains(rowNum.SearchParams.BuName)); } } var total = list.Count(); var rows = list.OrderByDescending(s => s.CreateTime).ToPaginationList(rowNum?.PageIndex, rowNum?.PageSize).ToList(); rvm.Success = true; rvm.Msg = "success"; rvm.Result = new { total, rows }; return(rvm); }
/// <summary> /// 勋章标准规则配置- 分页查询 /// </summary> /// <returns></returns> public ReturnValueModel GetMedalStandardConfigureList(RowNumModel <BotMedalStandardConfigure> row, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var cnfigures = _rep.Where <BotMedalStandardConfigure>(s => s.IsDeleted != 1); if (row.SearchParams.KBSBotId != null) { cnfigures = cnfigures.Where(o => o.KBSBotId == row.SearchParams.KBSBotId); } if (row.SearchParams.KBSBotName != null) { cnfigures = cnfigures.Where(o => o.KBSBotName.Contains(row.SearchParams.KBSBotName)); } if (row.SearchParams.MedalName != null) { cnfigures = cnfigures.Where(o => o.MedalName.Contains(row.SearchParams.MedalName)); } var total = cnfigures.Count(); var rows = cnfigures.OrderBy(o => o.KBSBotName).ToPaginationList(row.PageIndex, row.PageSize); rvm.Success = true; rvm.Msg = ""; rvm.Result = new { total = total, rows = rows, }; return(rvm); }
public void ExportDoctorLearn(RowNumModel <DoctorLearnViewModel> rowNum) { HttpContext curContext = HttpContext.Current; var ret = _iADDoctorService.GetDoctorLearn(rowNum, true); if (ret.Success) { var _filePath = HostingEnvironment.MapPath("/ExcelTemplate/" + "学习时间模板.xlsx"); var data = ret.Result as List <DoctorLearnViewModel>; List <DoctorLearnDto> dto = new List <DoctorLearnDto>(); foreach (var item in data) { dto.Add(new DoctorLearnDto { DoctorName = item.DoctorName, Title = item.Title, HospitalName = item.HospitalName, DepartmentName = item.DepartmentName, DocLearnTime = KBS.Tool.SecondsToDateTime(item.DocLearnTime.GetValueOrDefault()), PodcastLearnTime = KBS.Tool.SecondsToDateTime(item.PodcastLearnTime.GetValueOrDefault()), VideoLearnTime = KBS.Tool.SecondsToDateTime(item.VideoLearnTime.GetValueOrDefault()), MeetCount = item.MeetCount, BroadcastTime = KBS.Tool.SecondsToDateTime(item.BroadcastTime.GetValueOrDefault()), GuidVistTime = KBS.Tool.SecondsToDateTime(item.GuidVistTime.GetValueOrDefault()), MedicineVistTime = KBS.Tool.SecondsToDateTime(item.MedicineVistTime.GetValueOrDefault()), BookVisitTime = KBS.Tool.SecondsToDateTime(item.BookVisitTime.GetValueOrDefault()), DocTags = string.Join(",", item.DocTags), }); } var bytes = AsposeExcelTool.ExportTemplate(_filePath, "H", "医生学习时间", dto); string fileName = DateTime.Now.ToString("yyyyMMssff"); curContext.Response.Clear(); curContext.Response.Buffer = true; curContext.Response.Charset = "UTF-8"; curContext.Response.AddHeader("content-disposition", $"attachment; filename={fileName}.xlsx"); curContext.Response.ContentEncoding = Encoding.UTF8; //必须写,否则会有乱码 curContext.Response.ContentType = "application/octet-stream"; curContext.Response.AddHeader("Content-Length", bytes.Length.ToString()); curContext.Response.OutputStream.Write(bytes, 0, bytes.Length); curContext.Response.Flush(); curContext.Response.Close(); } //string path = HostingEnvironment.MapPath("/Upload/Export"); //if (!Directory.Exists(path)) //{ // Directory.CreateDirectory(path); //} //FileStream fs = new FileStream(path + @"/" + fileName, FileMode.Create); //fs.Write(excell, 0, excell.Length); //fs.Dispose(); //string _host = ConfigurationManager.AppSettings["HostUrl"]; //return _host + "/Upload/Export/" + fileName; }
/// <summary> /// 系列课程- 获取明细列表 /// </summary> /// <returns></returns> public ReturnValueModel GetSeriesCoursesMeetRelList(RowNumModel <SeriesCourses> rowNum, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); if (rowNum?.SearchParams?.Id == null) { rvm.Success = false; rvm.Msg = "The parameter 'Id' is required."; return(rvm); } var query = (from a in _rep.Where <SeriesCoursesMeetRel>(o => o.IsDeleted != 1) join b in _rep.Where <MeetInfo>(o => o.IsDeleted != 1) on a.MeetInfoId equals b.Id where a.SeriesCoursesId == rowNum.SearchParams.Id && b.IsCompleted == EnumComplete.Approved && string.IsNullOrEmpty(b.Source) select new SeriesCoursesMeetRelOutDto { MeetInfoId = a.MeetInfoId, MeetTitle = b.MeetTitle, MeetCoverSmallId = b.MeetCoverSmall, MeetCoverBigId = b.MeetCoverBig, MeetStartTime = b.MeetStartTime, MeetEndTime = b.MeetEndTime, ApprovalNote = b.ApprovalNote, IsChoiceness = b.IsChoiceness, IsHot = b.IsHot, MeetCodeUrl = b.MeetCodeUrl, MeetData = b.MeetData, MeetAddress = b.MeetAddress, ReplayAddress = b.ReplayAddress, MeetType = b.MeetType, Sort = a.Sort, }); var rows = query.OrderBy(o => o.Sort).ToPaginationList(rowNum.PageIndex, rowNum.PageSize).ToList(); var total = query.Count(); rows.ForEach(o => { o.MeetCoverSmall = _rep.FirstOrDefault <MeetPic>(s => s.IsDeleted != 1 && s.MeetId == o.MeetInfoId && s.Id == o.MeetCoverSmallId)?.MeetPicUrl; o.MeetCoverBig = _rep.FirstOrDefault <MeetPic>(s => s.IsDeleted != 1 && s.MeetId == o.MeetInfoId && s.Id == o.MeetCoverBigId)?.MeetPicUrl; var meetSchedule = _rep.Where <MeetSchedule>(s => s.IsDeleted != 1 && s.MeetId == o.MeetInfoId).OrderBy(s => s.Sort).Skip(0).Take(1).FirstOrDefault(); o.Chairman = meetSchedule?.Speaker ?? ""; o.Hospital = meetSchedule?.Hospital ?? ""; }); rvm.Success = true; rvm.Msg = "success"; rvm.Result = new { total = total, rows = rows, }; return(rvm); }
/// <summary> /// 产品资料列表 /// </summary> /// <param name="dataInfo"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetProductMediaList(RowNumModel <MediaDataRelViewModel> dataInfo, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var rels = _rep.Table <MediaDataRel>(); //var depts = _rep.Table<DepartmentInfo>(); var list = from a in _rep.Table <DataInfo>() where a.IsDeleted != 1 && a.MediaType == 1 && (a.IsCompleted == EnumComplete.Approved) select new { a, b = (from c in rels where c.DataInfoId == a.Id select c.ProId), IsHot = (a.ClickVolume > 66 ? 1 : 0) }; LoggerHelper.WriteLogInfo("[GetProductMediaList]开始:"); LoggerHelper.WriteLogInfo(list.ToString()); if (!string.IsNullOrEmpty(dataInfo.SearchParams.ProId)) { list = list.Where(s => s.b.Contains(dataInfo.SearchParams.ProId)); } if (!string.IsNullOrEmpty(dataInfo.SearchParams.Title)) { list = list.Where(s => s.a.Title.Contains(dataInfo.SearchParams.Title)); } //产品列表明细中 根据使用人所在科室 匹配过滤 ywk 2019-03-22 if (workUser != null) { list = list.Where(s => s.a.Dept.Contains(workUser.WxUser.DepartmentName)); } var total = list.Count(); var rows = list.OrderByDescending(o => o.a.CreateTime) .ToPaginationList(dataInfo.PageIndex, dataInfo.PageSize); rvm.Success = true; rvm.Msg = ""; rvm.Result = new { total = total, rows = rows }; return(rvm); }
/// <summary> /// 获取微信公众号列表 /// </summary> /// <returns></returns> public ReturnValueModel GetWechatPublicAccountList(RowNumModel <WechatPublicAccount> rowNum, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var wx = _rep.Where <WechatPublicAccount>(s => s.IsDeleted != 1); if (rowNum != null && rowNum.SearchParams != null) { if (!string.IsNullOrEmpty(rowNum.SearchParams.Name)) { wx = wx.Where(s => !string.IsNullOrEmpty(s.Name) && s.Name.Contains(rowNum.SearchParams.Name)); } if (!string.IsNullOrEmpty(rowNum.SearchParams.Summary)) { wx = wx.Where(s => !string.IsNullOrEmpty(s.Summary) && s.Name.Contains(rowNum.SearchParams.Summary)); } if (!string.IsNullOrEmpty(rowNum.SearchParams.AppId)) { wx = wx.Where(s => !string.IsNullOrEmpty(s.AppId) && s.AppId == rowNum.SearchParams.AppId); } if (rowNum.SearchParams.ClickVolume.HasValue && rowNum.SearchParams.ClickVolume > 0) { wx = wx.Where(s => s.ClickVolume.HasValue && s.ClickVolume >= rowNum.SearchParams.ClickVolume); } } var list = from a in wx select new { Id = a.Id, AppId = a.AppId, Name = a.Name, ClickVolume = a.ClickVolume, }; var total = list.Count(); list = list.OrderBy(s => s.Name).ToPaginationList(rowNum.PageIndex, rowNum.PageSize); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { total, list }; return(rvm); }
/// <summary> /// /// </summary> /// <param name="model"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel AddVisitModules(RowNumModel <VisitModulesViewModel> model, WorkUser workUser) { LoggerHelper.WarnInTimeTest("***********************"); LoggerHelper.WarnInTimeTest("Inner-[AddVisitModules] Start:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")); ReturnValueModel rvm = new ReturnValueModel(); int isvisitor = 0; if (workUser == null || (string.IsNullOrEmpty(workUser.WxUser.Mobile))) { isvisitor = 1; } if (model != null) { TimeSpan ts = Convert.ToDateTime(model.SearchParams.VisitEnd) - Convert.ToDateTime(model.SearchParams.VisitStart); var seconds = Convert.ToInt32(ts.TotalSeconds); //插入数据 _rep.Insert(new VisitModules() { Id = Guid.NewGuid().ToString(), UnionId = workUser?.WxUser.UnionId, IsDeleted = 0, IsEnabled = 0, CreateTime = DateTime.Now, ModuleNo = model.SearchParams.ModuleNo, ModulePageNo = model.SearchParams.ModulePageNo, ModulePageUrl = model.SearchParams.ModulePageUrl, VisitStart = model.SearchParams.VisitStart, VisitEnd = model.SearchParams.VisitEnd, StaySeconds = seconds, //停留秒数 Isvisitor = isvisitor, WxUserid = workUser?.WxUser.Id }); _rep.SaveChanges(); rvm.Msg = "success"; rvm.Success = true; } else { rvm.Msg = "参数为空或用户对象为空"; rvm.Success = false; } LoggerHelper.WarnInTimeTest("Inner-[AddVisitModules] End" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")); return(rvm); }
/// <summary> /// 获取所有公众号推广信息 /// </summary> /// <returns></returns> public ReturnValueModel GetPublicAccount(RowNumModel <PublicAccount> publicaccount, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); //获取所有有效的公众号推广信息 var PublicAccount = from a in _rep.SqlQuery <PublicAccount>("select * from PublicAccount where IsDeleted=0") join b in _rep.SqlQuery <UserInfo>("select * from UserInfo where IsDeleted=2 ") on a.CreateUser equals b.Id select new PublicAccount { Id = a.Id, AppId = a.AppId, PublicAccountName = a.PublicAccountName, AppUrl = a.AppUrl, Iseffective = a.Iseffective, Dept = a.Dept, Remark = a.Remark, CreateUser = b.ChineseName, CreateTime = a.CreateTime, ImageUrl = a.ImageUrl, ImageName = a.ImageName }; if (!string.IsNullOrEmpty(publicaccount.SearchParams.PublicAccountName)) { PublicAccount = PublicAccount.Where(x => x.PublicAccountName.Contains(publicaccount.SearchParams.PublicAccountName)); } if (PublicAccount == null) { rvm.Success = true; rvm.Msg = "No public number promotional information yet"; } else { var total = PublicAccount.Count(); //先按照Sort字段升序排列,再按照创建时间倒序排列 var rows = PublicAccount.OrderByDescending(s => s.CreateTime).ToPaginationList(publicaccount.PageIndex, publicaccount.PageSize); rvm.Success = true; rvm.Msg = "Success"; rvm.Result = new { total = total, rows = rows }; } return(rvm); }
/// <summary> /// 分页查询目录列表 /// </summary> /// <param name="row"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetHcpCataloguePageList(RowNumModel <HcpCatalogueManage> row, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var data = _rep.Where <HcpCatalogueManage>(s => s.BuName == row.SearchParams.BuName && s.IsDeleted == 0); var total = data.Count(); var rows = data.OrderBy(o => o.CatalogueName).ToPaginationList(row.PageIndex, row.PageSize); rvm.Success = true; rvm.Msg = ""; rvm.Result = new { total = total, rows = rows, }; return(rvm); }
/// <summary> /// 分页查询AI主播知识播报 /// </summary> /// <param name="dto"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetAiBroadcastPageList(RowNumModel <AiBroadcastInputDto> dto) { ReturnValueModel rvm = new ReturnValueModel(); var list = _rep.Where <DataInfo>(s => s.IsDeleted != 1 && s.MediaType == 3 && s.IsCompleted == EnumComplete.Approved); var total = list.Count(); //先按照Sort字段升序排列,再按照创建时间倒序排列 var rows = list.OrderBy(s => s.Sort).ThenByDescending(s => s.CreateTime).ToPaginationList(dto.PageIndex, dto.PageSize); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { total, rows }; return(rvm); }
/// <summary> /// 权限列表 /// </summary> /// <param name="rowRole">分页搜索</param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetRoleList(RowNumModel <RoleInfo> rowRole, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var list = (from a in _rep.Table <RoleInfo>() where a.IsDeleted != 1 select a).Where(rowRole.SearchParams); var total = list.Count(); var rows = list.OrderBy(o => o.RoleName).ToPaginationList(rowRole.PageIndex, rowRole.PageSize); rvm.Success = true; rvm.Msg = ""; rvm.Result = new { total = total, rows = rows }; return(rvm); }
/// <summary> /// 获取列表 支持分页 /// </summary> /// <param name="item"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetList(RowNumModel <SpreadQRCode> item, WorkUser workUser) { var list = _rep.Where <SpreadQRCode>(x => x.IsDeleted != 1 && x.SpreadQRType == item.SearchParams.SpreadQRType); if (!string.IsNullOrEmpty(item?.SearchParams?.SpreadAppId)) { list = list.Where <SpreadQRCode>(x => x.SpreadAppId == item.SearchParams.SpreadAppId); } if (!string.IsNullOrEmpty(item?.SearchParams?.SpreadName)) { list = list.Where <SpreadQRCode>(x => x.SpreadName.Contains(item.SearchParams.SpreadName)); } var total = list.Count(); var rows = list.OrderByDescending(x => x.CreateTime).ToPaginationList(item?.PageIndex, item?.PageSize).ToList(); if (item.SearchParams.SpreadQRType == 1) { rows = rows.Select(x => new SpreadQRCode() { Id = x.Id, SpreadAppId = x.SpreadAppId, SpreadName = x.SpreadName, SpreadQRCodeUrl = x.SpreadQRCodeUrl, RegisteredCount = _rep.Where <WxUserModel>(z => z.SourceAppId.Equals(x.SpreadAppId) && z.SourceType.Equals("4") && z.IsCompleteRegister == 1).Count(), VisitorsCount = _rep.Where <QRcodeRecord>(z => z.AppId.Equals(x.SpreadAppId) && z.SourceType.Equals("4")).Count(), CreateTime = x.CreateTime, }).ToList(); } var result = new ReturnValueModel() { Msg = "Success", Success = true, Result = new { total, rows } }; return(result); }
/// <summary> /// 获取问卷列表 /// </summary> /// <param name="rowNum"></param> /// <returns></returns> public ReturnValueModel GetQuestionList(RowNumModel <QuestionModel> rowNum) { ReturnValueModel rvm = new ReturnValueModel(); var list = _rep.Where <QuestionModel>(s => s.IsDeleted != 1 && string.IsNullOrEmpty(s.MeetId)).Where(rowNum.SearchParams); var total = list.Count(); var rows = list.OrderByDescending(s => s.CreateTime).ToPaginationList(rowNum.PageIndex, rowNum.PageSize); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { total = total, rows = rows }; return(rvm); }
public ReturnValueModel GetBusinessCardList(RowNumModel <BusinessCard> businessCard, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var list = (from a in _rep.Where <BusinessCard>(s => s.IsDeleted != 1 && s.OwnerWxUserId != null && s.WxUserId == workUser.WxUser.Id) join b in _rep.Where <WxUserModel>(s => s.IsDeleted != 1 && s.HospitalName != null) on a.OwnerWxUserId equals b.Id into ab from bb in ab.DefaultIfEmpty() select new BusinessCardViewModel { UserName = bb.UserName == null ? "" : bb.UserName, WxPicture = bb.WxPicture == null ? "" : bb.WxPicture, Mobile = bb.Mobile == null ? "" : bb.Mobile, HospitalName = bb.HospitalName == null ? "" : bb.HospitalName, DepartmentName = bb.DepartmentName == null ? "" : bb.DepartmentName, CreateTime = a.CreateTime }).Where(s => s.DepartmentName != ""); //var list = _rep.Table<WxUserModel>().Where(s => s.UnionId != null && s.UnionId == workUser.WxUser.UnionId).ToList(); //增加名片的关键字过滤 if (businessCard.SearchParams.Remark != null) { var keyword = businessCard.SearchParams.Remark; list = list.Where(s => s.UserName.Contains(keyword) || s.DepartmentName.Contains(keyword) || s.HospitalName.Contains(keyword)); } var total = list.Count(); var rows = list.OrderByDescending(o => o.CreateTime) .ToPaginationList(businessCard.PageIndex, businessCard.PageSize); rvm.Success = true; rvm.Msg = ""; rvm.Result = new { total = total, rows = rows }; return(rvm); }
/// <summary> /// 新增用户行为数据 /// </summary> /// <param name="model"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel AddActionHistory(RowNumModel <WechatActionHistory> model, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); if (model == null) { rvm.Msg = "the model is null"; rvm.Success = false; } else { try { _rep.Insert(new WechatActionHistory() { Id = Guid.NewGuid().ToString(), ActionType = model.SearchParams.ActionType, Content = model.SearchParams.Content, ContentId = model.SearchParams.ContentId, UnionId = workUser?.WxUser?.UnionId ?? "", WxuserId = workUser?.WxUser?.Id ?? "", IsDeleted = 0, IsEnabled = 0, StaySeconds = model.SearchParams.StaySeconds ?? 0, CreateTime = DateTime.Now }); _rep.SaveChanges(); rvm.Msg = ""; rvm.Success = true; } catch (Exception e) { rvm.Msg = e.Message; rvm.Success = false; LoggerHelper.WriteLogInfo("[AddActionHistory Error:]" + e.Message); } } return(rvm); }
/// <summary> /// 获取意见反馈列表 /// </summary> /// <returns></returns> public ReturnValueModel GetFeedbackList(RowNumModel <FeedbackListViewModel> rowNum) { ReturnValueModel rvm = new ReturnValueModel(); var list = from a in _rep.Where <Feedback>(s => s.IsDeleted != 1) join b in _rep.Table <WxUserModel>() on a.CreateUser equals b.Id into ab from b1 in ab.DefaultIfEmpty() select new FeedbackListViewModel { Id = a.Id, Content = a.Content, CreateTime = a.CreateTime, CreateUser = b1 == null ? "" : b1.UserName }; if (rowNum != null && rowNum.SearchParams != null) { if (!string.IsNullOrEmpty((rowNum.SearchParams.Content))) { list = list.Where(s => s.Content.Contains(rowNum.SearchParams.Content)); } if (!string.IsNullOrEmpty((rowNum.SearchParams.CreateUser))) { list = list.Where(s => s.CreateUser.Contains(rowNum.SearchParams.CreateUser)); } } var total = list.Count(); var rows = list.OrderBy(s => s.CreateTime).ToPaginationList(rowNum?.PageIndex, rowNum?.PageSize).ToList(); rvm.Success = true; rvm.Msg = ""; rvm.Result = new { total, rows }; return(rvm); }
/// <summary> /// 获取医生列表信息 /// 1 认证通过 ; ///3,6 认证未通过人数(失败 和申诉拒绝) ///2 认证 未定人数 ///5,4 总待验证通过人数 /// </summary> /// <param name="model">1 认证通过 ;3,6 认证未通过人数(失败 和申诉拒绝) 2 认证 未定人数 5,4 总待验证通过人数 </param> /// <returns></returns> public ReturnValueModel GetDoctor(RowNumModel <List <int> > model) { ReturnValueModel rvm = new ReturnValueModel(); var doctorList = _rep.Where <WxUserModel>(x => x.IsDeleted != 1 && (x.IsSalesPerson ?? 0) != 1); var isVerify = model.SearchParams; if (isVerify == null) { //未注册(已授权未注册的清单) doctorList = doctorList.Where(x => x.IsDeleted != 1 && x.IsCompleteRegister != 1); } else { doctorList = doctorList.Where(x => x.IsDeleted != 1 && x.IsCompleteRegister == 1 && isVerify.Contains(x.IsVerify)); } doctorList.Select(x => new DoctorViewModel() { Id = x.Id, WxPicture = x.WxPicture, gender = x.WxGender, WxName = x.WxName, UserName = x.UserName, HospitalName = x.HospitalName, DepartmentName = x.DepartmentName, Mobile = x.Mobile, CreateTime = x.CreateTime, UpdateTime = x.UpdateTime }); rvm.Success = true; rvm.Msg = ""; var total = doctorList.Count(); var rows = doctorList.ToList().ToPaginationList(model.PageIndex, model.PageSize); rvm.Result = new { total, rows }; return(rvm); }
public void Test1() { var d = new RowNumModel <DoctorLearnViewModel>(); d.SearchParams = new DoctorLearnViewModel(); var ret = _iADDoctorService.GetDoctorLearn(d, true); var _filePath = HostingEnvironment.MapPath("/ExcelTemplate/" + "学习时间模板.xlsx"); var bytes = AsposeExcelTool.ExportTemplate(_filePath, "H", "医生学习时间", ret.Result); HttpContext curContext = HttpContext.Current; curContext.Response.Clear(); curContext.Response.Buffer = true; curContext.Response.Charset = "UTF-8"; curContext.Response.AddHeader("content-disposition", "attachment; filename=XiuJiaMonthlyHandel.xlsx"); curContext.Response.ContentEncoding = Encoding.UTF8; //必须写,否则会有乱码 curContext.Response.ContentType = "application/octet-stream"; curContext.Response.AddHeader("Content-Length", bytes.Length.ToString()); curContext.Response.OutputStream.Write(bytes, 0, bytes.Length); curContext.Response.Flush(); curContext.Response.Close(); }
/// <summary> /// 删除个人搜索列表记录 /// </summary> /// <param name="historyId"></param> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel DeleteSearchHistory(RowNumModel <WxMedicineDelViewModel> model) { ReturnValueModel rvm = new ReturnValueModel(); rvm.Msg = ""; rvm.Success = true; if (model.SearchParams.historyId.Count > 0) { foreach (var hisid in model.SearchParams.historyId) { var hismodel = _rep.Where <MedicineSearchHistory>(s => s.Id == hisid).FirstOrDefault(); if (hismodel != null) { hismodel.IsDeleted = 1; hismodel.UpdateTime = DateTime.Now; _rep.Update(hismodel); _rep.SaveChanges(); } } } return(rvm); }
/// <summary> /// 概览 /// </summary> /// <param name="model"></param> /// <returns></returns> public ReturnValueModel GetOverViewList(RowNumModel <StatisticsTimeViewModel> model) { ReturnValueModel rvm = new ReturnValueModel(); var doctorList = _rep.Where <WxUserModel>(x => (x.IsSalesPerson ?? 0) != 1); //总 授权人数 去重 var hasAuthNumber = doctorList.Where(x => !string.IsNullOrEmpty(x.UnionId)).Select(x => x.UnionId).Distinct().Count(); //总访问人数 var allVisitNumber = hasAuthNumber; //注册人数 去重 var regNumber = doctorList.Where(x => x.IsDeleted != 1 && x.IsCompleteRegister == 1).Select(x => x.UnionId).Count(); //认证通过人数 var verifyNumberA = doctorList.Where(x => x.IsDeleted != 1 && x.IsCompleteRegister == 1 && x.IsVerify == 1).Select(x => x.UnionId).Count(); //认证未通过人数(失败 和申诉拒绝) var verifyNumberB = doctorList.Where(x => x.IsDeleted != 1 && x.IsCompleteRegister == 1 && (x.IsVerify == 3 || x.IsVerify == 6)).Select(x => x.UnionId).Count(); //认证 未定人数 (2 不确定) var verifyNumberC = doctorList.Where(x => x.IsDeleted != 1 && x.IsCompleteRegister == 1 && x.IsVerify == 2).Select(x => x.UnionId).Count(); //总待验证通过人数( 4申诉中 或 5认证中 ) var verifyNumberD = doctorList.Where(x => x.IsDeleted != 1 && x.IsCompleteRegister == 1 && (x.IsVerify == 5 || x.IsVerify == 4)).Select(x => x.UnionId).Count(); rvm.Success = true; rvm.Msg = "success!"; rvm.Result = new { rows = new { allvisitcount = allVisitNumber, hasauthListcount = hasAuthNumber, hasregistercount = regNumber, hascheckcount = verifyNumberA, notpasscount = verifyNumberB, notsurecount = verifyNumberC, waitcheckcount = verifyNumberD } }; return(rvm); }
/// <summary> /// 获取医院 /// </summary> /// <param name="rowNum">模糊搜索,HospitalName</param> /// <returns></returns> public Task <ReturnValueModel> GetHospital(RowNumModel <HospitalInfo> rowNum) { ReturnValueModel rvm = new ReturnValueModel(); try { string hospitalName = rowNum?.SearchParams?.HospitalName; string sql = "select * from HospitalInfo where IsDeleted<>1 and IsVerify=1"; if (!string.IsNullOrEmpty(hospitalName)) { hospitalName = string.Join("%", hospitalName.ToArray()); sql += $" and HospitalName like '%{hospitalName}%'"; } var list = from a in _rep.SqlQuery <HospitalInfo>(sql) select a.HospitalName; var total = list.Count(); var rows = list.Distinct().OrderBy(s => s).ToPaginationList(rowNum?.PageIndex, rowNum?.PageSize).ToList(); rvm.Success = true; rvm.Msg = "success"; rvm.Result = new { total, hospitalNames = rows }; } catch (Exception ex) { rvm.Success = false; rvm.Msg = ex.Message; } return(Task.FromResult(rvm)); }