Пример #1
0
        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);
        }
Пример #2
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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);
        }
Пример #9
0
        /// <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);
        }
Пример #10
0
        /// <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);
        }
Пример #11
0
        /// <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);
        }
Пример #12
0
        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;
        }
Пример #13
0
        /// <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);
        }
Пример #14
0
        /// <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);
        }
Пример #15
0
        /// <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);
        }
Пример #16
0
        /// <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);
        }
Пример #17
0
        /// <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);
        }
Пример #20
0
        /// <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);
        }
Пример #21
0
        /// <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);
        }
Пример #22
0
        /// <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);
        }
Пример #25
0
        /// <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);
        }
Пример #26
0
        /// <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);
        }
Пример #27
0
        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();
        }
Пример #28
0
        /// <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);
        }
Пример #29
0
        /// <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);
        }
Пример #30
0
        /// <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));
        }