getSettings('point'); $pointEnabled = $setting['enabled'] ?? 0; if ($pointEnabled == 0) return; $consumeRule = json_decode($setting['consume_rule'], true); $ruleEnabled = $consumeRule['enabled'] ?? 0; if ($ruleEnabled == 0) return; $ruleRate = $consumeRule['rate'] ?? 0; if ($ruleRate <= 0) return; $eventId = $order->id; $eventType = PointHistoryModel::EVENT_ORDER_CONSUME; $eventPoint = $ruleRate * $order->amount; $historyRepo = new PointHistoryRepo(); $history = $historyRepo->findEventHistory($eventId, $eventType); if ($history) return; $userRepo = new UserRepo(); $user = $userRepo->findById($order->owner_id); $eventInfo = [ 'order' => [ 'sn' => $order->sn, 'subject' => $order->subject, 'amount' => $order->amount, ] ]; $history = new PointHistoryModel(); $history->user_id = $user->id; $history->user_name = $user->name; $history->event_id = $eventId; $history->event_type = $eventType; $history->event_point = $eventPoint; $history->event_info = $eventInfo; $this->handlePointHistory($history); } }