jingcai-php/app/Http/Controllers/TestController.php

536 lines
16 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers;
use App\Console\Commands\GenerateCustomerFame;
use App\Console\Commands\GenerateCustomerHitRate;
use App\Console\Commands\GenerateCustomerProfit;
use App\Console\Commands\Lq\SyncJclqOdds;
use App\Console\Commands\Lq\SyncJclqResult;
use App\Console\Commands\Lq\SyncLqCompany;
use App\Console\Commands\Lq\SyncLqMainOdds;
use App\Console\Commands\Lq\SyncLqMatch;
use App\Console\Commands\Lq\SyncLqMatchChange;
use App\Console\Commands\Lq\SyncLqSeason;
use App\Console\Commands\Report\GenerateDayWin;
use App\Console\Commands\Zq\SyncCtzq;
use App\Console\Commands\Zq\SyncJczqOdds;
use App\Console\Commands\Zq\SyncJczqResult;
use App\Console\Commands\Zq\SyncMatch;
use App\Console\Commands\Zq\SyncMatchChange;
use App\Console\Commands\Zq\SyncZqCompany;
use App\Console\Commands\Zq\SyncZqMainOdds;
use App\Enums\LottType;
use App\Enums\PlayType;
use App\Jobs\ComputeCtzqJqcOrderPrize;
use App\Jobs\ComputeJclqOrderPrize;
use App\Jobs\ComputeJczqOrderPrize;
use App\Jobs\RefreshOrderCtzqBqcResult;
use App\Jobs\RefreshOrderCtzqJqcResult;
use App\Jobs\RefreshOrderJclqResult;
use App\Jobs\RefreshOrderJczqResult;
use App\Model\Config;
use App\Model\Customer\Customer;
use App\Model\Customer\CustomerRecharge;
use App\Model\Customer\CustomerWithdraw;
use App\Model\Lottery;
use App\Model\Lq\JclqOdds;
use App\Model\Lq\JclqMatch;
use App\Model\Order;
use App\Model\Report\ReportDayWin;
use App\Model\Seller\Seller;
use App\Model\Seller\Shop;
use App\Model\Zq\CtzqJqc;
use App\Model\Zq\CtzqJqcMatch;
use App\Model\Zq\JczqOdds;
use App\Model\Zq\ZqMatch;
use App\Service\CtzqJqcService;
use App\Service\External\AlStatService;
use App\Service\JclqService;
use App\Service\JczqService;
use App\Service\JingCaiTrait;
use App\Service\LotteryService;
use App\Service\PlayTypeService;
use App\Service\RechargeService;
use App\Utils\Helps;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use App\Events\OrderTicketedEvent;
use App\Jobs\ComputeCustomerBuyLevelScore;
class TestController extends Controller
{
public function customerId() {
return 1;
}
//常 让
//
//+1
//胜->胜
//平->胜
//负-> 平,负
//
//+2+
//胜->胜
//平->胜
//负-> 胜,平,负
//
//
//-1
//胜->胜,平
//平->负
//负-> 负
//
//-2-
//胜->胜,平,负
//平->负
//负->负
public function searchMaxSpfRq($matchOdds)
{
$result = [];
$spfData = Arr::get($matchOdds, 'spf_odds');
$rqData = Arr::get($matchOdds, 'rq_odds');
if ($spfData && $rqData) {
$rqNum = Arr::get($matchOdds, 'rq_odds.handicap');
if ($rqNum !== null) {
$winArray = [];
$drawArray = [];
$lossArray = [];
Arr::get($matchOdds, 'spf_odds.win') !== null && $winArray['spf_odds']['win'] = Arr::get($matchOdds, 'spf_odds.win');
Arr::get($matchOdds, 'spf_odds.draw') !== null && $drawArray['spf_odds']['draw'] = Arr::get($matchOdds, 'spf_odds.draw');
Arr::get($matchOdds, 'spf_odds.loss') !== null && $lossArray['spf_odds']['loss'] = Arr::get($matchOdds, 'spf_odds.loss');
if ($rqNum == 1) {
foreach ($rqData as $playField => $playOdds) {
if ( $playField == 'win') {
$winArray['rq_odds'][$playField] = $playOdds;
$drawArray['rq_odds'][$playField] = $playOdds;
}
if ( $playField == 'draw') {
$lossArray['rq_odds'][$playField] = $playOdds;
}
if ( $playField == 'loss') {
$lossArray['rq_odds'][$playField] = $playOdds;
}
}
} else if ($rqNum >= 2) {
foreach ($rqData as $playField => $playOdds) {
if ( $playField == 'win') {
$winArray['rq_odds'][$playField] = $playOdds;
$drawArray['rq_odds'][$playField] = $playOdds;
$lossArray['rq_odds'][$playField] = $playOdds;
}
if ( $playField == 'draw') {
$lossArray['rq_odds'][$playField] = $playOdds;
}
if ( $playField == 'loss') {
$lossArray['rq_odds'][$playField] = $playOdds;
}
}
} else if ($rqNum == -1) {
foreach ($rqData as $playField => $playOdds) {
if ( $playField == 'win') {
$winArray['rq_odds'][$playField] = $playOdds;
}
if ( $playField == 'draw') {
$winArray['rq_odds'][$playField] = $playOdds;
}
if ( $playField == 'loss') {
$drawArray['rq_odds'][$playField] = $playOdds;
$lossArray['rq_odds'][$playField] = $playOdds;
}
}
} else if ($rqNum <= -2) {
foreach ($rqData as $playField => $playOdds) {
if ( $playField == 'win') {
$winArray['rq_odds'][$playField] = $playOdds;
}
if ( $playField == 'draw') {
$winArray['rq_odds'][$playField] = $playOdds;
}
if ( $playField == 'loss') {
$winArray['rq_odds'][$playField] = $playOdds;
$drawArray['rq_odds'][$playField] = $playOdds;
$lossArray['rq_odds'][$playField] = $playOdds;
}
}
}
dump(['win' => $winArray,
'draw' => $drawArray,
'loss' => $lossArray,
]);
}
dd($matchOdds);
return [];
}
}
public function appendHandicap($oddsData)
{
foreach ($oddsData as $id => &$playData) {
if (Arr::get($playData, 'rq_odds')) {
$jcodds = JczqOdds::find($id);
$playData['rq_odds']['handicap'] = $jcodds->rq_odds['handicap'];
}
}
return $oddsData;
$spfrq = [];
foreach ($oddsData as $id => $playData) {
}
$odds = JczqOdds::whereIn('id', array_keys($oddsData))->get();
}
public function index(Request $request,
PlayTypeService $playTypeService,
JczqService $jczqService,
CtzqJqcService $jqcService,
AlStatService $alStatService,
JclqService $jclqService,
RechargeService $rechargeService
)
{
$data = [
1172 => [
'spf_odds' => [
'win' => 1.1,
'draw' => 1.2,
'loss' => 1.3,
],
'rq_odds' => [
'win' => 1.4,
'draw' => 1.5,
'loss' => 1.6,
],
],
1173 => [
'spf_odds' => [
'win' => 2.1,
'draw' => 2.2,
'loss' => 2.3,
],
'rq_odds' => [
'win' => 2.4,
'draw' => 2.5,
'loss' => 2.6,
],
],
];
$data = $this->appendHandicap($data);
$this->searchMaxSpfRq($data[1172]);
$this->searchMaxOdds($data);
return;
$fdata = $jczqService->generateBetsInfo($data, ['2.1'], 1);
dd($fdata);
$cdata = Helps::getCombinationData($fdata, 2);
dd($cdata);
$betsInfos = $this->getBetsInfoFromCombinationData($cdata);
dd($betsInfos);
echo 11;exit;
// $this->dispatch(new ComputeCustomerBuyLevelScore(1));
// return;
event(new OrderTicketedEvent(1));return;
dd(JclqMatch::find(87630)->toArray());
(new GenerateCustomerHitRate())->handle();return;
// (new SyncJclqOdds())->handle();return;
// ComputeJczqOrderPrize::dispatch(8);return;
//
//// RefreshOrderJczqResult::dispatch(2);
//// RefreshOrderJczqResult::dispatch(21);return;
// /** @var JczqService $jingcaiService */
// $jingcaiService = app(JczqService::class);
// $od=Order::find(6);
// $odds = $jingcaiService->refreshOdds($od->odds);
// $computeInfo = $jingcaiService->computePrizeInfo($odds, 4, $od->pass_mode);
//
// $betsInfos = $jingcaiService->generateBetsInfo($odds,$od->pass_mode, 4);
// dd($betsInfos);
RefreshOrderCtzqBqcResult::dispatch(2);
// RefreshOrderCtzqJqcResult::dispatch(12);
// RefreshOrderCtzqJqcResult::dispatch(13);
// RefreshOrderCtzqJqcResult::dispatch(14);
return;
// ComputeJczqOrderPrize::dispatch(2);return;
//
// return;
// dd($closeTimes);
// $json = $jclqService->refreshOdds($odds);
// dump($json);
// $info = $jclqService->computePrizeInfo($json, 3, ['2.1']);
// dd($info);
// (new SyncOdds())->handle();
// return;
// $ss = $jclqService->generatePrize($data, 1);
// dd($ss);
(new SyncCtzq())->handle();return;
// (new SyncMatchChange())->handle();
// (new SyncJczqOdds())->handle();
// (new SyncZqCompany())->handle();
// (new SyncMatch())->syncMatch(1,'22/23');
// return;
// dd(str_replace('odds', '', 'ssod_odds'));
// dd(substr('sd_odds', -5));
// RefreshOrderJclqResult::dispatch(2);
// ComputeJclqOrderPrize::dispatch(17);
// return;
// dd(1%2,2%2,3%2,4%2,5%2,0%2);
// (new SyncCompetition())->handle();
// (new SyncTeam())->handle();
// (new SyncJczqOdds())->handle();
// (new SyncZqMainOdds())->handle();return;
// (new SyncLqMainOdds())->handle();return;
// (new SyncLqCompany())->handle();return;
// (new SyncLqSeason())->handle();return;
// (new \App\Console\Commands\Lq\SyncCompetition())->handle();
// (new \App\Console\Commands\Lq\SyncCompetition())->handle();
// (new SyncLqMatchChange())->handle();return;
// (new SyncLqMatch())->syncMatch(265);return;
(new SyncJczqOdds())->handle();return;
//
$res = $alStatService->getLqLeaqueTable(97003 );
echo json_encode($res);exit;
$id = '1 \' or \'1=1';
$s = Order::where('id', $id)->count();
return $s;
$ss = urlencode('../');
dump($ss);
$ss = urlencode('..\\');
dump($ss);
dd(111);
RefreshOrderCtzqJqcResult::dispatch(1);
return;
$data = json_decode('{
"1":{
"home_odds":[0,1,2,3],
"away_odds":[0,1,2,3]
},
"2":{
"home_odds":[0,1,2,3],
"away_odds":[1]
},
"3":{
"home_odds":[1],
"away_odds":[1]
},
"4":{
"home_odds":[1],
"away_odds":[1]
}
}', true);
$service->computePrizeInfo($data, 1);
return;
$odds =JclqOdds::find(1);
JclqOdds::unsetLastSuffixField($odds);
dd($odds->toArray());
$s = Shop::find(1);
// $s->phone = '13711111111';
$s->password_pay = Seller::encryPassword('111111');
$s->save();
dd($s->toArray());
dd(Helps::validIdCard('410728198710275522'));
return $this->withdrawList($request);
$with = CustomerWithdraw::find(1);
dd($with->customer->toArray());
// $seller = Seller::find(1);
// $effect = $seller->save();
// dd($effect);
// return;
//
// $order = Order::find(14);
// dd($order->pOrder->toArray());
//
// dd(OrderJczqResult::where('published', 11)->get()->pluck('id')->toArray());
ComputeOrderPrize::dispatch(18);
return;
LotteryResultEvent::dispatchResult(1,LottType::JCZQ);
LotteryResultEvent::dispatchResult(2,LottType::JCZQ);
// event(new LotteryResultEvent(1,LottType::JCZQ));
return;
$order = Order::with('unionOrder')->find(15);
dd($order->toArray());
dd(is_float(1/3));
$piaos = [
];
dump($betsInfos);
foreach ($betsInfos as $k => $betsInfo) {
$this->piaoAddBets($piaos, $betsInfo);
}
echo json_encode($piaos);
dd(['piaos' => $piaos]);
$ss = $jczqService->refreshOdds($data);
dd($data,$ss);
// $ss = config('lottery.lottery');
$ss = Lottery::find(1);
dd($ss);
$rechar = CustomerRecharge::find(1);
dd($rechar->trade);
$data = [
'pay_type' => 'alipay',
'pay_money' => 1,
];
$dd = $rechargeService->customerCreateRecharge(Customer::find(1), $data);
dd($dd);
$d = uniqid(mt_rand(100000,999999),true);
dd($d,crc32($d),strlen(crc32($d)));
$oddsData = [
1 => [
'spf' => [
'win' => 1
]
],
2 => [
'spf' => [
'win' => 2
]
],
3 => [
'spf' => [
'win' => 3
]
]
];
$ss = JingCaiTrait::generatePassModeInfo(1, PlayType::BF);
dd($ss);
$f = $jczqService->formatData($oddsData);
dump($f);
$checkedData = [[0,1,2],[2,3,4],[5,6]];
$checkedData = $f;
$ss = Helps::getCombinationData($checkedData, 2);
dd($ss);
$checkedData = [[0,1,2],[2,3,4],[5,6]];
// $checkedData = $f;
// $ss = Helps::getCombinationData($checkedData, 2);
// dd($ss);
$spf = [
'loss' => 2.25
];
$rq = [
'draw' => 2.75
];
// $dss = $jczqService->validZuHe(4, $oddsData);
// dd($dss);
/** @var JczqService $JczqService */
$JczqService = app(JczqService::class);
// dd(PlayType::asSelectArray());
$keys = ['2.1'];
$ss = $JczqService->computePrizeInfo($data, PlayType::SPF,2, $keys);
dd($ss);
$ss = JczqService::getPassMode(3, PlayType::ALL);
echo json_encode($ss);exit;
dd();
$mns = JingcaiRule::getMnInfo(3);
dd($keys, $mns);
dd($ss);
$baseColl = collect($data);
$mon = [];
foreach ($ss as $item) {
$keyArr = explode(',', $item);
foreach ($keyArr as $key) {
$keyInfo = $this->parserJczqKey($key);
$baseItemArr = $baseColl->where('id', $keyInfo['id'])->first();
$m = Arr::get($baseItemArr, $keyInfo['play'] .'.' .$keyInfo['play2'], null);
if ($m === null) {
throw new \Exception('数据有误');
}
$mon[]=$m;
}
}
dd($mon);
$checkedData = ["01","02","03","04"];
$checkedData = $f;
$data = Helps::combination($checkedData,2);//两组
// dump($data);
// $data = Helps::combination($checkedData,3);//三组
dd($data);
$l = Lottery::with('lotteryType')->find(1);
/** @var LotteryService $lotteryService */
$lotteryService = app(LotteryService::class);
// $excel_file_path = 你的 Excel 文件存放地址
$excel_file_path = '/Users/wild/Desktop/mcn.xlsx';
}
}