CreditNotify.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace addons\Store\common\logic\notify;
  3. use addons\Store\common\events\order\RepaymentEvent;
  4. use addons\Store\common\models\StoreOrderCredit;
  5. use common\enums\StatusEnum;
  6. use common\models\user\User;
  7. use common\traits\ErrorTrait;
  8. use Exception;
  9. class CreditNotify
  10. {
  11. use ErrorTrait;
  12. public function notify($order_info)
  13. {
  14. try {
  15. $order = StoreOrderCredit::findOne(['order_no' => $order_info['order_no']]);
  16. $order->is_repayment = StatusEnum::ENABLED;
  17. $res = $order->save();
  18. if($res === false) throw new Exception($order::getStaticError());
  19. $event = new RepaymentEvent($order->mall_id);
  20. $data['order_id'] = $order['order_id'];
  21. $data['type'] = $order['type'];
  22. $data['operator_id'] = $order->user_id;
  23. $user = User::findOne(['id'=>$order->user_id]);
  24. $data['operator_name'] = $user['nickname']?? '系统';
  25. \Yii::$app->services->events->dispatch($event, $data, $event->listeners);
  26. return true;
  27. } catch (Exception $e) {
  28. echo $e->getMessage();
  29. $this->setStaticError($e->getMessage());
  30. return false;
  31. }
  32. }
  33. }