select('name', 'rule', 'rule_details')->where('grade', '=', 0)->first(); if (empty($gradeinfo)) { return -5002; } $gradeinfo = $gradeinfo->toArray(); $gradeinfo['rule_details'] = explode(',', $gradeinfo['rule_details']); $bet = lm('MoneyBuy', 'Api')->where('account_identity', $params['account_identity'])->where('status', '<', 4)->where('game_status', '>', 0); $uservip = lm('User_vip', 'Api')->select('audittime')->where('account_identity', $params['account_identity'])->first(); if ($gradeinfo['rule_details'][0] == 'year') { $startime = date('Y-01-01', time()) . ' 00:00:00'; $endtime = date('Y-12-31', time()) . ' 23:59:59'; $bet = $bet->where('money_time', '>=', $startime)->where('money_time', '<=', $endtime); } elseif ($gradeinfo['rule_details'][0] == 'month') { $startime = date('Y-m-01', strtotime(date('Y', time()) . '-' . (date('m', time()) - 1) . '-01')) . ' 00:00:00'; $endtime = date('Y-m-d', strtotime("$startime +1 month -1 day")) . ' 23:59:59'; $bet = $bet->where('money_time', '>=', $startime)->where('money_time', '<=', $endtime); } elseif ($gradeinfo['rule_details'][0] == 'week') { $now_day = date('W', time()) - 1; $sunday_str = time() - $now_day * 60 * 60 * 24; $sunday = date('Y-m-d 00:00:00', $sunday_str); $strday_str = time() + (6 - $now_day) * 60 * 60 * 24; $strday = date('Y-m-d 23:59:59', $strday_str); $bet = $bet->where('money_time', '>=', $sunday)->where('money_time', '<=', $strday); } elseif ($gradeinfo['rule_details'][0] == 'day') { $firstday = date('Y-m-d 00:00:00', strtotime("-" . $gradeinfo['rule_details'][3] . " day")); $bet = $bet->where('money_time', '>=', $firstday)->where('money_time', '<=', date('Y-m-d 23:59:59', strtotime('-1 day'))); } elseif ($gradeinfo['rule_details'][0] == 'ymd') { $firstday = $gradeinfo['rule_details'][3] . ' 00:00:00'; $bet = $bet->where('money_time', '>=', $firstday); } if(!empty($uservip)){ $bet = $uservip->audittime?$bet->where ('money_time', '>=', $uservip->audittime):$bet; } $bet=$startime?$bet->where ('money_time', '>=', $startime):$bet; $bet=$endtime?$bet->where ('money_time', '<', $endtime):$bet; $bet = $bet->sum('money'); return $bet; } /** * 投注记录 * * @access public * @return String */ public function bettingRecord() { // 获取用户信息 $accountManagerClass = new AccountManager; $userInfo = $accountManagerClass -> getCurrentUser(); if (empty($userInfo['identity'])) { Render([], '2001', lang('Common','Api') -> get('user does login')); } $moneyBuyWhere = array(); // 用户ID $moneyBuyWhere['account_identity'] = $userInfo['identity']; // 游戏名称英文 if (!empty($_POST['game'])) { $moneyBuyWhere['game_name'] = $_POST['game']; } // 下注时间 //$moneyBuyWhere['money_time'] = isset($_POST['money_time']) ? $_POST['money_time'] : ""; // 游戏期号 if (!empty($_POST['no'])) { $moneyBuyWhere['game_no'] = $_POST['no']; } // 开奖状态 if (!empty($_POST['status'])) { $moneyBuyWhere['game_status'] = $_POST['status']; } // 序号 if (!empty($_POST['id'])) { $moneyBuyWhere['id'] = $_POST['id']; } // 订单id if (!empty($_POST['order_id'])) { $moneyBuyWhere['order_id'] = $_POST['order_id']; } // 时间区间 $startTime = isset($_POST['startTime'])? $_POST['startTime'] : '1900-01-01 00:00:00'; $endTime = isset($_POST['endTime'])? $_POST['endTime'] : '3000-12-12 00:00:00'; $moneyBuyBetween = [$startTime, $endTime]; // 当前页 $currentPage = isset($_POST['currentPage']) ? $_POST['currentPage'] : "1"; // 分页大小 $pageSize = isset($_POST['pageSize']) ? $_POST['pageSize'] : "10"; // 起始查询位置 $begin = ($currentPage - 1) * $pageSize; $moneyBuy = lm('money_buy', "commons"); $moneyBuyStr = lm('money_buy_str', "commons"); // 获取投注记录 $moneyBuySelect = ['game_status', 'money', 'codes', 'money_time']; $getMoneyBuy = $moneyBuy -> moneyBuy($moneyBuySelect, $moneyBuyWhere, $moneyBuyBetween, $begin, $pageSize); $moneyBuyStrSelect = ['game_status', 'money', 'bet_str_all', 'money_time']; $getMoneyBuyStr = $moneyBuyStr -> moneyBuyStr($moneyBuyStrSelect, $moneyBuyWhere, $moneyBuyBetween, $begin, $pageSize); // 两数组重组排序 $allMoneyBuy = []; $allCount = count($getMoneyBuy) + count($getMoneyBuyStr); $n = 0; $m = 0; for ($i = 1; $i <= $allCount; $i++) { if ($getMoneyBuy[$n]->money_time >= $getMoneyBuyStr[$m]->money_time) { $allMoneyBuy[] = $getMoneyBuy[$n]; $n++; } else { $allMoneyBuy[] = $getMoneyBuyStr[$m]; $m++; } } // 获取游戏类型 $StGameTypeModel = lm('StGameType','commons'); $getGameTypeWhere['status'] = 1; $getGameTypeSelect = ['game_code']; $getGameType = $StGameTypeModel -> getGameType($getGameTypeSelect, $getGameTypeWhere); $stOddsWheres = []; foreach ($getGameType as $value) { $stOddsWheres[$value['game_code']] = ''; } // 获取可加注所需要的查询条件 foreach ($allMoneyBuy as $key => $value) { $codeInfo = []; if ($value->codes) { $codeInfo = json_decode($value->codes); } elseif ($value->bet_str_all) { $codeInfo = json_decode($value->bet_str_all); } foreach ($codeInfo as $k => $v) { $match_id = $v->match_id; $odds_code = $v->odds_code; $ballId = $v->ballId; $where = [ 'match_id' => $match_id, 'odds_code' => $odds_code, ]; // 判断是否重复 if(!judgeEqual($where, $stOddsWheres[$ballId])){ $stOddsWheres[$ballId][] = $where; } } } // 查询数据下所有可加注的游戏 $stOddsModel = lm('stOdds','commons'); $stOddsSelect = ['match_id', 'odds_code']; $getSstOdds = []; foreach ($stOddsWheres as $key => $value) { if ($value) { $getSstOdds[$key] = $stOddsModel -> stOdds($stOddsSelect, $value, $key)->toArray();; } } // 循环添加玩法和判断玩法是否可加注 $stOddsCodeModel = lm('StOddsCode','commons'); foreach ($allMoneyBuy as $key => $value) { $codeInfo = []; if ($value->codes) { $codeInfo = json_decode($value->codes); } elseif ($value->bet_str_all) { $codeInfo = json_decode($value->bet_str_all); } foreach ($codeInfo as $k => $v) { $stOddsCodeWhere['odds_code'] = $v->odds_code; // 添加玩法 $gameType = $stOddsCodeModel -> stOddsCode($stOddsCodeWhere); $codeInfo[$k]->gameType = $gameType; $typeSstOdds = $getSstOdds[$v->ballId]; $thisSstOdds = [ 'match_id' => $v->match_id, 'odds_code' => $v->odds_code, ]; // 判断如果在数组中则为可加注 if (!judgeEqual($thisSstOdds, $typeSstOdds)) { $codeInfo[$k]->addBet = 0; } else { $codeInfo[$k]->addBet = 1; } } $allMoneyBuy[$key]->codes = json_encode($codeInfo); } // 获取记录总数 $result['total'] = $allCount; $result['list'] = $allMoneyBuy; // 总页数计算 $result['countPage'] = ceil($result['total'] / $pageSize); $result['currentPage'] = $currentPage; return $result; } /** * 盈亏记录 * * @access public * @return String */ public function moneyRecord() { // 获取用户信息 $accountManagerClass = new AccountManager; $userInfo = $accountManagerClass -> getCurrentUser(); if (empty($userInfo['identity'])) { Render([], '2001', lang('Common','Api') -> get('user does login')); } $moneyRecordWhere = array(); // 用户ID $moneyRecordWhere['account_identity'] = $userInfo['identity']; $moneyRecordWhere['status'] = 1; // 时间区间 $startTime = isset($_POST['startTime'])? $_POST['startTime'] : '1900-01-01 00:00:00'; $endTime = isset($_POST['endTime'])? $_POST['endTime'] : '3000-12-12 00:00:00'; $moneyRecordBetween = [$startTime, $endTime]; // 当前页 $currentPage = isset($_POST['currentPage']) ? $_POST['currentPage'] : "1"; // 分页大小 $pageSize = isset($_POST['pageSize']) ? $_POST['pageSize'] : "10"; // 起始查询位置 $begin = ($currentPage - 1) * $pageSize; $moneyRecord = lm('money_record', "commons"); $moneyRecordSelect = ['info_identity', 'trade_id', 'account_identity', 'money', 'money_time', 'money_type']; // 获取盈亏记录 $result['list'] = $moneyRecord -> moneyRecord($moneyRecordSelect, $moneyRecordWhere, $moneyRecordBetween, $begin, $pageSize); // 获取记录总数 $result['total'] = count($result['list']); // 总页数计算 $result['countPage'] = ceil($result['total'] / $pageSize); $result['currentPage'] = $currentPage; return $result; } }