<?php namespace app\api\controller\activity; use app\models\game\DayAward; use app\models\game\Lottery; use app\models\game\LotteryLog; use app\Request; use think\facade\Cache; class GameController { public function index(Request $request) { $num_max = sys_config('game_num', 6, true); $time_span = sys_config('open_time', 180, true); $last_game = LotteryLog::order('time', 'desc')->find(); $join_member = Lottery::where('status', 0)->count(); $join = Lottery::where('status', 0)->where('uid', $request->uid())->group('num')->field('num,SUM(ticket) as ticket')->select(); $last_100 = LotteryLog::order('time', 'desc')->limit(100)->select(); $award_lake = sys_config('award_lake', 0, true); $all_point = Lottery::where('status', 1)->whereTime('add_time', 'today')->sum('ticket'); $my_point = Lottery::where('status', 1)->where('uid', $request->uid())->whereTime('add_time', 'today')->sum('ticket'); if ($all_point <= 0) $all_point = 1; $price = bcdiv($award_lake, bcmul($all_point, 2), 2); $join_price = sys_config('join_integral', 100, true); for ($i = 1; $i <= $num_max; $i++) { $times[$i] = 0; } foreach ($last_100 as $v) { $result = explode(',', $v['result']); $times["$result[0]"]++; } $logs = Lottery::where('status', 1)->where('uid', $request->uid())->whereTime('add_time', 'today')->order('add_time', 'desc')->select(); return app('json')->success('ok', compact('logs', 'my_point', 'join', 'join_price', 'price', 'join_member', 'time_span', 'last_game', 'times')); } public function join(Request $request) { $res = Lottery::joinLottery($request->uid(), $request->post('num'), $request->post('ticket')); if ($res) { return app('json')->success('参加成功'); } else { return app('json')->fail(Lottery::getErrorInfo()); } } public function lastGame(Request $request) { $last_game = Cache::get('last_game', 0); $last_open = Cache::get('last_open', []); $open_time = Cache::get('open_time', 0); if ($last_game) { $my = Lottery::where('name', $last_game)->where('uid', $request->uid())->where('status', 1)->sum('ticket'); } else { $my = 0; } return app('json')->success('ok', compact('last_game', 'last_open', 'open_time', 'my')); } public function getMyAward(Request $request) { $todayAward = DayAward::whereTime('add_time', 'today')->where('uid', $request->uid())->where('status', 0)->find(); $all_get = DayAward::where('uid', $request->uid())->where('status', 1)->sum('award'); $all_out = DayAward::where('uid', $request->uid())->where('status', 2)->sum('award'); return app('json')->success(compact('todayAward', 'all_get', 'all_out')); } public function getAward($id, Request $request) { $res = DayAward::getAward($request->uid(), $id); if ($res) { return app('json')->success('领取成功'); } else { return app('json')->fail(DayAward::getErrorInfo()); } } }