GameController.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace app\api\controller\activity;
  3. use app\models\game\DayAward;
  4. use app\models\game\Lottery;
  5. use app\models\game\LotteryLog;
  6. use app\Request;
  7. use think\facade\Cache;
  8. class GameController
  9. {
  10. public function index(Request $request)
  11. {
  12. $num_max = sys_config('game_num', 6, true);
  13. $time_span = sys_config('open_time', 180, true);
  14. $last_game = LotteryLog::order('time', 'desc')->find();
  15. $join_member = Lottery::where('status', 0)->count();
  16. $join = Lottery::where('status', 0)->where('uid', $request->uid())->group('num')->field('num,SUM(ticket) as ticket')->select();
  17. $last_100 = LotteryLog::order('time', 'desc')->limit(100)->select();
  18. $award_lake = sys_config('award_lake', 0, true);
  19. $all_point = Lottery::where('status', 1)->whereTime('open_time', 'today')->sum('ticket');
  20. $my_point = Lottery::where('status', 1)->where('uid', $request->uid())->whereTime('open_time', 'today')->sum('ticket');
  21. if ($all_point <= 0) $all_point = 1;
  22. $price = bcdiv($award_lake, bcmul($all_point, 2), 2);
  23. $join_price = sys_config('join_integral', 100, true);
  24. for ($i = 1; $i <= $num_max; $i++) {
  25. $times[$i] = 0;
  26. }
  27. foreach ($last_100 as $v) {
  28. $result = explode(',', $v['result']);
  29. $times["$result[0]"]++;
  30. }
  31. return app('json')->success('ok', compact('my_point', 'join', 'join_price', 'price', 'join_member', 'time_span', 'last_game', 'times'));
  32. }
  33. public function join(Request $request)
  34. {
  35. $res = Lottery::joinLottery($request->uid(), $request->post('num'), $request->post('ticket'));
  36. if ($res) {
  37. return app('json')->success('参加成功');
  38. } else {
  39. return app('json')->fail(Lottery::getErrorInfo());
  40. }
  41. }
  42. public function lastGame(Request $request)
  43. {
  44. $last_game = Cache::get('last_game', 0);
  45. $last_open = Cache::get('last_open', []);
  46. $open_time = Cache::get('open_time', 0);
  47. if ($last_game) {
  48. $my = Lottery::where('name', $last_game)->where('uid', $request->uid())->where('status', 1)->sum('ticket');
  49. } else {
  50. $my = 0;
  51. }
  52. return app('json')->success('ok', compact('last_game', 'last_open', 'open_time', 'my'));
  53. }
  54. public function getMyAward(Request $request)
  55. {
  56. $todayAward = DayAward::whereTime('add_time', 'today')->where('uid', $request->uid())->where('status', 0)->find();
  57. $all_get = DayAward::where('uid', $request->uid())->where('status', 1)->sum('award');
  58. $all_out = DayAward::where('uid', $request->uid())->where('status', 2)->sum('award');
  59. return app('json')->success(compact('todayAward', 'all_get', 'all_out'));
  60. }
  61. public function getAward($id, Request $request)
  62. {
  63. $res = DayAward::getAward($request->uid(), $id);
  64. if ($res) {
  65. return app('json')->success('领取成功');
  66. } else {
  67. return app('json')->fail(DayAward::getErrorInfo());
  68. }
  69. }
  70. }