StartDelivery.php 736 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. declare(strict_types=1);
  3. namespace app\miniapi\service\driver;
  4. use app\miniapi\model\MiniTaskRecord;
  5. use plugin\saiadmin\app\model\water\WaterDelivery;
  6. use plugin\saiadmin\app\service\WaterBusiness;
  7. final class StartDelivery implements TaskAction
  8. {
  9. public function fields(): array
  10. {
  11. return ['request_key'];
  12. }
  13. public function execute(WaterDelivery $task, array $input, int $user): array
  14. {
  15. $result = (new WaterBusiness())->transition([
  16. 'id' => (int) $task->id,
  17. 'action' => 'depart',
  18. ], 0);
  19. if (!($result['replayed'] ?? false)) {
  20. MiniTaskRecord::recordEvent((int) $task->id, $user, 'depart', []);
  21. }
  22. return $result;
  23. }
  24. }