public void DealHtml(IList list, string html, bool crawlAll) { Parser parserDtl = new Parser(new Lexer(html)); NodeList aNodes = parserDtl.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("id", "ctl00_cph_context_GreetingArrangeList1_GridView1"))); if (aNodes != null && aNodes.Count == 1 && aNodes[0] is TableTag) { TableTag table = (TableTag)aNodes[0]; for (int i = 1; i < table.Rows.Length; i++) { if (table.Rows[i].Columns.Length == 5) { string meetTime = string.Empty, prjName = string.Empty, meetName = string.Empty, place = string.Empty; meetTime = table.Rows[i].Columns[1].ToPlainTextString().Trim(); prjName = table.Rows[i].Columns[2].ToPlainTextString().Trim(); place = table.Rows[i].Columns[3].ToPlainTextString().Trim(); meetName = table.Rows[i].Columns[4].ToPlainTextString().Trim(); MeetInfo info = ToolDb.GenMeetInfo("广东省", "深圳宝安区工程", string.Empty, string.Empty, prjName, place, meetName, meetTime, string.Empty, "深圳市建设工程交易中心宝安分中心", SiteUrl, string.Empty, string.Empty, string.Empty, string.Empty); list.Add(info); if (!crawlAll && list.Count >= this.MaxCount) { return; } } } } parserDtl.Reset(); }
protected override IList ExecuteCrawl(bool crawlAll) { IList list = new List <MeetInfo>(); DateTime startDate = DateTime.Today; DateTime endDate = startDate.AddDays(30); long startTime = ToolHtml.GetDateTimeLong(startDate); long endTime = ToolHtml.GetDateTimeLong(endDate); string Url = this.SiteUrl + this.MaxCount + "&startTime=" + startTime + "&endTime=" + endTime; string infUrl = "http://www.bajsjy.com/jyxx/hyxx/"; string html = string.Empty; try { html = this.ToolWebSite.GetHtmlByUrl(Url); } catch { return(null); } int startIndex = html.IndexOf("{"); int endIndex = html.LastIndexOf("}"); html = html.Substring(startIndex, (endIndex + 1) - startIndex); JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary <string, object> smsTypeJson = (Dictionary <string, object>)serializer.DeserializeObject(html); object[] objvalues = smsTypeJson["rows"] as object[]; foreach (object objValue in objvalues) { Dictionary <string, object> dic = (Dictionary <string, object>)objValue; string meetTime = string.Empty, prjName = string.Empty, meetName = string.Empty, place = string.Empty, prjCode = string.Empty; prjCode = Convert.ToString(dic["bdBH"]); meetTime = Convert.ToString(dic["huiYiStartTime2"]); prjName = Convert.ToString(dic["bdName"]); place = Convert.ToString(dic["huiYiDiDianName"]); meetName = Convert.ToString(dic["huiYiLeiXingName"]); MeetInfo info = ToolDb.GenMeetInfo("广东省", "深圳宝安区工程", string.Empty, string.Empty, prjName, place, meetName, meetTime, string.Empty, "深圳市建设工程交易中心宝安分中心", infUrl, prjCode, string.Empty, string.Empty, string.Empty); list.Add(info); if (!crawlAll && list.Count >= this.MaxCount) { // 删除 string bDate = startDate.ToString("yyyy-MM-dd"), eDate = endDate.ToString("yyyy-MM-dd"); string sqlwhere = " where City='深圳宝安区工程' and InfoUrl='" + infUrl + "' and BeginDate>='" + bDate + "' and BeginDate<='" + eDate + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); return(list); } } if (list != null && list.Count > 0) { // 删除 string bDate = startDate.ToString("yyyy-MM-dd"), eDate = endDate.ToString("yyyy-MM-dd"); string sqlwhere = " where City='深圳宝安区工程' and InfoUrl='" + infUrl + "' and BeginDate>='" + bDate + "' and BeginDate<='" + eDate + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); } return(list); }
/// <summary> ///3、科室会同步 /// </summary> public ReturnValueModel SyncMeetingInfo() { //两种方式: //1)费卡文库创建科室会,同步在小程序生成;缺点:一旦系统维护,不能及时同步 //2)定期同步;缺点:非实时;每天凌晨科室会同步 // //注:将采用定期同步:每天凌晨同步已完成的科室会到OneHCP数据库 //同步内容: //科室会编号、科室会标题,活动状态,创建时间,召开时间,医院,科室,内容,参与人数 ReturnValueModel rvm = new ReturnValueModel(); var checkInPath = $@"{_host}/OneHCPService/ActivitySync.ashx"; var returnModel = HttpUtils.PostResponse <ReturnValueSyncModel>(checkInPath, "", "application/x-www-form-urlencoded"); if (returnModel.status == "1") { var sourceMeetings = JsonConvert.DeserializeObject <List <MeetingSyncModel> >(returnModel.result); var meetingList = new List <MeetInfo>(); foreach (var item in sourceMeetings) { var meet = new MeetInfo(); meet.Id = Guid.NewGuid().ToString(); meet.SourceId = item.ActivityID; //科室会ID meet.MeetTitle = item.ActivityName; //科室会标题 meet.CreateTime = Convert.ToDateTime(item.CreatTime); //创建时间 meet.MeetDate = Convert.ToDateTime(item.HoldTime); //召开时间 meet.SourceHospital = item.Hospital; //医院 meet.SourceDepartment = item.KeShi; //科室 meet.MeetIntroduction = item.Context; //内容 meet.MeetingNumber = item.PartInNum; //参与人数 meet.IsCompleted = Core.Domain.Enums.EnumComplete.Approved; //已审核 meet.Source = _appId; //来源费卡文库 meetingList.Add(meet); } _rep.InsertList(meetingList); _rep.SaveChanges(); rvm.Success = true; rvm.Msg = "success"; rvm.Result = new { done = meetingList.Count }; } else { rvm.Success = false; rvm.Msg = returnModel.message; } return(rvm); }
protected override IList ExecuteCrawl(bool crawlAll) { IList list = new List <MeetInfo>(); string html = string.Empty; try { html = this.ToolWebSite.GetHtmlByUrl(SiteUrl, Encoding.UTF8); } catch (Exception ex) { return(list); } Parser parser = new Parser(new Lexer(html)); NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("bordercolor", "#222222"))); if (nodeList != null && nodeList.Count > 0) { TableTag table = nodeList[0] as TableTag; for (int i = 0; i < table.RowCount; i++) { string meetTime = string.Empty, prjName = string.Empty, meetName = string.Empty, place = string.Empty, builUnit = string.Empty; TableRow tr = table.Rows[i]; if (tr.GetAttribute("valign") == "top") { string meetstr = string.Empty; string temp = tr.Columns[1].ToPlainTextString().Replace("(Y)", "").Replace("(Y)", "").Replace("(一年)", "").Replace("(一年)", ""); string code = temp.Replace("(", "(").Replace(")", ")").GetRegexBegEnd("(", ")"); if (!string.IsNullOrEmpty(code)) { meetstr = temp.Replace("(" + code + ")", "").Replace("(" + code + ")", "");//.Replace("(", "").Replace("(", "").Replace(")", "").Replace(")", ""); } else { meetstr = temp; } place = meetstr.Replace("(", "(").Replace(")", ")").GetRegexBegEnd("(", ")"); if (!string.IsNullOrEmpty(place)) { meetstr = meetstr.Replace("(" + place + ")", "").Replace("(" + place + ")", ""); } string[] str = meetstr.Split(' '); prjName = str[0]; if (str.Length > 1) { builUnit = str[1]; } if (string.IsNullOrEmpty(builUnit) && str.Length > 2) { builUnit = str[2]; } if (builUnit.Contains("开标") || builUnit.Contains("评标")) { place = builUnit; builUnit = string.Empty; } meetName = "开标会"; System.Text.RegularExpressions.Regex regDate = new System.Text.RegularExpressions.Regex(@"\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}"); meetTime = regDate.Match(meetstr).Value; if (string.IsNullOrEmpty(meetTime)) { meetTime = meetstr.GetDateRegex(); } MeetInfo info = ToolDb.GenMeetInfo("广东省", "深圳政府采购", string.Empty, string.Empty, prjName, place, meetName, meetTime, string.Empty, "深圳市政府采购大鹏新区分中心", SiteUrl, code, builUnit, string.Empty, string.Empty); list.Add(info); if (!crawlAll && list.Count >= this.MaxCount) { IList <MeetInfo> result = list as IList <MeetInfo>; // 删除 string bDate = result.OrderBy(x => x.BeginDate).ToList()[0].BeginDate.ToString().GetDateRegex("yyyy/MM/dd"); string eDate = Convert.ToDateTime(result.OrderByDescending(x => x.BeginDate).ToList()[0].BeginDate).AddDays(1).ToString().GetDateRegex("yyyy/MM/dd"); string sqlwhere = " where City='深圳政府采购' and InfoSource='深圳市政府采购大鹏新区分中心' and BeginDate>='" + bDate + "' and BeginDate<='" + eDate + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); return(list); } } } } if (list != null && list.Count > 0) { IList <MeetInfo> result = list as IList <MeetInfo>; // 删除 string bDate = result.OrderBy(x => x.BeginDate).ToList()[0].BeginDate.ToString().GetDateRegex("yyyy/MM/dd"), eDate = Convert.ToDateTime(result.OrderByDescending(x => x.BeginDate).ToList()[0].BeginDate).AddDays(1).ToString().GetDateRegex("yyyy/MM/dd"); string sqlwhere = " where City='深圳政府采购' and InfoSource='深圳市政府采购大鹏新区分中心' and BeginDate>='" + bDate + "' and BeginDate<='" + eDate + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); } return(list); }
protected override IList ExecuteCrawl(bool crawlAll) { IList list = new List <MeetInfo>(); DateTime startDate = DateTime.Today; DateTime endDate = startDate.AddDays(30); long startTime = ToolHtml.GetDateTimeLong(startDate); long endTime = ToolHtml.GetDateTimeLong(endDate); string infoUrl = this.SiteUrl + this.MaxCount + "&startTime=" + startTime + "&endTime" + endTime; string html = string.Empty; try { html = this.ToolWebSite.GetHtmlByUrl(infoUrl, Encoding.UTF8); } catch { } int startIndex = html.IndexOf("{"); int endIndex = html.LastIndexOf("}"); html = html.Substring(startIndex, (endIndex + 1) - startIndex); int len = html.Length; JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary <string, object> smsTypeJson = null; smsTypeJson = (Dictionary <string, object>)serializer.DeserializeObject(html); foreach (KeyValuePair <string, object> obj in smsTypeJson) { if (obj.Key == "total") { continue; } object[] array = (object[])obj.Value; foreach (object arrValue in array) { string meetTime = string.Empty, prjName = string.Empty, meetName = string.Empty, place = string.Empty, builUnit = string.Empty, prjCode = string.Empty; Dictionary <string, object> dic = (Dictionary <string, object>)arrValue; prjName = Convert.ToString(dic["bdName"]).GetReplace("<br/>"); meetTime = Convert.ToString(dic["huiYiStartTime2"]); meetName = Convert.ToString(dic["huiYiLeiXingName"]); place = Convert.ToString(dic["huiYiDiDianName"]); prjCode = Convert.ToString(dic["bdBH"]); MeetInfo info = ToolDb.GenMeetInfo("广东省", "深圳龙岗区工程", string.Empty, string.Empty, prjName, place, meetName, meetTime, string.Empty, "深圳市建设工程交易中心龙岗分中心", SiteUrl, prjCode, builUnit, string.Empty, string.Empty); list.Add(info); if (!crawlAll && list.Count >= this.MaxCount) { // 删除 string bDate = startDate.ToString("yyyy-MM-dd"), eDate = endDate.ToString("yyyy-MM-dd"); string sqlwhere = " where City='深圳龙岗区工程' and InfoUrl='" + SiteUrl + "' and BeginDate>='" + bDate + "' and BeginDate<='" + eDate + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); return(list); } } } if (list != null && list.Count > 0) { // 删除 string bDate = startDate.ToString("yyyy-MM-dd"), eDate = endDate.ToString("yyyy-MM-dd"); string sqlwhere = " where City='深圳龙岗区工程' and InfoUrl='" + SiteUrl + "' and BeginDate>='" + bDate + "' and BeginDate<='" + eDate + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); } return(list); }
public IHttpActionResult GetMeetDetail(MeetInfo meetInfo) { var ret = _wxMeetService.GetMeetDetail(meetInfo, WorkUser); return(Ok(ret)); }
protected override IList ExecuteCrawl(bool crawlAll) { IList list = new ArrayList(); int pageInt = 1; string html = string.Empty; try { html = this.ToolWebSite.GetHtmlByUrl(SiteUrl, Encoding.UTF8); } catch (Exception ex) { return(list); } Parser parser = new Parser(new Lexer(html)); string viewState = this.ToolWebSite.GetAspNetViewState(html); string eventValidation = this.ToolWebSite.GetAspNetEventValidation(html); NameValueCollection nvcBeg = this.ToolWebSite.GetNameValueCollection( new string[] { "__EVENTTARGET", "__EVENTARGUMENT", "__LASTFOCUS", "__VIEWSTATE", "__VIEWSTATEENCRYPTED", "__EVENTVALIDATION", "ctl00$Content$ddlGCLB", "ctl00$Content$txtStartHysj", "ctl00$Content$txtEndHysj", "ctl00$hdnPageCount" }, new string[] { "", "", "", viewState, "", eventValidation, "-1", DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.AddDays(30).ToString("yyyy-MM-dd"), "1" }); html = this.ToolWebSite.GetHtmlByUrl(SiteUrl, nvcBeg, Encoding.UTF8); //抓取30天之内的会议信息 parser = new Parser(new Lexer(html)); NodeList aNodes = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("id", "ctl00_Content_GridView1"))); try { TableTag table = aNodes[0] as TableTag; string temp = table.Rows[table.RowCount - 1].ToPlainTextString(); temp = temp.GetRegexBegEnd(",共", "页"); pageInt = int.Parse(temp); } catch { } for (int p = 1; p <= pageInt; p++) { if (p > 1) { viewState = this.ToolWebSite.GetAspNetViewState(html); eventValidation = this.ToolWebSite.GetAspNetEventValidation(html); NameValueCollection nvc = this.ToolWebSite.GetNameValueCollection( new string[] { "__EVENTTARGET", "__EVENTARGUMENT", "__LASTFOCUS", "__VIEWSTATE", "__VIEWSTATEENCRYPTED", "__EVENTVALIDATION", "ctl00$Content$ddlGCLB", "ctl00$Content$txtStartHysj", "ctl00$Content$txtEndHysj", "ctl00$hdnPageCount" }, new string[] { "ctl00$Content$GridView1", "Page$" + p.ToString(), "", viewState, "", eventValidation, "-1", DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.AddDays(30).ToString("yyyy-MM-dd"), p.ToString() } ); try { html = this.ToolWebSite.GetHtmlByUrl(this.SiteUrl, nvc, Encoding.UTF8); } catch { continue; } } parser = new Parser(new Lexer(html)); NodeList tableNode = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("id", "ctl00_Content_GridView1"))); if (tableNode != null && tableNode.Count > 0) { TableTag table = (TableTag)tableNode[0]; int rowCount = pageInt > 1 ? table.RowCount - 1 : table.RowCount; for (int i = 1; i < rowCount; i++) { string meetTime = string.Empty, prjName = string.Empty, meetName = string.Empty, place = string.Empty; meetTime = table.Rows[i].Columns[1].ToPlainTextString().Trim(); prjName = table.Rows[i].Columns[2].ToPlainTextString().Trim(); place = table.Rows[i].Columns[3].ToPlainTextString().Trim(); meetName = table.Rows[i].Columns[4].ToPlainTextString().Trim(); MeetInfo info = ToolDb.GenMeetInfo("广东省", "深圳市工程", string.Empty, string.Empty, prjName, place, meetName, meetTime, string.Empty, "深圳市建设工程交易中心", SiteUrl, string.Empty, string.Empty, string.Empty, string.Empty); list.Add(info); if (!crawlAll && list.Count >= this.MaxCount) { // 删除 string bDate = DateTime.Today.ToString("yyyy-MM-dd"), eDate = DateTime.Today.AddDays(31).ToString("yyyy-MM-dd"); string sqlwhere = " where City='深圳市工程' and BeginDate>='" + bDate + "' and BeginDate<='" + eDate + "' and InfoUrl='" + this.SiteUrl + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); return(list); } } } } if (list != null && list.Count > 0) { string bDate = DateTime.Today.ToString("yyyy-MM-dd"), eDate = DateTime.Today.AddDays(31).ToString("yyyy-MM-dd"); string sqlwhere = " where City='深圳市工程' and BeginDate>='" + bDate + "' and BeginDate<='" + eDate + "' and InfoUrl='" + this.SiteUrl + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); } return(list); }
protected override IList ExecuteCrawl(bool crawlAll) { IList list = new List <MeetInfo>(); string html = string.Empty; int pageInt = 1; string viewState = string.Empty; string eventValidation = string.Empty; try { html = this.ToolWebSite.GetHtmlByUrl(SiteUrl, Encoding.Default); } catch { return(list); } Parser parser = new Parser(new Lexer(html)); NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("class", "cnewslist"))); if (nodeList != null && nodeList.Count > 0) { TableTag table = nodeList[0] as TableTag; for (int i = 0; i < table.RowCount; i++) { TableRow tr = table.Rows[i]; string temp = tr.Columns[1].ToNodePlainString(); if (!temp.Contains("开标时间")) { continue; } string meetTime = string.Empty, prjName = string.Empty, meetName = string.Empty, place = string.Empty, builUnit = string.Empty; prjName = tr.Columns[0].ToNodePlainString(); meetName = "开标会"; meetTime = tr.Columns[2].ToPlainTextString(); place = tr.Columns[3].ToNodePlainString(); MeetInfo info = ToolDb.GenMeetInfo("广东省", "珠海市区", string.Empty, string.Empty, prjName, place, meetName, meetTime, string.Empty, "珠海市公共资源交易中心", SiteUrl, "", builUnit, string.Empty, string.Empty); list.Add(info); if (!crawlAll && list.Count >= this.MaxCount) { IList <MeetInfo> result = list as IList <MeetInfo>; // 删除 string bDate = result.OrderBy(x => x.BeginDate).ToList()[0].BeginDate.ToString().GetDateRegex("yyyy/MM/dd"); string eDate = Convert.ToDateTime(result.OrderByDescending(x => x.BeginDate).ToList()[0].BeginDate).AddDays(1).ToString().GetDateRegex("yyyy/MM/dd"); string sqlwhere = " where City='珠海市区' and InfoSource='珠海市公共资源交易中心' and InfoUrl='" + SiteUrl + "' and BeginDate>='" + bDate + "' and BeginDate<'" + eDate + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); return(list); } } } if (list != null && list.Count > 0) { IList <MeetInfo> result = list as IList <MeetInfo>; // 删除 string bDate = result.OrderBy(x => x.BeginDate).ToList()[0].BeginDate.ToString().GetDateRegex("yyyy/MM/dd"), eDate = Convert.ToDateTime(result.OrderByDescending(x => x.BeginDate).ToList()[0].BeginDate).AddDays(1).ToString().GetDateRegex("yyyy/MM/dd"); string sqlwhere = " where City='珠海市区' and InfoSource='珠海市公共资源交易中心' and InfoUrl='" + SiteUrl + "' and BeginDate>='" + bDate + "' and BeginDate<'" + eDate + "'"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countMeet = ToolDb.ExecuteSql(delMeetSql); } return(list); }
protected override IList ExecuteCrawl(bool crawlAll) { IList list = new List <MeetInfo>(); string html = string.Empty; string viewState = string.Empty; string eventValidation = string.Empty; int pageInt = 1; try { html = this.ToolWebSite.GetHtmlByUrl(SiteUrl, Encoding.UTF8); // 删除 string bDate = DateTime.Today.AddDays(1).ToString("yyyy-MM-dd"), eDate = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd"); string sqlwhere = " where City='东莞市区' and BeginDate<'" + bDate + "' and BeginDate>'" + eDate + "'"; string delAttachSql = "delete from BaseAttach where SourceID in(select Id from MeetInfo " + sqlwhere + ")"; string delMeetSql = "delete from MeetInfo " + sqlwhere; int countlAttach = ToolDb.ExecuteSql(delAttachSql); int countMeet = ToolDb.ExecuteSql(delMeetSql); } catch (Exception ex) { return(list); } Parser parser = new Parser(new Lexer(html)); NodeList pageList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("span"), new HasAttributeFilter("id", "ctl00_cph_context_GridViewPaingTwo1_lblGridViewPagingDesc"))); if (pageList != null && pageList.Count > 0) { try { string temp = pageList[0].ToPlainTextString().GetRegexBegEnd("共", "页"); pageInt = int.Parse(temp); } catch { } } for (int i = 1; i <= pageInt; i++) { if (i > 1) { try { viewState = this.ToolWebSite.GetAspNetViewState(html); eventValidation = this.ToolWebSite.GetAspNetEventValidation(html); NameValueCollection nvc = this.ToolWebSite.GetNameValueCollection( new string[] { "__VIEWSTATE", "__EVENTVALIDATION", "ctl00$cph_context$drp_selSeach", "ctl00$cph_context$txt_strWhere", "ctl00$cph_context$drp_Rq", "ctl00$cph_context$GridViewPaingTwo1$txtGridViewPagingForwardTo", "ctl00$cph_context$GridViewPaingTwo1$btnForwardToPage" }, new string[] { viewState, eventValidation, "1", "", "1", i.ToString(), "Go" } ); html = this.ToolWebSite.GetHtmlByUrl(SiteUrl, nvc, Encoding.UTF8); } catch { continue; } } parser = new Parser(new Lexer(html)); NodeList nodeList = parser.ExtractAllNodesThatMatch(new AndFilter(new TagNameFilter("table"), new HasAttributeFilter("id", "ctl00_cph_context_GridView1"))); if (nodeList != null && nodeList.Count > 0) { TableTag table = nodeList[0] as TableTag; for (int j = 1; j < table.RowCount; j++) { string meetTime = string.Empty, prjName = string.Empty, meetName = string.Empty, place = string.Empty, prjcode = string.Empty; TableRow tr = table.Rows[j]; prjcode = tr.Columns[1].ToNodePlainString(); meetName = tr.Columns[3].ToNodePlainString(); prjName = tr.Columns[2].ToNodePlainString(); meetTime = tr.Columns[5].ToNodePlainString().Insert(10, " "); place = tr.Columns[4].ToNodePlainString(); MeetInfo info = ToolDb.GenMeetInfo("广东省", "东莞市区", string.Empty, string.Empty, prjName, place, meetName, meetTime, string.Empty, MsgTypeCosnt.DongGuanMsgType, SiteUrl, prjcode, string.Empty, string.Empty, string.Empty); list.Add(info); if (!crawlAll && list.Count >= this.MaxCount) { //ToolDb.ExecuteAttenProject(MsgTypeCosnt.DongGuanMsgType); return(list); } } } } //if (list != null && list.Count > 0) //{ // ToolDb.ExecuteAttenProject(MsgTypeCosnt.DongGuanMsgType); //} return(list); }
/// <summary> /// 新增会议信息 /// </summary> /// <param name="meetInfo"></param> /// <returns></returns> public ReturnValueModel AddMeetInfo(MeetInfoSubscribeDto dto, string body) { ReturnValueModel rvm = new ReturnValueModel(); var meetInfoView = RongJsonUtil.JsonStringToObj <MeetInfoViewDtoModel>(body); string loginSecretkey = ConfigurationManager.AppSettings["ThirdPartyKey"]; string signature = RongHttpClient.GetHash(loginSecretkey + dto.Nonce + dto.SignTimestamp); if (signature.ToUpper() != dto.Signature.ToUpper()) { var massage = string.Format("Error:input={0}==>service={1},{2}", dto.Signature, signature, RongJsonUtil.ObjToJsonString(dto)); LoggerHelper.Error(massage); rvm.Success = false; rvm.Msg = massage; return(rvm); } string MeetType = string.Empty; if (meetInfoView?.Meet == null) { rvm.Msg = "The parameter 'Meet' is required."; rvm.Success = false; return(rvm); } if (meetInfoView?.Schedules == null || meetInfoView.Schedules.Count() == 0) { rvm.Msg = "The parameter 'Schedules' is required, and cannot be empty."; rvm.Success = false; return(rvm); } MeetInfo meet = null; if (!string.IsNullOrEmpty(meetInfoView.Meet.Id)) { meet = _rep.FirstOrDefault <MeetInfo>(s => s.Id == meetInfoView.Meet.Id && s.IsDeleted != 1); } //if (meet != null && meet.MeetStartTime.HasValue && meet.MeetStartTime <= DateTime.Now) //{ // rvm.Msg = "This meeting is started, cannot change it now."; // rvm.Success = false; // return rvm; //} // var approvalEnabled = false; //是否启用审核 using (var tran = _rep.Database.BeginTransaction()) { try { if (meet == null) { meetInfoView.Meet.Id = Guid.NewGuid().ToString(); meetInfoView.Meet.CreateTime = DateTime.Now; meetInfoView.Meet.CreateUser = "******"; meetInfoView.Meet.IsCompleted = EnumComplete.Approved; meetInfoView.Meet.Remark = "第三方调用"; } meet = meetInfoView.Meet; _rep.Insert(meet); _rep.SaveChanges(); //线下会议需要生成签到二维码 if ((meet.MeetType == 2 || meet.MeetType == 3) && string.IsNullOrEmpty(meet.MeetCodeUrl)) { meet.MeetCodeUrl = GetQRImgUrl(meet.Id); } //全国会议 if (meet.MeetType == 4 && string.IsNullOrEmpty(meet.MeetCodeUrl)) { meet.MeetCodeUrl = GetQRImgUrl(meet.Id, 5); } //直播会议 if (meet.MeetType == 5 && string.IsNullOrEmpty(meet.MeetCodeUrl)) { meet.MeetCodeUrl = GetQRImgUrl(meet.Id, 6); } //添加参会医生名单 if (meetInfoView.DoctorList != null) { foreach (var item in meetInfoView.DoctorList) { DoctorMeeting doctorMeeting = new DoctorMeeting { Id = Guid.NewGuid().ToString(), DoctorID = item, MeetingID = meet.Id, CreateUser = "******", CreateTime = DateTime.Now }; _rep.Insert(doctorMeeting); } _rep.SaveChanges(); } else { //全部人员都可访问 DoctorMeeting doctorMeeting = new DoctorMeeting { Id = Guid.NewGuid().ToString(), DoctorID = "00000000-0000-0000-0000-000000000000", MeetingID = meet.Id, CreateUser = "******", CreateTime = DateTime.Now }; _rep.Insert(doctorMeeting); _rep.SaveChanges(); } //添加标签分组信息 if (meetInfoView.TagGroupList != null) { foreach (var item in meetInfoView.TagGroupList) { DoctorMeeting doctorMeeting = new DoctorMeeting { Id = Guid.NewGuid().ToString(), TagGroupID = item, MeetingID = meet.Id, CreateUser = "******", CreateTime = DateTime.Now }; _rep.Insert(doctorMeeting); } _rep.SaveChanges(); } //添加封面图片 if (meetInfoView.CoverPictures != null) { foreach (var item in meetInfoView.CoverPictures) { if (string.IsNullOrEmpty(item?.MeetPicType) || string.IsNullOrEmpty(item?.MeetPicUrl)) { continue; //过滤空数据 } item.Id = Guid.NewGuid().ToString(); item.MeetId = meet.Id; switch (item.MeetPicType) { case "L": meet.MeetCoverBig = item.Id; break; case "S": meet.MeetCoverSmall = item.Id; break; } item.CreateTime = DateTime.Now; item.CreateUser = "******"; _rep.Insert(item); _rep.SaveChanges(); } } _rep.Update(meet); _rep.SaveChanges(); //添加会议资料 if (meetInfoView.Files != null) { foreach (var item in meetInfoView.Files) { item.Id = Guid.NewGuid().ToString(); item.MeetId = meet.Id; item.CreateTime = DateTime.Now; item.CreateUser = "******"; _rep.Insert(item); _rep.SaveChanges(); } } //添加讲者 if (meetInfoView.Speakers != null) { foreach (var item in meetInfoView.Speakers) { item.Id = Guid.NewGuid().ToString(); item.MeetId = meet.Id; item.CreateTime = DateTime.Now; item.CreateUser = "******"; _rep.Insert(item); _rep.SaveChanges(); } } //添加会议日程 if (meetInfoView.Schedules != null) { DateTime?startTime = null; DateTime?endTime = null; foreach (var item in meetInfoView.Schedules) { var scheduledate = item.ScheduleDate; scheduledate = Convert.ToDateTime(scheduledate).ToString("yyyy-MM-dd"); MeetSchedule Schedule; foreach (var val in item.ScheduleViews) { if (meetInfoView.Speakers == null || meetInfoView.Speakers.Count() == 0) { val.Speaker.Id = Guid.NewGuid().ToString(); val.Speaker.MeetId = meet.Id; val.Speaker.CreateTime = DateTime.Now; val.Speaker.CreateUser = "******"; _rep.Insert(val.Speaker); _rep.SaveChanges(); } else { val.Speaker.Id = meetInfoView.Speakers.First(s => s.SpeakerName == val.Speaker.SpeakerName)?.Id; } Schedule = new MeetSchedule(); Schedule.Id = Guid.NewGuid().ToString(); Schedule.MeetId = meet.Id; Schedule.MeetSpeakerId = val.Speaker.Id; Schedule.ScheduleStart = DateTime.Parse(scheduledate + " " + val.Schedule.ScheduleStart); Schedule.ScheduleEnd = DateTime.Parse(scheduledate + " " + val.Schedule.ScheduleEnd); Schedule.ScheduleContent = val.Schedule.ScheduleContent; Schedule.Sort = val.Schedule.Sort; Schedule.AMPM = val.Schedule.AMPM; Schedule.Topic = val.Schedule.Topic; Schedule.Speaker = val.Schedule.Speaker; Schedule.CreateTime = DateTime.Now; Schedule.CreateUser = "******"; Schedule.Remark = scheduledate; if (!startTime.HasValue || Schedule.ScheduleStart < startTime) { startTime = Schedule.ScheduleStart; } if (!endTime.HasValue || Schedule.ScheduleEnd > endTime) { endTime = Schedule.ScheduleEnd; } _rep.Insert(Schedule); } } if (startTime.HasValue) { meet.MeetStartTime = startTime; } if (endTime.HasValue) { meet.MeetEndTime = endTime; } _rep.Update(meet); _rep.SaveChanges(); } //添加会议和产品和科室关系表 if (meetInfoView.ProductAndDeps != null && meetInfoView.ProductAndDeps.BuNameList != null && meetInfoView.ProductAndDeps.Products != null && meetInfoView.ProductAndDeps.Departments != null) { MeetAndProAndDepRelation meetAndProAndDep; foreach (var buName in meetInfoView.ProductAndDeps.BuNameList) { foreach (var pro in meetInfoView.ProductAndDeps.Products) { foreach (var dep in meetInfoView.ProductAndDeps.Departments) { meetAndProAndDep = new MeetAndProAndDepRelation(); meetAndProAndDep.Id = Guid.NewGuid().ToString(); meetAndProAndDep.MeetId = meet.Id; meetAndProAndDep.ProductId = pro.ProId; meetAndProAndDep.DepartmentId = dep.DeptId; meetAndProAndDep.BuName = buName; meetAndProAndDep.CreateTime = DateTime.Now; meetAndProAndDep.CreateUser = "******"; _rep.Insert(meetAndProAndDep); } } } _rep.SaveChanges(); } //会议标识 if (meetInfoView.Tags != null) { MeetTag meetTag; foreach (var item in meetInfoView.Tags) { meetTag = new MeetTag(); meetTag.Id = Guid.NewGuid().ToString(); meetTag.MeetId = meet.Id; meetTag.TagId = item.Id; meetTag.CreateTime = DateTime.Now; meetTag.CreateUser = "******"; meetTag.Remark = "第三方调用"; _rep.Insert(meetTag); } _rep.SaveChanges(); } tran.Commit(); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { meet = meet ?? meetInfoView.Meet }; } catch (Exception ex) { tran.Rollback(); rvm.Msg = ex.Message; rvm.Success = false; } } return(rvm); }
public IHttpActionResult DeleteMeetInfo(MeetInfo meetInfo) { var ret = _meetService.DeleteMeetInfo(meetInfo, WorkUser); return(Ok(ret)); }
public IHttpActionResult ExportMeetQAResultReport(MeetInfo meetInfo) { var ret = _meetService.ExportMeetQAResultReport(meetInfo); return(Ok(ret)); }
public IHttpActionResult ExportMeetSituation(MeetInfo meetInfo) { var ret = _meetService.ExportMeetSituation(meetInfo); return(Ok(ret)); }