123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- namespace refill;
- require_once(BASE_HELPER_PATH . '/refill/event/IEventRefill.php');
- require_once(BASE_HELPER_PATH . '/refill/event/crash.php');
- require_once(BASE_HELPER_PATH . '/refill/event/card_crash.php');
- use refill\event\card_crash;
- use Cache;
- class EventManager
- {
- private static $stInstance = null;
- public static function instance()
- {
- if (self::$stInstance == null) {
- self::$stInstance = new EventManager();
- self::$stInstance->load();
- }
- return self::$stInstance;
- }
- private $mStubs = [];
- public function load()
- {
- //配置文件样式
- // $cfgs = [
- // 'open_crash' => true,
- // 'cfgs_crash' => [
- // 'channels' => 'beirui_sec',
- // 'succ_interval' => 900
- // ]
- // ];
- $this->mStubs = [];
- $cacher = Cache::getInstance('cacheredis');
- $cfgs = $cacher->get('event-config', 'refill-');
- if (empty($cfgs)) {
- return;
- } else {
- $cfgs = unserialize($cfgs);
- }
- $open_crash = $cfgs['open_crash'] ?? false;
- if($open_crash) {
- $crash = new card_crash();
- $crash->load($cfgs['cfgs_crash'] ?? []);
- $this->mStubs[] = $crash;
- }
- }
- public function onBeforeSubmit(order $order)
- {
- $stubs = $this->mStubs;
- foreach ($stubs as $stub)
- {
- if($stub->onBeforeSubmit($order) === false) {
- return false;
- }
- }
- return true;
- }
- public function onSubmit(order $order)
- {
- $stubs = $this->mStubs;
- foreach ($stubs as $stub) {
- $stub->onSubmit($order);
- }
- }
- public function onBeforeCommit(order $order, $ch_name): bool
- {
- $stubs = $this->mStubs;
- foreach ($stubs as $stub)
- {
- if ($stub->onBeforeCommit($order, $ch_name) === false) {
- return false;
- }
- }
- return true;
- }
- public function onCommit(order $order, $ch_name)
- {
- $stubs = $this->mStubs;
- foreach ($stubs as $stub) {
- $stub->onCommit($order, $ch_name);
- }
- }
- public function onNeterror(order $order, $ch_name)
- {
- $stubs = $this->mStubs;
- foreach ($stubs as $stub) {
- $stub->onNeterror($order, $ch_name);
- }
- }
- public function onNotify($refill_info, $order_info, $success)
- {
- $stubs = $this->mStubs;
- foreach ($stubs as $stub) {
- $stub->onNotify($refill_info, $order_info, $success);
- }
- }
- public function onComplete($refill_info, $order_info, $success)
- {
- $stubs = $this->mStubs;
- foreach ($stubs as $stub) {
- $stub->onComplete($refill_info, $order_info, $success);
- }
- }
- }
|