RewardTargetController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Module\Game\AdminControllers\Api;
  3. use App\Module\Fund\Models\FundConfigModel;
  4. use App\Module\Fund\Models\FundCurrencyModel;
  5. use App\Module\Game\Enums\REWARD_TYPE;
  6. use App\Module\GameItems\Models\Item;
  7. use Dcat\Admin\Http\JsonResponse;
  8. use Dcat\Admin\Layout\Content;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Routing\Controller;
  11. use Spatie\RouteAttributes\Attributes\Get;
  12. use Spatie\RouteAttributes\Attributes\Prefix;
  13. /**
  14. * 奖励目标API控制器
  15. *
  16. * 用于提供奖励目标的动态选项
  17. */
  18. #[Prefix('admin/api')]
  19. class RewardTargetController extends Controller
  20. {
  21. /**
  22. * 获取奖励目标选项
  23. *
  24. * @param Request $request
  25. * @return JsonResponse
  26. */
  27. #[Get('reward-targets')]
  28. public function getTargets(Request $request)
  29. {
  30. $rewardType = $request->get('reward_type');
  31. $options = [];
  32. switch ($rewardType) {
  33. case REWARD_TYPE::ITEM->value:
  34. // 物品类型,返回物品列表
  35. $options = Item::pluck('name', 'id')->toArray();
  36. break;
  37. case REWARD_TYPE::CURRENCY->value:
  38. // 货币类型,返回货币列表
  39. $options = FundCurrencyModel::pluck('name', 'id')->toArray();
  40. break;
  41. case REWARD_TYPE::FUND->value:
  42. // 代币账户类型,返回代币账户列表
  43. $options = FundConfigModel::pluck('name', 'id')->toArray();
  44. break;
  45. case REWARD_TYPE::PET_EXP->value:
  46. case REWARD_TYPE::PET_ENERGY->value:
  47. // 宠物相关类型,这里可以返回宠物列表
  48. // 暂时返回空选项
  49. $options = [];
  50. break;
  51. case REWARD_TYPE::OTHER->value:
  52. // 其他类型,返回空选项
  53. $options = [];
  54. break;
  55. default:
  56. // 未知类型,返回空选项
  57. $options = [];
  58. break;
  59. }
  60. return response()->json($options);
  61. }
  62. }