PreviewInterface.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace addons\TinyShop\common\components;
  3. use addons\TinyShop\common\forms\PreviewForm;
  4. /**
  5. * 营销基类
  6. *
  7. * Class PreviewHandler
  8. * @package addons\TinyShop\common\components
  9. * @author jianyan74 <751393839@qq.com>
  10. */
  11. abstract class PreviewInterface
  12. {
  13. /**
  14. * @var bool
  15. */
  16. public $status = false;
  17. /**
  18. * 创建记录
  19. *
  20. * @var bool
  21. */
  22. public $isNewRecord = false;
  23. /**
  24. * 执行
  25. *
  26. * @param PreviewForm $form
  27. * @return mixed
  28. */
  29. abstract public function execute(PreviewForm $form): PreviewForm;
  30. /**
  31. * 排斥的营销名称
  32. *
  33. * 例如: ['fee']
  34. *
  35. * @return array
  36. */
  37. abstract public function rejectNames();
  38. /**
  39. * 营销名称
  40. *
  41. * @return string
  42. */
  43. abstract public static function getName(): string;
  44. /**
  45. * 触发营销成功
  46. *
  47. * @param PreviewForm $form
  48. * @return PreviewForm
  49. */
  50. public function success(PreviewForm $form): PreviewForm
  51. {
  52. $this->status = true;
  53. return $form;
  54. }
  55. }
粤ICP备19079148号