/// <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);
            }
        }
Esempio n. 4
0
        /// <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}"); }
        }