WebPageModuleController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace App\Http\Controllers\Game;
  3. use App\Game\GameCard;
  4. use App\Game\GlobalUserInfo;
  5. use App\Game\PageModule;
  6. use App\Game\Route;
  7. use App\Http\Controllers\Controller;
  8. use Illuminate\Http\Request;
  9. // use Yansongda\Pay\Log;
  10. class WebPageModuleController extends Controller
  11. {
  12. public function PageModules(Request $request,$page_id){
  13. // if(!GameCard::getOuroGameInfo()){
  14. // (new GameController())->CheckOuroGamePort();
  15. // }
  16. $modules = PageModule::with(['subs' => function ($query) {
  17. $query->with('subs'); // 递归加载子模块
  18. }])->where('page_id', $page_id)->whereNull('parent_id')->orderBy('pos_index')->get();
  19. // var_dump($modules);
  20. return response()->json([
  21. 'code' => 0,
  22. 'data' => $modules->map(function (PageModule $module) {
  23. return $module->getSpecificDataAttribute();
  24. }),
  25. 'msg' => '',
  26. ]);
  27. }
  28. public function GameList(Request $request)
  29. {
  30. $type=$request->input('type');
  31. $id=$request->input('id');
  32. PageModule::$enableStateCheck=false;
  33. if($id){
  34. $module = PageModule::where('id', $id)->first();
  35. }else{
  36. $module = PageModule::where('tabtype', $type)->where('type','ModuleGameList')->first();
  37. }
  38. $pageSize = $request->input('pageSize', PageModule::getDefaultPageSize()); // 从请求获取pageSize或使用默认值
  39. $page = $request->input('page', 1); // 从请求获取当前页或使用默认值
  40. // 根据模块获取游戏ID列表
  41. // 获取与模块相关的游戏列表并应用分页
  42. $gamesQuery = $module->games();
  43. $total = $gamesQuery->count();
  44. $games = $gamesQuery->forPage($page, $pageSize)->get();
  45. $games=GameCard::formatGames($games);
  46. $totalPage = ceil($total / $pageSize);
  47. return response()->json([
  48. 'tabtype' =>$type,
  49. 'data' => $games,
  50. 'page' => $page,
  51. 'pageSize' => $pageSize,
  52. 'total' => $total,
  53. 'totalPage' => $totalPage,
  54. ]);
  55. }
  56. public function addFavorite(Request $request)
  57. {
  58. if($request->has('id'))GlobalUserInfo::$me->addFavoGame($request->id);
  59. return apiReturnSuc();
  60. }
  61. public function removeFavorite(Request $request)
  62. {
  63. if($request->has('id'))GlobalUserInfo::$me->removeFavoGame($request->id);
  64. return apiReturnSuc();
  65. }
  66. public function getFavorite(Request $request)
  67. {
  68. $user=$request->user();
  69. $favorites=[];
  70. if($user&&!empty(GlobalUserInfo::$me->FavoriteGames)){
  71. $gameids=trim(GlobalUserInfo::$me->FavoriteGames,',');
  72. $orderClause = 'FIELD(id, ' . $gameids . ')';
  73. $gameids=explode(',', $gameids);
  74. $favorites = GameCard::whereIn('id', $gameids)->orderByRaw($orderClause)->get(); // 只获取状态为 1 的游戏
  75. $favorites = GameCard::formatGames($favorites);
  76. }
  77. return apiReturnSuc($favorites);
  78. }
  79. }