/// <summary> /// 获取文件夹ID /// </summary> /// <param name="user"></param> /// <returns></returns> private static string GetFolderCatalogId(EntityFramework.FenJianLi user) { var cookie = Login(user.Email, user.PassWord); var param = $"folderCatalogType=Download&_random={new Random().NextDouble()}"; var html = RequestFactory.QueryRequest("http://www.fenjianli.com/folderCatalog/treeOfFolderCatalog.htm", param, RequestEnum.POST, cookie); return(Regex.Match(html, "(?s)id:(\\d+)").Result("$1")); }
/// <summary> /// 下载简历 /// </summary> /// <param name="ids"></param> /// <param name="folderCatalogId"></param> /// <returns></returns> private static int DownloadResume(string ids, string folderCatalogId, EntityFramework.FenJianLi user) { var cookie = Login(user.Email, user.PassWord); var param = $"ids={ids}&folderCatalogId={folderCatalogId}&folderCatalogType=Download&type=add&isResumeId=true&_random={new Random().NextDouble()}"; string html = RequestFactory.QueryRequest("http://www.fenjianli.com/userResumeDetail/addToFolderCatalog.htm", param, RequestEnum.POST, cookie); if (string.IsNullOrEmpty(html)) { throw new RequestException($"下载简历失败!响应为空!,帐号:{user.Email}"); } if (html.Contains("用户可用下载点不足")) { return(1); } if (html.Contains("渠道账号")) { return(2); } if (!html.Contains("成功")) { throw new RequestException($"下载简历失败!响应:{html},帐号:{user.Email}"); } using (var db = new ResumeRepairDBEntities()) { var fenJianLi = db.FenJianLi.FirstOrDefault(f => f.Email == user.Email); if (fenJianLi != null) { fenJianLi.Integral -= 3; } if (fenJianLi != null) { fenJianLi.IsLocked = false; } db.SaveChanges(); } return(0); }
/// <summary> /// 51 授权 /// </summary> /// <param name="user"></param> /// <param name="cookie"></param> /// <param name="isFirst"></param> /// <param name="userName"></param> /// <returns></returns> public static bool Verification(EntityFramework.FenJianLi user, CookieContainer cookie, bool isFirst, string userName) { using (var db = new ResumeRepairDBEntities()) { var account = db.AuthorizationAccount.FirstOrDefault(f => f.IsEnable); if (account == null) { FenJianLiScheduling.ssf.SetText(FenJianLiScheduling.ssf.system_tbx_Exception, "获取授权帐号失败!"); return(false); } var param = $"type=Job51&extendParam={account.ExtendParam}&username={userName}&password={account.PassWord}&_random={new Random().NextDouble()}"; var sources = RequestFactory.QueryRequest("http://www.fenjianli.com/account/bindChannel.htm", param, RequestEnum.POST, cookie); if (!sources.Contains("已经绑定") && !sources.Contains("成功")) { //FenJianLiScheduling.ssf.SetText(FenJianLiScheduling.ssf.system_tbx_Exception, $"渠道授权失败!响应Json:{sources}"); return(false); } var fjlUser = db.FenJianLi.FirstOrDefault(f => f.Email == user.Email); if (isFirst) { if (fjlUser != null) { fjlUser.Integral += 250; } } if (fjlUser != null) { fjlUser.IsVerification = true; fjlUser.VerificationAccount = userName; } db.SaveChanges(); return(true); } }
/// <summary> /// 简历搜索 /// </summary> /// <param name="searchData"></param> /// <returns></returns> public DataResult <string> ResumeRepair(ResumeSearch searchData) { var dataRsult = new DataResult <string>(); try { EntityFramework.FenJianLi user = new EntityFramework.FenJianLi(); lock (lockObj) { while (!queue.TryDequeue(out user)) { using (var db = new EntityFramework.ResumeRepairDBEntities()) { var users = db.FenJianLi.Where(w => w.IsEnable).ToList(); users.ForEach(f => { queue.Enqueue(f); }); } } } var cookie = Login(user.Email, user.PassWord); // 设置 Cookie var resumeId = GetResumeId(searchData, cookie); if (string.IsNullOrWhiteSpace(resumeId)) { dataRsult.IsSuccess = false; } else { dataRsult.Data = resumeId; } return(dataRsult); } catch (Exception ex) { dataRsult.IsSuccess = false; dataRsult.ErrorMsg = $"程序异常,异常原因:{ex.Message},堆栈信息:{ex.StackTrace}"; return(dataRsult); } }
/// <summary> /// 补全信息 /// </summary> /// <param name="resumeId"></param> /// <param name="user"></param> /// <param name="resumeNo"></param> private static void AdditionalInformation(string resumeId, EntityFramework.FenJianLi user, string resumeNo) { var cookie = Login(user.Email, user.PassWord); var id = resumeId.Substring(0, resumeId.IndexOf("/")); var param = $"id={id}&_random={new Random().NextDouble()}"; To: Thread.Sleep(500); string html = RequestFactory.QueryRequest("http://www.fenjianli.com/search/getDetail.htm", param, RequestEnum.POST, cookie, "http://www.fenjianli.com/search/detail.htm"); if (string.IsNullOrWhiteSpace(html) || (html.Contains("非法") && html.Length < 20)) { goto To; } var jObject = JsonConvert.DeserializeObject(html) as JObject; var email = (string)jObject["contact"]?["email"]; var mobile = (string)jObject["contact"]?["mobile"]; string path; if (id.Length > 4) { path = $"D:\\Resumes\\Complete\\{DateTime.Now:yyyy-MM-dd}\\{id.Remove(2)}\\{id.Substring(2, 2)}"; } else { path = $"D:\\Resumes\\Complete\\{DateTime.Now:yyyy-MM-dd}\\other"; } if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } try { File.WriteAllText($"{path}\\{id}.json", html); var requestParam = new List <ResumeMatchResult> { new ResumeMatchResult { Cellphone = mobile, Email = email, ResumeNumber = resumeNo, Status = 2 } }; var dataResult = RequestFactory.QueryRequest(Global.PostResumesUrl, JsonConvert.SerializeObject(requestParam), RequestEnum.POST, contentType: "application/json"); using (var db = new ResumeRepairDBEntities()) { var matchResumeId = $"{resumeId}-{resumeNo}"; var record = db.ResumeRecord.FirstOrDefault(w => w.MatchPlatform == 1 && w.MatchResumeId == matchResumeId); if (record != null) { record.Email = email; record.Cellphone = mobile; record.Status = (int)ResumeRecordStatus.DownLoadSuccess; record.PostBackStatus = dataResult.Contains("成功") ? (short)1 : (short)2; record.DownLoadTime = DateTime.UtcNow; db.SaveChanges(); } else { FenJianLiScheduling.ssf.SetText(FenJianLiScheduling.ssf.system_tbx_Exception, $"更新补全简历信息失败!纷简历ID:{id}"); } } Interlocked.Add(ref count, 1); Interlocked.Add(ref Global.TotalDownload, 1); FenJianLiScheduling.ssf.SetText(FenJianLiScheduling.ssf.fjl_tbx_RepairResume, $"补全简历成功!{user.Email} id:{id},补全简历份数:{count}"); } catch (FileNotFoundException ex) { throw new RequestException($"找不到文件路径, 原因:{ex.Message},帐号:{user.Email}"); } }