DeductCollectorService.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace App\Module\Game\Services;
  3. use App\Module\Game\Logics\DeductCollectorLogic;
  4. /**
  5. * 扣除数据收集服务
  6. *
  7. * 用于收集本次请求中的所有扣除数据,包括物品扣除和代币扣除
  8. * 通过静态变量实现,确保在单次请求中能够累积所有扣除信息
  9. */
  10. class DeductCollectorService
  11. {
  12. /**
  13. * 添加物品扣除
  14. *
  15. * @param int $userId 用户ID
  16. * @param int $itemId 物品ID
  17. * @param int $instanceId 物品实例ID
  18. * @param int $quantity 扣除数量
  19. * @return void
  20. */
  21. public static function addItemDeduct(int $userId, int $itemId, int $instanceId, int $quantity): void
  22. {
  23. DeductCollectorLogic::addItemDeduct($userId, $itemId, $instanceId, $quantity);
  24. }
  25. /**
  26. * 添加代币扣除
  27. *
  28. * @param int $userId 用户ID
  29. * @param int $coinType 代币类型
  30. * @param int $quantity 扣除数量
  31. * @return void
  32. */
  33. public static function addCoinDeduct(int $userId, int $coinType, int $quantity): void
  34. {
  35. DeductCollectorLogic::addCoinDeduct($userId, $coinType, $quantity);
  36. }
  37. /**
  38. * 获取本次请求的所有扣除数据
  39. *
  40. * @param int|null $userId 用户ID,如果为null则返回所有用户的数据
  41. * @return array 扣除数据数组,包含items和coins
  42. */
  43. public static function getDeducts(?int $userId = null): array
  44. {
  45. return DeductCollectorLogic::getDeducts($userId);
  46. }
  47. /**
  48. * 清空本次请求的扣除数据
  49. *
  50. * @return void
  51. */
  52. public static function clearDeducts(): void
  53. {
  54. DeductCollectorLogic::clearDeducts();
  55. }
  56. /**
  57. * 检查是否有扣除数据
  58. *
  59. * @param int|null $userId 用户ID,如果为null则检查所有用户
  60. * @return bool
  61. */
  62. public static function hasDeducts(?int $userId = null): bool
  63. {
  64. return DeductCollectorLogic::hasDeducts($userId);
  65. }
  66. /**
  67. * 获取物品扣除数据
  68. *
  69. * @param int|null $userId 用户ID,如果为null则返回所有用户的数据
  70. * @return array
  71. */
  72. public static function getItemDeducts(?int $userId = null): array
  73. {
  74. return DeductCollectorLogic::getItemDeducts($userId);
  75. }
  76. /**
  77. * 获取代币扣除数据
  78. *
  79. * @param int|null $userId 用户ID,如果为null则返回所有用户的数据
  80. * @return array
  81. */
  82. public static function getCoinDeducts(?int $userId = null): array
  83. {
  84. return DeductCollectorLogic::getCoinDeducts($userId);
  85. }
  86. }