DeductCollectorService.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 $itemId 物品ID
  16. * @param int $instanceId 物品实例ID
  17. * @param int $quantity 扣除数量
  18. * @return void
  19. */
  20. public static function addItemDeduct(int $itemId, int $instanceId, int $quantity): void
  21. {
  22. DeductCollectorLogic::addItemDeduct($itemId, $instanceId, $quantity);
  23. }
  24. /**
  25. * 添加代币扣除
  26. *
  27. * @param int $coinType 代币类型
  28. * @param int $quantity 扣除数量
  29. * @return void
  30. */
  31. public static function addCoinDeduct(int $coinType, int $quantity): void
  32. {
  33. DeductCollectorLogic::addCoinDeduct($coinType, $quantity);
  34. }
  35. /**
  36. * 获取本次请求的所有扣除数据
  37. *
  38. * @return array 扣除数据数组,包含items和coins
  39. */
  40. public static function getDeducts(): array
  41. {
  42. return DeductCollectorLogic::getDeducts();
  43. }
  44. /**
  45. * 清空本次请求的扣除数据
  46. *
  47. * @return void
  48. */
  49. public static function clearDeducts(): void
  50. {
  51. DeductCollectorLogic::clearDeducts();
  52. }
  53. /**
  54. * 检查是否有扣除数据
  55. *
  56. * @return bool
  57. */
  58. public static function hasDeducts(): bool
  59. {
  60. return DeductCollectorLogic::hasDeducts();
  61. }
  62. }