浏览代码

修改bug

lip 2 小时之前
父节点
当前提交
fc498ad897

+ 0 - 74
app/Console/Commands/FootballSettlement.php

@@ -1,74 +0,0 @@
-<?php
-
-namespace App\Console\Commands;
-
-use Illuminate\Console\Command;
-use App\Models\Order;
-use App\Models\SportOdds;
-
-class FootballSettlement extends Command
-{
-    /**
-     * 命令名称和签名
-     *
-     * @var string
-     */
-    protected $signature = 'football:settlement';
-    
-    /**
-     * 命令描述
-     *
-     * @var string
-     */
-    protected $description = '足球结算方法';
-    /**
-     * 执行命令
-     *
-     * @return int
-     */
-    public function handle()
-    {
-
-        $this->sportOrderSettlement();
-    }
-
-    public function sportOrderSettlement(){
-        try {
-            $where = [
-                'sport_order.status' => 1,
-                'sport_order.pay_status' => 1,
-                'sport_order.return_status' => 0,
-                'sport_order.settlement_status' => 0,
-            ];
-            $list = Order::join('sport', 'sport_order.issue', '=', 'sport.data_id')
-                    //->where('sport.state', 2)
-                    ->where($where)
-                    ->select('sport_order.*', 'sport.data_id','sport.score','sport.half_score','sport.home_team_id','sport.guest_team_id')
-                    ->get()->toArray();
-            foreach($list as $item) {
-                $detail = json_decode($item['detail'], true);
-                $odd_id = $detail['odds'][0]['id'];
-                $function = SportOdds::where('id',$odd_id)->value('function_name');
-                if (!$function) {
-                    echo $detail['odds'][0]['name'];
-                    continue;
-                }
-                $params = [
-                    'score' => $item['score'], 
-                    'half_score' => $item['half_score'],
-                    'data_id' => $item['data_id'],
-                    'home_team_id' => $item['home_team_id'],
-                    'guest_team_id' => $item['guest_team_id'],
-                ];
-                
-                $result = $function($item['amount'], $detail, $params);
-                print_r($result);die;
-            }
-        } 
-        catch (\Exception $e) {
-            echo $e->getMessage();
-        }
-    }
-
-
-}

+ 0 - 78
app/Console/Commands/LhcLottery.php

@@ -1,78 +0,0 @@
-<?php
-
-namespace App\Console\Commands;
-
-use Illuminate\Console\Command;
-use App\Models\LhcLottery as LhcLotteryModel;
-use Illuminate\Support\Facades\Log;
-
-class LhcLottery extends Command
-{
-    /**
-     * 命令名称和签名
-     *
-     * @var string
-     */
-    protected $signature = 'lhc:lottery';
-    
-    /**
-     * 命令描述
-     *
-     * @var string
-     */
-    protected $description = '六合彩开奖数据抓取,每日21:36后开始执行一次';
-
-    /**
-     * 执行命令
-     *
-     * @return int
-     */
-    public function handle()
-    {
-        $num = 0;
-        while ($num < 10) {
-            $num ++;
-            $res = $this->spider();
-            echo date('Y-m-d H:i:s').' 第'.$num.'次尝试,结果:'.$res.PHP_EOL;
-            if ($res === false) {
-                sleep(60);
-            } else {
-                break;
-            }
-        }
-    }
-
-    
-    public function spider()
-    {
-        $url = 'https://api.bjjfnet.com/data/opencode/2032';
-        try {
-            $json = file_get_contents($url);
-            $data = json_decode($json, true);
-            if (empty($data)) {
-                throw new \Exception('六合彩 Empty data');
-            }
-            if ($data['code'] != 0) {
-                throw new \Exception('六合彩 code 不为 0');
-            }
-            $lotteries = array_reverse($data['data']);
-
-            foreach ($lotteries as $lottery) {
-                $exists = LhcLotteryModel::where('issue', $lottery['issue'])->first();
-                if ($exists) {
-                    continue;
-                }
-                $mode = new  LhcLotteryModel;
-                $mode->issue = $lottery['issue'];
-                $mode->open_code = $lottery['openCode'];
-                $mode->open_time = strtotime($lottery['openTime']);
-                $mode->save();
-            }
-        } catch (\Exception $e) {
-            Log::error("六合彩开奖数据抓取失败:".$e->getMessage());
-            return false;
-        }
-        return true;
-    }
-
-}

+ 0 - 35
app/Console/Commands/LhcSettlement.php

@@ -1,35 +0,0 @@
-<?php
-
-namespace App\Console\Commands;
-
-use Illuminate\Console\Command;
-use App\Services\LhcSettlementService;
-
-class LhcSettlement extends Command
-{
-    /**
-     * 命令名称和签名
-     *
-     * @var string
-     */
-    protected $signature = 'lhc:settlement';
-    
-    /**
-     * 命令描述
-     *
-     * @var string
-     */
-    protected $description = '六合彩结算方法';
-    /**
-     * 执行命令
-     *
-     * @return int
-     */
-    public function handle(LhcSettlementService $service)
-    {
-        $issue = $this->argument('issue');
-        $this->info("开始结算期号: {$issue}...");
-        $result = $service->settle($issue);
-        $this->info($result);
-    }
-}

+ 0 - 1616
app/Helpers/FootballSettlement.php

