private bool UseBack2PriceRule(PagePrice pp, BiddingPriceRequest req) { var sec = pp.pageTime.Second; var offeredPrice = req.TargetPrice; var PriceAt50 = biddingContext.GetPrice(50); int PriceBack2 = biddingContext.GetPrice(sec - 2); bool price50Matched = sec > 50 && PriceAt50 > 0 && offeredPrice >= (PriceAt50 + DrawbackDeltaPrice + 100); if (!price50Matched) { return(false); } bool priceBack2Matched = sec >= 54 && PriceBack2 > 0 && (pp.basePrice - PriceBack2) >= 200; if (!priceBack2Matched) { return(false); } bool matched = false; int delay = -1; DateTime occurTime = DateTime.Now; if (offeredPrice == (pp.basePrice + 300 + 100)) // 提前 100 { delay = KK.RandomInt(Delay1Start, Delay1End); matched = true; } else if (offeredPrice == (pp.basePrice + 300 + 200)) { delay = KK.RandomInt(Delay2Start, Delay2End); matched = true; } else if (offeredPrice == (pp.basePrice + 300 + 300)) { delay = KK.RandomInt(Delay3Start, Delay3End); matched = true; } if (matched) { req.CanSubmit = true; req.ComputedDelayMills = delay; req.SubmitMemo = "Back2 Rule"; } return(matched); }
public void SafeCheck(object state) { try { int dice = KK.RandomInt(54, 59); int minute = DateTime.Now.Minute; loggingChk = minute > dice; CheckState(state); } catch (Exception e) { logger.Error("Safe check error", e); } }
private bool UseBack3PriceRule(PagePrice pp, BiddingPriceRequest req) { var sec = pp.pageTime.Second; var offeredPrice = req.TargetPrice; var PriceAt50 = biddingContext.GetPrice(50); int PriceBack2 = biddingContext.GetPrice(sec - 2); bool price50Matched = sec > 50 && PriceAt50 > 0 && offeredPrice >= (PriceAt50 + DrawbackDeltaPrice + 100); if (!price50Matched) { return(false); } bool priceBack3Matched = sec >= 56 && (pp.basePrice - biddingContext.GetPrice(sec - 3)) == 200; if (!priceBack3Matched) { return(false); } bool matched = false; int delay = -1; DateTime occurTime = DateTime.Now; if (offeredPrice == pp.basePrice + 300 + 100) // 提前100 { delay = KK.RandomInt(delayOneS, delayOneE); matched = true; } // 20190714 增加判断 连续变动价格(100) else if (offeredPrice == pp.basePrice + 300 + 200) // 提前 200 { delay = KK.RandomInt(delayTwoS, delayTwoE); matched = true; } if (matched) { req.CanSubmit = true; req.ComputedDelayMills = delay; req.SubmitMemo = "Back3 Rule"; } return(matched); }
private bool UseFinalRule(PagePrice pp, BiddingPriceRequest req) { if (pp.pageTime.Hour >= FinalTime.Hour && pp.pageTime.Minute >= FinalTime.Minute && pp.pageTime.Second >= FinalTime.Second ) { var priceAt53 = biddingContext.GetPrice(53); var priceAt54 = biddingContext.GetPrice(54); var priceAt55 = biddingContext.GetPrice(55); var priceAt56 = biddingContext.GetPrice(56); int delay; string memo; // 并且53秒到56秒之间价格未变动,则随机延迟700到1500毫秒之后提交,否则随机延迟200到1200毫秒之后提交。 if (priceAt53 == priceAt54 && priceAt54 == priceAt55 && priceAt55 == priceAt56) { delay = KK.RandomInt(ForceStart1, ForceEnd1); memo = "Final Rule NoChange"; } else { delay = KK.RandomInt(ForceStart, ForceEnd); memo = "Final Rule"; } DateTime occurTime = DateTime.Now; req.CanSubmit = true; req.ComputedDelayMills = delay; req.SubmitMemo = memo; return(true); } return(false); }
protected override JsonCommand DoExecute(BidAccountLoginRequest req) { logger.InfoFormat("Execute BidAccountLogin: MachineCode is {0}, coords is {1}, ScreenModeVal is {2}", req.MachineCode, req.LoginCoords, req.ScreenModeVal); // string bidNo, string password, string idCardNo, bool clickLoginButton var coords = req.LoginCoords; var arr = coords.Split(';'); var p1 = CoordPoint.FromAndAdjustRemote(arr[0]); var p2 = CoordPoint.FromAndAdjustRemote(arr[1]); var p3 = CoordPoint.FromAndAdjustRemote(arr[2]); bool isAbsolute = false; if (req.ScreenModeVal == 10) { isAbsolute = true; } Task ta = loginActManager.LoginBidAccount(req.BidAccountNo, req.BidAccountPswd, req.BidAccountIdCard, false); ta.ContinueWith((task) => { bidActionManager.ClickBtnOnceAtPoint(p1, "验证码坐标 点1", isAbsolute, KK.RandomInt(100, 500)); bidActionManager.ClickBtnOnceAtPoint(p2, "验证码坐标 点2", isAbsolute, KK.RandomInt(100, 500)); bidActionManager.ClickBtnOnceAtPoint(p3, "验证码坐标 点3", isAbsolute, KK.RandomInt(100, 500)); loginActManager.ClickLoginButton(); }); // ta.Wait(); // ThreadUtils.StartNewTaskSafe(); return(null); }
private void _LoginBidAccount(string bidNo, string password, string idCardNo, bool clickLoginButton) { // 登录页 var p21 = actionManager.DeltaPoint(610, 168); var p22 = actionManager.DeltaPoint(610, 218); var p23 = actionManager.DeltaPoint(610, 264); actionManager.InputTextAtPoint(p21, bidNo, true, "投标号"); KK.Sleep(KK.RandomInt(100, 500)); actionManager.InputTextAtPoint(p22, password, true, "密码"); KK.Sleep(KK.RandomInt(100, 500)); // 可能需要输入身份证 - 身份证 isIdCardShow = IsIdCardNeeded(); if (isIdCardShow) { actionManager.InputTextAtPoint(p23, idCardNo, true, "身份证"); } else { var p231 = actionManager.DeltaPoint(610, 256); actionManager.InputTextAtPoint(p231, idCardNo, true, "身份证"); } KK.Sleep(KK.RandomInt(100, 500)); //this.inputCaptchaAtLogin(p23, "301726"); //this.clickLoginAtLogin(p24); if (clickLoginButton) { ClickLoginButton(); } logger.InfoFormat("login account#{0} ", bidNo); }