Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

52 linhas
1.2KB

  1. <?php
  2. namespace App\Logic;
  3. use App\Kintone\Models\DropDown\SeasonTicketContractEntry\Status;
  4. use App\Kintone\Models\SeasonTicketContractEntry;
  5. class SeasonTicketContractEntryManager
  6. {
  7. private SeasonTicketContractEntry $entry;
  8. public function __construct(int|SeasonTicketContractEntry $recordNo = null)
  9. {
  10. if (is_int($recordNo)) {
  11. $this->entry = SeasonTicketContractEntry::find($recordNo);
  12. return;
  13. } else if ($recordNo instanceof SeasonTicketContractEntry) {
  14. $this->entry = $recordNo;
  15. return;
  16. }
  17. }
  18. public function getEntry()
  19. {
  20. return $this->entry;
  21. }
  22. public function cancel()
  23. {
  24. $this->entry->status = Status::CANCEL;
  25. return $this;
  26. }
  27. public function save()
  28. {
  29. $this->entry->save();
  30. return $this;
  31. }
  32. public function getHash()
  33. {
  34. $source = sprintf("%010d-%s", $this->entry->getRecordId(), $this->entry->entryDatetime->format("YmdHi"));
  35. return hash('sha256', $source);
  36. }
  37. public function checkHash(string $hash): bool
  38. {
  39. $expect = $this->getHash();
  40. return $expect === $hash;
  41. }
  42. }