@@ -1,1616 +0,0 @@
-<?php
-use app\models\SportEvent;
-
-/***************胜相关的玩法***************** */
-/**
- * 全场胜负(Match Winner) 玩法
- * 主胜(Home)、平局(Draw)、客胜(Away)
- * $amount:下注金额
- * $params['score']:主队-客对   
- * $detail:下注时的详情
- */
-function MatchWinner($amount, $detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = $value_and_odd['value'];
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > $away && $value == 'Home') {
-        $is_win = 1;
-    } elseif ($away > $home && $value == 'Away') {
-        $is_win = 1;
-    } elseif ($home == $away && $value == 'Draw') {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Home/Away(主胜/客胜) 玩法(平局不输不赢)
- * 主胜(Home)、平局(Draw)、客胜(Away)
- * $amount:下注金额
- * $params['score']:主队-客对   
- * $detail:下注时的详情
- */
-function HomeAwayWinner($amount, $detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = $value_and_odd['value'];
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > $away && $value == 'Home') {
-        $is_win = 1;
-    } elseif ($away > $home && $value == 'Away') {
-        $is_win = 1;
-    } elseif ($home == $away && $value == 'Draw') {
-        $is_win = 2;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-
-/**
- * Second Half Winner(下半场胜负) 玩法
- * 主胜(Home)、平局(Draw)、客胜(Away)
- * $amount:下注金额
- * $half_score:上半场比分
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function SecondHalfWinner($amount, $detail, $params)
-{
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = $value_and_odd['value'];
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > $away && $value == 'Home') {
-        $is_win = 1;
-    } elseif ($away > $home && $value == 'Away') {
-        $is_win = 1;
-    } elseif ($home == $away && $value == 'Draw') {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Win to Nil - Home(主队零封获胜:主队赢,客队的进球数为 0) 玩法
- * -yes: 主队零封获胜就中奖
- * -no: 非主队零封获胜就中奖
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function WinToNilHomeWinner($amount, $detail, $params)
-{
-}
-
-/**
- * First Half Winner(上半场胜负) 玩法
- * 主胜(Home)、平局(Draw)、客胜(Away)
- * $amount:下注金额
- * $half_score:上半场比分
- * $detail:下注时的详情
- */
-function FirstHalfWinner($amount, $detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = $value_and_odd['value'];
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > $away && $value == 'Home') {
-        $is_win = 1;
-    } elseif ($away > $home && $value == 'Away') {
-        $is_win = 1;
-    } elseif ($home == $away && $value == 'Draw') {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-
-/**
- * Win Both Halves(上下半场均获胜) 玩法
- * -Home: 主队上下半场都赢就中奖
- * -Away: 客队上下半场都赢就中奖
- * $amount:下注金额
- * $params['half_score']:上半场比分
- * $params['score']:主队-客对   
- * $detail:下注时的详情
- */
-function WinBothHalvesWinner($amount, $detail, $params)
-{
-    //上半场得分
-    $score = getScore($params['half_score']);
-    $home_first_half = $score['home'];
-    $away_first_half = $score['away'];
-    //下半场得分
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $home_second_half = $score['home'];
-    $away_second_half = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = $value_and_odd['value'];
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home_first_half > $away_first_half && $home_second_half > $away_second_half && $value == 'Home') {
-        $is_win = 1;  //主胜
-    } elseif ($home_first_half < $away_first_half && $home_second_half < $away_second_half && $value == 'Away') {
-        $is_win = 1;  //客胜
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Double Chance(双选胜平负) 玩法
- * -Home or Draw:主队赢或打平就中奖
- * -Away or Draw:客队赢或打平就中奖
- * -Home or Away:只要分出胜负你就中奖
- * $amount:下注金额
- * $params['score']:主队-客对   
- * $detail:下注时的详情
- */
-function DoubleChance($amount, $detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = $value_and_odd['value'];
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home >= $away && ($value == 'Home or Draw' || $value == 'Home/Draw')) {
-        $is_win = 1;
-    } elseif ($away >= $home && ($value == 'Away or Draw' || $value == 'Away/Draw')) {
-        $is_win = 1;
-    } elseif ($home != $away && ($value == 'Home or Away' || $value == 'Home/Away')) {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Double Chance - First Half(上半场双选胜平负) 玩法
- * -Home or Draw:主队赢或打平就中奖
- * -Away or Draw:客队赢或打平就中奖
- * -Home or Away:只要分出胜负你就中奖
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function DoubleChanceFirstHalf($amount, $detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = $value_and_odd['value'];
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home >= $away && ($value == 'Home or Draw' || $value == 'Home/Draw')) {
-        $is_win = 1;
-    } elseif ($away >= $home && ($value == 'Away or Draw' || $value == 'Away/Draw')) {
-        $is_win = 1;
-    } elseif ($home != $away && ($value == 'Home or Away' || $value == 'Home/Away')) {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-
-
-/***************进球相关的玩法***************** */
-/**
- * Both Teams Score(双方均有进球) 玩法
- * -Yes: 预测两支球队在比赛中都能至少攻入 1 球
- * -No: 预测至少有一支球队进球数为 0(或者两队都没有进球)
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function BothTeamsScore($amount, $detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    return getBothTeamsScore($amount, $home, $away,$detail);
-}
-
-/**
- * Team To Score First(首支进球球队) 玩法
- * -Home: 预测主队打入全场第一个进球
- * -Away: 预测客队打入全场第一个进球
- * -Draw: 预测两队打平
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function TeamToScoreFirst($amount, $detail, $params)
-{
-    return teamToScore($amount, $detail, $params['data_id'], $params['home_team_id'], $params['guest_team_id'], 'first');
-}
-
-/**
- * Team To Score Last(首支进球球队) 玩法
- * -Home: 预测主队打入全场第一个进球
- * -Away: 预测客队打入全场第一个进球
- * -Draw: 预测两队打平
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function TeamToScoreLast($amount, $detail, $params)
-{
-    return teamToScore($amount, $detail, $params['data_id'], $params['home_team_id'], $params['guest_team_id'], 'last');
-}
-
-function teamToScore($amount, $detail, $data_id, $home_team_id, $away_team_id, $type = 'first')
-{
-    $order = $type == 'first' ? 'asc' : 'desc';
-    $team_id = SportEvent::where('data_id', $data_id)->where('type', 'Goal')->order('time_elapsed', $order)->value('team_id');
-    $value_and_odd = getValueAndOdd($detail);
-    $value = $value_and_odd['value'];
-    $odd = $value_and_odd['odd'];
-    
-    $is_win = 0;
-    if ($home_team_id == $team_id && strtolower($value) == 'home' ) {
-        $is_win = 1;
-    } elseif ($away_team_id == $team_id && strtolower($value) == 'away' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Total - Home(主队总进球数) 玩法
- * -Over 1.5: 预测主队至少打进 2 个 或更多球
- * -Under 1.5: 预测主队进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function TotalHome($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    return totalHomeOrAway($amount, $home,$detail);
-}
-
-/**
- * Total - Away(客队总进球数) 玩法
- * -Over 1.5: 预测客队至少打进 2 个 或更多球
- * -Under 1.5: 预测客队进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function TotalAway($amount, $detail, $params)
-{
-    $score = getScore($params['score']);
-    $away = $score['away'];
-    return totalHomeOrAway($amount, $away,$detail);
-}
-
-/**
- * Both Teams Score - First Half(上半场双方均进球) 玩法
- * -Yes: 预测上半场结束时,两队都至少各进一球
- * -No: 预测上半场结束时,至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function BothTeamsScoreFirstHalf($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    return getBothTeamsScore($amount, $home, $away, $detail);
-}
-
-/**
- * Both Teams To Score - Second Half(下半场双方均进球) 玩法
- * -Yes: 预测下半场结束时,两队都至少各进一球
- * -No: 预测下半场结束时,至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function BothTeamsScoreSecondHalf($amount,$detail, $params)
-{
-    $half_score = getHalfScore($params['score'], $params['half_score']);
-    $half_home = $half_score['home'];
-    $half_away = $half_score['away'];
-    return getBothTeamsScore($amount, $half_home, $half_away, $detail);
-}
-
-/**
- * Goals Over/Under(全场大小球) 玩法
- * -Over 1.5: 预测全场总进球数大于1.5
- * -Under 1.5: 预测全场进球数小于1.5
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function GoalsOverUnder($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $score = $score['home'] + $score['away'];
-    return totalHomeOrAway($amount, $score, $detail);
-}
-
-/**
- * Goals Over/Under First Half(上半场大小球) 玩法
- * -Over 1.5: 预测上半场总进球数大于1.5
- * -Under 1.5: 预测上半场进球数小于1.5
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function GoalsOverUnderFirstHalf($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $score = $score['home'] + $score['away'];
-    return totalHomeOrAway($amount, $score, $detail);
-}
-
-/**
- * Goals Over/Under - Second Half(下半场大小球) 玩法
- * -Over 1.5: 预测下半场总进球数大于1.5
- * -Under 1.5: 预测下半场进球数小于1.5
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function GoalsOverUnderSecondHalf($amount,$detail, $params)
-{
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $score = $score['home'] + $score['away'];
-    return totalHomeOrAway($amount, $score, $detail);
-}
-
-//双方均进球的处理方法
-function getBothTeamsScore($amount, $home, $away,$detail)
-{
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($home > 0 && $away > 0 && strtolower($value) == 'yes' ) {
-        $is_win = 1;
-    } elseif (($away == 0 || $home == 0) && strtolower($value) == 'no' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Odd/Even(总进球数奇偶) 玩法
- * -Yes: 预测上半场结束时,两队都至少各进一球
- * -No: 预测上半场结束时,至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function OddEven($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $goals = $score['home'] + $score['away'];
-    return getOddEven($amount, $goals, $detail);
-}
-
-/**
- * Odd/Even - First Half(上半场进球奇偶) 玩法
- * -Odd: 进球数除以 2 余 1
- * -Even: 进球数除以 2 余 0
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function OddEvenFirstHalf($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $half_goals = $score['home'] + $score['away'];
-    return getOddEven($amount, $half_goals, $detail);
-}
-
-/**
- * Odd/Even - Second Half(下半场进球奇偶) 玩法
- * -Odd: 进球数除以 2 余 1
- * -Even: 进球数除以 2 余 0
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function OddEvenSecondHalf($amount,$detail, $params)
-{
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $half_goals = $score['home'] + $score['away'];
-    return getOddEven($amount, $half_goals, $detail);
-}
-
-/**
- * Home Odd/Even(主队进球奇偶) 玩法
- * -Odd: 进球数除以 2 余 1
- * -Even: 进球数除以 2 余 0
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HomeOddEven($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    return getOddEven($amount, $home, $detail);
-}
-
-/**
- * Away Odd/Even(客队进球奇偶) 玩法
- * -Odd: 进球数除以 2 余 1
- * -Even: 进球数除以 2 余 0
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function AwayOddEven($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $away = $score['away'];
-    return getOddEven($amount, $away, $detail);
-}
-
-//进球数奇偶的处理方法
-function getOddEven($amount, $goals,$detail)
-{
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($goals % 2 == 1 && strtolower($value) == 'odd' ) {
-        $is_win = 1;
-    } elseif ($goals % 2 == 0 && strtolower($value) == 'even' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Home Team Total Goals(1st Half)(主队上半场总进球) 玩法
- * -Over 1.5: 预测主队上半场至少打进 2 个 或更多球
- * -Under 1.5: 预测主队上半场进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HomeTeamTotalGoals($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $home = $score['home'];
-    return totalHomeOrAway($amount, $home,$detail);
-}
-
-/**
- * Away Team Total Goals(1st Half)(客队上半场总进球) 玩法
- * -Over 1.5: 预测客队上半场至少打进 2 个 或更多球
- * -Under 1.5: 预测客队上半场进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function AwayTeamTotalGoals($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $away = $score['away'];
-    return totalHomeOrAway($amount, $away,$detail);
-}
-
-/**
- * Home Team Total Goals(2nd Half)(主队下半场总进球) 玩法
- * -Over 1.5: 预测主队下半场至少打进 2 个 或更多球
- * -Under 1.5: 预测主队下半场进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HomeTeamTotalGoals2($amount,$detail, $params)
-{
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $home_half = $score['home'];
-    return totalHomeOrAway($amount, $home_half,$detail);
-}
-
-/**
- * Away Team Total Goals(2nd Half)(客队下半场总进球) 玩法
- * -Over 1.5: 预测客队下半场至少打进 2 个 或更多球
- * -Under 1.5: 预测客队下半场进球数为 0 个 或 1 个
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function AwayTeamTotalGoals2($amount,$detail, $params)
-{
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $away_half = $score['away'];
-    return totalHomeOrAway($amount, $away_half,$detail);
-}
-
-//$score:主队/客队的进球数
-function totalHomeOrAway($amount, $score,$detail)
-{
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $value = explode(' ', $value);
-    $type = $value[0];
-    $goal = $value[1];
-    $is_win = 0;
-    if ($score > $goal && strtolower($type) == 'over' ) {
-        $is_win = 1;
-    } elseif ($score < $goal && strtolower($type) == 'under' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Total Goals/Both Teams To Score(总进球+双方进球) 玩法
- * -o/yes 2.5: 大于 2.5 且 双方进球
- * -o/no 2.5: 大于 2.5 且 双方不同时进球(有一方为0)
- * -u/yes 2.5: 小于 2.5 且 双方进球
- * -u/no 2.5: 小于 2.5 且 双方不同时进球(且至少有一队没进球)
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function TotalGoalsBothTeamsToScore($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    $score = $home + $away;
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $value = explode(' ', $value);
-    $type = $value[0];
-    $goal = $value[1];
-    $is_win = 0;
-    if ($score > $goal && $home > 0 && $away > 0 && strtolower($type) == 'o/yes' ) {
-        $is_win = 1;
-    } elseif ($score > $goal && ($home == 0 || $away == 0) && strtolower($type) == 'o/no' ) {
-        $is_win = 1;
-    } elseif ($score < $goal && $home > 0 && $away > 0 && strtolower($type) == 'u/yes' ) {
-        $is_win = 1;
-    }  elseif ($score < $goal && ($home == 0 || $away == 0) && strtolower($type) == 'u/no' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * RTG_H1(上半场进球数(简写)) 玩法
- * -Draw/Over 1.5: 平局 + 大 1.5    上半场打平 且 总进球≥2
- * -Away/Over 1.5: 客胜 + 大 1.5	上半场客队赢 且 总进球≥2
- * -Home/Over 1.5	主胜 + 大 1.5	上半场主队赢 且 总进球≥2
- * -Home/Under 1.5	主胜 + 小 1.5	上半场主队赢 且 总进球≤1
- * -Draw/Under 1.5	平局 + 小 1.5	上半场打平 且 总进球≤1
- * -Away/Under 1.5	客胜 + 小 1.5	上半场客队赢 且 总进球≤1
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function RTGH1($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    $score = $home + $away;
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $value = explode(' ', $value);
-    $type = $value[0];
-    $goal = $value[1];
-    $is_win = 0;
-    if ($score > $goal && $home == $away && strtolower($type) == 'draw/over' ) {
-        $is_win = 1;
-    } elseif ($score > $goal && $home < $away && strtolower($type) == 'away/over' ) {
-        $is_win = 1;
-    } elseif ($score > $goal && $home > $away && strtolower($type) == 'home/over' ) {
-        $is_win = 1;
-    } elseif ($score < $goal && $home > $away && strtolower($type) == 'home/under' ) {  
-        $is_win = 1;
-    } elseif ($score < $goal && $home == $away && strtolower($type) == 'draw/under' ) {
-        $is_win = 1;
-    } elseif ($score < $goal && $home < $away && strtolower($type) == 'away/under' ) {  
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-
-/**
- * Home team will score in both halves(主队上下半场均进球) 玩法
- * -yes: 主队在上半场至少进一球,且在下半场也至少进一球。
- * -no: 主队在其中一个半场没进球,或者两个半场都没进球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HomeTeamWillScoreInBothHalves($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $home = $score['home'];
-    $half_score = getHalfScore($params['score'], $params['half_score']);
-    $home_half = $half_score['home'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($home > 0 && $home_half > 0 && strtolower($value) == 'yes' ) {
-        $is_win = 1;
-    } elseif (($home == 0 || $home_half == 0) && strtolower($value) == 'no' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Away team will score in both halves(客队上下半场均进球) 玩法
- * -yes: 客队在上半场至少进一球,且在下半场也至少进一球。
- * -no: 客队在其中一个半场没进球,或者两个半场都没进球。
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function AwayTeamWillScoreInBothHalves($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $away = $score['away'];
-    $half_score = getHalfScore($params['score'], $params['half_score']);
-    $away_half = $half_score['away'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($away > 0 && $away_half > 0 && strtolower($value) == 'yes' ) {
-        $is_win = 1;
-    } elseif (($away == 0 || $away_half == 0) && strtolower($value) == 'no' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * How many goals will Home Team score?(主队进球数) 玩法
- * -No goal: 主队全场 0 进球
- * -1: 主队恰好进 1 个球
- * -2: 主队恰好进 2 个球
- * -3 or more: 主队射门 3 个或更多球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HowManyGoalsWillHomeTeamScore($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($home == 0 && strtolower($value) == 'no goal' ) {
-        $is_win = 1;
-    } elseif (is_numeric($value) && $home == $value ) { 
-        $is_win = 1;
-    } elseif (strpos($value, 'or more') !== false && $home >= intval($value)) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * How many goals will Away Team score?(客队进球数) 玩法
- * -No goal: 客队全场 0 进球
- * -1: 客队恰好进 1 个球
- * -2: 客队恰好进 2 个球
- * -3 or more: 客队打进 3 个或更多球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HowManyGoalsWillAwayTeamScore($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $away = $score['away'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($away == 0 && strtolower($value) == 'no goal' ) {
-        $is_win = 1;
-    } elseif (is_numeric($value) && $away == $value ) {
-        $is_win = 1;
-    } elseif (strpos($value, 'or more') !== false && $away >= intval($value)) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Match Goals(全场进球,按盘口分类) 玩法
- * -value: over/under
- * -handicap: 1.5 2.5 ..
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function MatchGoals($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $score = $score['home'] + $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $handicap = $value_and_odd['handicap'];
-    $is_win = 0;
-    if ($score > $handicap && strtolower($value) == 'over' ) {
-        $is_win = 1;
-    } elseif ($score < $handicap && strtolower($value) == 'under'  ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Home Team Goals(主队进球,按盘口分类) 玩法
- * -value: over/under
- * -handicap: 1.5 2.5 ..
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HomeTeamGoals($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $handicap = $value_and_odd['handicap'];
-    $is_win = 0;
-    if ($home > $handicap && strtolower($value) == 'over' ) {
-        $is_win = 1;
-    } elseif ($home < $handicap && strtolower($value) == 'under'  ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Away Team Goals(客队进球,按盘口分类) 玩法
- * -value: over/under
- * -handicap: 1.5 2.5 ..
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function AwayTeamGoals($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $handicap = $value_and_odd['handicap'];
-    $is_win = 0;
-    if ($away > $handicap && strtolower($value) == 'over' ) {
-        $is_win = 1;
-    } elseif ($away < $handicap && strtolower($value) == 'under'  ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Over/Under Line(大小球盘口) 玩法
- * -value: over/under
- * -handicap: 1.5 2.5 ..
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function OverUnderLine($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $score = $score['home'] + $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $handicap = $value_and_odd['handicap'];
-    $is_win = 0;
-    if ($score > $handicap && strtolower($value) == 'over' ) {
-        $is_win = 1;
-    } elseif ($score < $handicap && strtolower($value) == 'under'  ) {
-        $is_win = 1;
-    } elseif ($score == $handicap) {
-        //不输不赢,需要退款
-        $is_win = 2;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Home Team Score a Goal (2nd Half)(主队下半场进球) 玩法
- * -Yes: 主队在下半场至少打进一球
- * -No: 主队在下半场一个球都不进
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HomeTeamScoreAGoal2($amount,$detail, $params)
-{
-    $half_score = getHalfScore($params['score'], $params['half_score']);
-    $home_half = $half_score['home'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($home_half > 0 && strtolower($value) == 'yes' ) {
-        $is_win = 1;
-    } elseif ($home_half == 0 && strtolower($value) == 'no'  ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Away Team Score a Goal (2nd Half)(客队下半场进球) 玩法
- * -Yes: 客队在下半场至少打进一球
- * -No: 客队在下半场一个球都不进
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function AwayTeamScoreAGoal2($amount,$detail, $params)
-{
-    $half_score = getHalfScore($params['score'], $params['half_score']);
-    $away_half = $half_score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($away_half > 0 && strtolower($value) == 'yes' ) {
-        $is_win = 1;
-    } elseif ($away_half == 0 && strtolower($value) == 'no'  ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Both Teams to Score(双方进球) 玩法
- * -yes: 主队有进球,且客队也有进球
- * -no: 至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function BothTeamsToScore($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($home > 0 && $away > 0 && strtolower($value) == 'yes' ) {
-        $is_win = 1;
-    } elseif (($home == 0 || $away == 0) && strtolower($value) == 'no' ) {      
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Both Teams To Score (2nd Half)(下半场双方进球) 玩法
- * -yes: 下半场主队有进球,且下半场客队也有进球
- * -no: 下半场至少有一支球队没进球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function BothTeamsToScore2($amount,$detail, $params)
-{
-    $half_score = getHalfScore($params['score'], $params['half_score']);
-    $home_half = $half_score['home'];
-    $away_half = $half_score['away'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if ($home_half > 0 && $away_half > 0 && strtolower($value) == 'yes' ) {
-        $is_win = 1;
-    } elseif (($home_half == 0 || $away_half == 0) && strtolower($value) == 'no' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Goals Odd/Even (进球数奇偶) 玩法
- */
-function GoalsOddEven($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $goals = $score['home'] + $score['away'];
-    return getOddEven($amount, $goals, $detail);
-}
-
-/**
- * Home Team Exact Goals Number(主队精确进球数) 玩法
- * -0: 预测主队全场比赛一个球都进不了
- * -1: 预测主队刚好只进 1 个球。
- * -more 2: 预测主队进球数达到或超过 2 个
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HomeTeamExactGoalsNumber($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if (is_numeric($value) && $home == $value ) {
-        $is_win = 1;
-    } elseif (strpos($value, 'more') !== false && $home >= intval($value)) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Away Team Exact Goals Number(客队精确进球数) 玩法
- * -0: 预测客队全场比赛一个球都进不了
- * -1: 预测客队刚好只进 1 个球。
- * -more 2: 预测客队进球数达到或超过 2 个。
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function AwayTeamExactGoalsNumber($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $away = $score['away'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $is_win = 0;
-    if (is_numeric($value) && $away == $value ) {
-        $is_win = 1;
-    } elseif (strpos($value, 'more') !== false && $away >= intval($value)) {    
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Fulltime Result(全场赛果) 玩法
- * -Home: 主队赢球
- * -Away: 客队赢球
- * -Draw: 双方打平
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function FulltimeResult($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > $away && $value == 'home') {
-        $is_win = 1;
-    } elseif ($away > $home && $value == 'away') {
-        $is_win = 1;
-    } elseif ($home == $away && $value == 'draw') {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Results/Both Teams Score(赛果+双方进球) 玩法
- * -Home/Yes: 主队赢球,且客队也进了球
- * -Away/Yes: 客队赢球,且主队也进了球
- * -Draw/Yes: 双方打平,且都有进球
- * -Home/No: 主队赢球,且零封了客队
- * -Away/No: 客队赢球,且零封了主队
- * -Draw/No: 双方打平,且都没有进球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function ResultsBothTeamsScore($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > $away && $away > 0 && ($value == 'home or yes' || $value == 'home/yes')) {
-        $is_win = 1;
-    } elseif ($away > $home && $home > 0 && ($value == 'away or yes' || $value == 'away/yes')) {
-        $is_win = 1;
-    } elseif ($home == $away && $home > 0 && $away >0 && ($value == 'draw or yes' || $value == 'draw/yes')) {
-        $is_win = 1;
-    } elseif ($home > $away && $away == 0 && ($value == 'home or no' || $value == 'home/no')) {
-        $is_win = 1;
-    } elseif ($away > $home && $home == 0 && ($value == 'away or no' || $value == 'away/no')) {
-        $is_win = 1;
-    } elseif ($home == $away && $home == 0 && $away == 0 && ($value == 'draw or no' || $value == 'draw/no')) {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Result/Total Goals(赛果+总进球数) 玩法
- * -Draw/Over 1.5: 平局 + 大 1.5    总进球数打平 且 总进球≥2
- * -Away/Over 1.5: 客胜 + 大 1.5	总进球数赢 且 总进球≥2
- * -Home/Over 1.5	主胜 + 大 1.5	总进球数赢 且 总进球≥2
- * -Home/Under 1.5	主胜 + 小 1.5	总进球数赢 且 总进球≤1
- * -Draw/Under 1.5	平局 + 小 1.5	总进球数打平 且 总进球≤1
- * -Away/Under 1.5	客胜 + 小 1.5	总进球数赢 且 总进球≤1
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function ResultTotalGoals($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    $score = $home + $away;
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $odd = $value_and_odd['odd'];
-    $value = $value_and_odd['value'];
-    $value = explode(' ', $value);
-    $type = $value[0];
-    $goal = $value[1];
-    $is_win = 0;
-    if ($score > $goal && $home == $away && strtolower($type) == 'draw/over' ) {
-        $is_win = 1;
-    } elseif ($score > $goal && $home < $away && strtolower($type) == 'away/over' ) {
-        $is_win = 1;
-    } elseif ($score > $goal && $home > $away && strtolower($type) == 'home/over' ) {
-        $is_win = 1;
-    } elseif ($score < $goal && $home > $away && strtolower($type) == 'home/under' ) {
-        $is_win = 1;
-    } elseif ($score < $goal && $home == $away && strtolower($type) == 'draw/under' ) {
-        $is_win = 1;
-    } elseif ($score < $goal && $home < $away && strtolower($type) == 'away/under' ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Result / Both Teams To Score(赛果+双方进球) 玩法
- * -Home/Yes: 主队赢球,且客队也进了球
- * -Away/Yes: 客队赢球,且主队也进了球
- * -Draw/Yes: 双方打平,且都有进球
- * -Home/No: 主队赢球,且零封了客队
- * -Away/No: 客队赢球,且零封了主队
- * -Draw/No: 双方打平,且都没有进球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function ResultBothTeamsToScore($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > $away && $away > 0 && ($value == 'home or yes' || $value == 'home/yes')) {
-        $is_win = 1;
-    } elseif ($away > $home && $home > 0 && ($value == 'away or yes' || $value == 'away/yes')) {
-        $is_win = 1;
-    } elseif ($home == $away && $home > 0 && $away >0 && ($value == 'draw or yes' || $value == 'draw/yes')) {
-        $is_win = 1;
-    } elseif ($home > $away && $away == 0 && ($value == 'home or no' || $value == 'home/no')) {
-        $is_win = 1;
-    } elseif ($away > $home && $home == 0 && ($value == 'away or no' || $value == 'away/no')) {
-        $is_win = 1;
-    } elseif ($home == $away && $home == 0 && $away == 0 && ($value == 'draw or no' || $value == 'draw/no')) {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Highest Scoring Half(进球更多的半场) 玩法
- * -Draw: 两个半场的进球数完全相等
- * -1st Half: 上半场产生的总进球数 > 下半场产生的总进球数
- * -2nd Half: 下半场产生的总进球数 > 上半场产生的总进球数
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HighestScoringHalf($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $first_half = $score['home'] + $score['away'];
-
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $second_half = $score['home'] + $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($first_half > $second_half && $value == '1st Half') {
-        $is_win = 1;
-    } elseif ($first_half < $second_half && $value == '2nd Half') {
-        $is_win = 1;
-    } elseif ($first_half == $second_half && $value == 'draw') {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Final Score(最终比分) 玩法
- * -value: 1-2
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function FinalScore($amount,$detail, $params)
-{
-    $score = $params['score'];
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($score == $value ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Exact Score(精确比分) 玩法
- * -value: 1:2
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function ExactScore($amount,$detail, $params)
-{
-    $score = $params['score'];
-    $value_and_odd = getValueAndOdd($detail);
-    $value = str_replace(":", "-", $value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($score == $value ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Correct Score - First Half(上半场精确比分) 玩法
- * -value: 1:2
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function CorrectScoreFirstHalf($amount,$detail, $params)
-{
-    $half_score = $params['half_score'];
-    $value_and_odd = getValueAndOdd($detail);
-    $value = str_replace(":", "-", $value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($half_score == $value ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Correct Score - Second Half(下半场精确比分) 玩法
- * -value: 1:2
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function CorrectScoreSecondHalf($amount,$detail, $params)
-{
-    $half_score = getHalfScore($params['score'], $params['half_score']);
-    $half_score = $half_score['home'] . '-' . $half_score['away'];
-
-    $value_and_odd = getValueAndOdd($detail);
-    $value = str_replace(":", "-", $value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($half_score == $value ) {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * To Win Either Half(赢得任意半场) 玩法
- * -Home: 主队在上/下半场的进球数 > 客队在上/下半场的进球数
- * -Away: 客队在上/下半场的进球数 > 主队在上/下半场的进球数
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function ToWinEitherHalf($amount,$detail, $params)
-{
-    //上半场
-    $score = getScore($params['half_score']);
-    $home_first = $score['home'];
-    $away_first = $score['away'];
-
-    //下半场
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $home_half = $score['home'];
-    $away_half = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if (($home_first > $away_first || $home_half > $away_half) && $value == 'home') {
-        $is_win = 1;
-    } if (($home_first < $away_first || $home_half < $away_half) && $value == 'away') {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * To Win 2nd Half(赢下半场) 玩法
- * -Home: 主队在下半场的进球数 > 客队在下半场的进球数
- * -Draw: 双方在下半场的进球数相等
- * -Away: 客队在下半场的进球数 > 主队在下半场的进球数
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function ToWin2ndHalf($amount,$detail, $params)
-{
-    $score = getHalfScore($params['score'], $params['half_score']);
-    $home_half = $score['home'];
-    $away_half = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home_half > $away_half && $value == 'home') {
-        $is_win = 1;
-    } elseif ($home_half == $away_half && $value == 'draw') {
-        $is_win = 1;
-    } elseif ($away_half > $home_half && $value == 'away') {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Win To Nil(零封获胜) 玩法
- * -Home: 主队赢球,客队为0
- * -Away: 客队赢球,主队为0
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function WinToNil($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > 0 && $away == 0 && $value == 'home') {
-        $is_win = 1;
-    } elseif ($away > 0 && $home == 0 && $value == 'away') {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Home Team Clean Sheet(主队零封) 玩法
- * -Yes: 客队一个球都进不了
- * -No:  客队至少打进 1 个球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HomeTeamCleanSheet($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($away == 0 && $value == 'yes') {
-        $is_win = 1;
-    } elseif ($away > 0 && $value == 'no') {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * HT/FT Double(半场+全场双猜) 玩法
- * -Home/Draw: 上半场主队领先,全场被追平。
- * -Home/Away: 上半场主队领先,全场客队领先。
- * -Home/Home: 上半场主队领先,全场主队领先。
- * -Away/Draw:  上半场客队领先,全场被追平。
- * -Away/Home:  上半场客队领先,全场主队领先。
- * -Away/Away:  上半场客队领先,全场客队领先。
- * -Draw/Home:  上半场平局,全场主队领先。
- * -Draw/Away:  上半场平局,全场客队领先。
- * -Draw/Draw:  上半场平局,全场平局。
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function HTFTDouble($amount,$detail, $params)
-{
-    $score = getScore($params['half_score']);
-    $first_home = $score['home'];
-    $first_away = $score['away'];
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($first_home > $first_away && $home == $away && $value == 'home/draw') {
-        $is_win = 1;
-    } elseif ($first_home > $first_away && $home < $away && $value == 'home/away') {
-        $is_win = 1;
-    } elseif ($first_home > $first_away && $home > $away && $value == 'home/home') {
-        $is_win = 1;
-    } elseif ($first_home < $first_away && $home == $away && $value == 'away/draw') {
-        $is_win = 1;
-    } elseif ($first_home < $first_away && $home < $away && $value == 'away/away') {
-        $is_win = 1;
-    } elseif ($first_home < $first_away && $home > $away && $value == 'away/home') {
-        $is_win = 1;
-    } elseif ($first_home == $first_away && $home == $away && $value == 'draw/draw') {
-        $is_win = 1;
-    } elseif ($first_home == $first_away && $home < $away && $value == 'draw/away') {
-        $is_win = 1;
-    } elseif ($first_home == $first_away && $home > $away && $value == 'draw/home') {
-        $is_win = 1;
-    }
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Clean Sheet - Home(主队零封) 玩法
- * -Yes: 客队一个球都进不了
- * -No:  客队至少打进 1 个球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function CleanSheetHome($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($away == 0 && $value == 'yes') {
-        $is_win = 1;
-    } elseif ($away > 0 && $value == 'no') {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Clean Sheet - Away(客队零封) 玩法
- * -Yes: 主队一个球都进不了
- * -No:  主队至少打进 1 个球
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function CleanSheetAway($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home == 0 && $value == 'yes') {
-        $is_win = 1;
-    } elseif ($home > 0 && $value == 'no') {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Win to Nil - Home(主队零封获胜) 玩法
- * -Yes: 主队必须赢,客队全场一个球都没进
- * -No:  客队进球了,或比赛打平,或客队赢了
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function WinToNilHome($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($home > $away && $away == 0 && $value == 'yes') {
-        $is_win = 1;
-    } elseif (($away > 0 || $away >= $home) && $value == 'no') {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-/**
- * Win to Nil - Away(客队零封获胜) 玩法
- * -Yes: 客队必须赢,主队全场进球数为 0
- * -No:  主队进球了,或比赛打平,或主队赢了
- * $amount:下注金额
- * $score:主队-客对   
- * $detail:下注时的详情
- */
-function WinToNilAway($amount,$detail, $params)
-{
-    $score = getScore($params['score']);
-    $home = $score['home'];
-    $away = $score['away'];
-    
-    $value_and_odd = getValueAndOdd($detail);
-    $value = strtolower($value_and_odd['value']);
-    $odd = $value_and_odd['odd'];
-    $is_win = 0;
-    if ($away > $home && $home == 0 && $value == 'yes') {
-        $is_win = 1;
-    } elseif (($home > 0 || $home >= $away) && $value == 'no') {
-        $is_win = 1;
-    } 
-    return getResult($is_win, $amount, $odd);
-}
-
-
-/**
- * 获取主客队得分
- */
-function getScore($score) { 
-    $score = explode('-', $score);
-    return [
-        'home' => (int)$score[0],
-        'away' => (int)$score[1],
-    ];
-}
-
-/**
- * 获取下半场主客队得分
- */
-function getHalfScore($score, $half_score) { 
-    $score = explode('-', $score);
-    $half_score = explode('-', $half_score);
-    return [
-        'home' => (int)$score[0] - (int)$half_score[0],
-        'away' => (int)$score[1] - (int)$half_score[1],
-    ];
-}
-
-/**
- * 获取比分
- * $type : 1 主队总进球数,2 客队总进球数, 3
- */
-function getValueAndOdd($detail) {
-    $odds = $detail['odds'][0];
-    $values = $odds['values'][0];
-    return [
-        'value' => $values['value'],
-        'odd' => $values['odd'],
-        'handicap' => isset($values['handicap']) ? $values['handicap'] : 0,
-    ];
-}
-
-function getResult($is_win, $amount, $odds) {
-    //is_win:是否中奖:0没中奖1中奖2和局3平手半
-    $result = [
-        'is_win' => 0, //是否中奖:0没中奖1中奖2和局3平手半
-        'win_amount' => 0, //中奖金额
-        'profit_and_loss' => -$amount, //盈亏金额
-        'settlement_status' => 1, //结算状态:1未结算2已结算3已取消
-    ];
-    if ($is_win == 1) {
-        $result['is_win'] = 1;
-        $result['win_amount'] = bcmul($amount, $odds, 2);
-        $result['profit_and_loss'] = $result['win_amount'] - $amount;
-    }
-    if ($is_win == 2) {
-        $result['is_win'] = 2;
-        $result['win_amount'] = 0;
-        $result['profit_and_loss'] = 0;
-    }
-    $result['settlement_status'] = 2;
-    return $result;
-}

+ 0 - 144
app/Services/LhcSettlementService.php

@@ -1,144 +0,0 @@
-<?php
-
-
-namespace App\Services;
-
-use App\Models\LhcLottery;
-use App\Models\LhcOrder;
-use Illuminate\Support\Facades\DB;
-
-//六合彩开奖结算相关
-class LhcSettlementService
-{
-
-    //根据期号结算订单
-    public static function settle($issue)
-    {
-        // 1. 获取开奖结果
-        $lottery = LhcLottery::where('issue', $issue)->first();
-        if (!$lottery) throw new \Exception("未找到期号 {$issue} 的开奖数据");
-
-        $numbers = is_array($lottery->numbers) ? $lottery->numbers : json_decode($lottery->numbers, true);
-        $specialNum = (int)end($numbers); // 最后一个是特码
-        
-        // 预计算特码属性
-        $attr = [
-            'num'    => $specialNum,
-            'zodiac' => self::getZodiac($specialNum, date('Y', strtotime($lottery->open_time))),
-            'color'  => self::getColor($specialNum),
-            'ds'     => $specialNum % 2 === 0 ? '双' : '单',
-            'dx'     => $specialNum >= 25 ? '大' : '小', // 49通常算和局或按规则定义
-        ];
-
-        // 2. 批量获取待结算订单 (Chunk 处理防止内存溢出)
-        LhcOrder::where('issue', $issue)->where('lottery_status', 'pending')
-            ->chunk(100, function ($orders) use ($attr) {
-                foreach ($orders as $order) {
-                    $this->processOrder($order, $attr);
-                }
-            });
-    }
-
-    private function processOrder($order, $attr)
-    {
-        DB::transaction(function () use ($order, $attr) {
-            $isWin = false;
-
-            // 3. 根据玩法判断中奖
-            switch ($order->gameplay) {
-                case '特码': // 特码
-                    $isWin = (int)$order->number === $attr['num'];
-                    break;
-                case '正肖':     // 生肖-正肖
-                    $isWin = $order->number === $attr['zodiac'];
-                    break;
-                case '三色波':     // 色波-三色波
-                    $isWin = $order->number === $attr['color'];
-                    break;
-                case 'tm_ds':     // 特码单双
-                    $isWin = $order->number === $attr['ds'];
-                    break;
-                case 'tm_dx':     // 特码大小
-                    // 49 一般不计大小或算和,根据实际规则改写
-                    if ($attr['num'] === 49) {
-                        $this->refundOrder($order); // 49退本金
-                        return;
-                    }
-                    $isWin = $order->number === $attr['dx'];
-                    break;
-            }
-
-            // 4. 执行结算
-            if ($isWin) {
-                $bonus = $order->amount * $order->odds;
-                $order->update(['lottery_status' => '2', 'win_amount' => $bonus]);
-                $order->user->increment('balance', $bonus); // 派奖
-            } else {
-                $order->update(['lottery_status' => '1']);
-            }
-        });
-    }
-
-    private function refundOrder($order) {
-        $order->update(['lottery_status' => '3', 'win_amount' => $order->amount]);
-        $order->user->increment('balance', $order->amount);
-    }
-
-    /**
-     * 获取特码对应的生肖
-     * 六合彩生肖逻辑:当年的生肖对应 01, 13, 25, 37, 49
-     * @param int $number 号码 (1-49)
-     * @param int $year 农历年份 (如 2024)
-     */
-    public static function getZodiac($number, $year = null)
-    {
-        $year = $year ?: date('Y');
-        
-        // 生肖对应索引 (固定顺序)
-        $zodiacList = ['鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪'];
-        
-        // 计算当年的本命生肖索引 (以 2024 龙年为例)
-        // 简易逻辑:(年份 - 4) % 12。2024 -> index 8 (龙)
-        $currentYearZodiacIndex = ($year - 4) % 12; 
-        
-        // 六合彩号码是从 1 开始逆推的
-        // 公式:(本命索引 - (号码 - 1) % 12 + 12) % 12
-        $targetIndex = ($currentYearZodiacIndex - ($number - 1) % 12 + 12) % 12;
-        
-        return $zodiacList[$targetIndex];
-    }
-
-    /**
-     * 获取号码对应的波色
-     */
-    public static function getColor($number)
-    {
-        $red = [1, 2, 7, 8, 12, 13, 18, 19, 23, 24, 29, 30, 34, 35, 40, 45, 46];
-        $blue = [3, 4, 9, 10, 14, 15, 20, 25, 26, 31, 36, 37, 41, 42, 47, 48];
-        $green = [5, 6, 11, 16, 17, 21, 22, 27, 28, 32, 33, 38, 39, 43, 44, 49];
-
-        if (in_array($number, $red)) return '红波';
-        if (in_array($number, $blue)) return '蓝波';
-        if (in_array($number, $green)) return '绿波';
-        return '未知';
-    }
-
-    /**
-     * 获取五行 (金木水火土)
-     */
-    public static function getElement($number)
-    {
-        // 五行通常每年也会微调,此处为通用映射逻辑(示意)
-        $elements = [
-            '金' => [1, 2, 15, 16, 23, 24, 31, 32, 45, 46],
-            '木' => [5, 6, 13, 14, 27, 28, 35, 36, 43, 44],
-            '水' => [11, 12, 19, 20, 33, 34, 41, 42, 49],
-            '火' => [7, 8, 21, 22, 29, 30, 37, 38],
-            '土' => [3, 4, 9, 10, 17, 18, 25, 26, 39, 40, 47, 48],
-        ];
-        foreach ($elements as $name => $nums) {
-            if (in_array($number, $nums)) return $name;
-        }
-    }
-
-}

+ 1 - 2
composer.json

@@ -48,8 +48,7 @@
       "TronTool\\": "tron.php/src/"
     },
     "files": [
-      "app/Helpers/helpers.php",
-      "app/Helpers/FootballSettlement.php"
+      "app/Helpers/helpers.php"
     ]
   },
   "autoload-dev": {