bianjunhui 6 dni temu
rodzic
commit
3a26e323a6

+ 0 - 1
packages/Longyi/RewardPoints/src/Http/Controllers/RewardPointsController.php

@@ -142,7 +142,6 @@ class RewardPointsController extends Controller
         if (!$customer) {
             return ApiResponse::unauthorized();
         }
-        Log::info('Customer login event triggered');
         $today = Carbon::now()->format('Y-m-d');
         $signedToday = RewardPointCustomerSign::where('customer_id', $customer->id)
             ->where('sign_date', $today)

+ 7 - 2
packages/Longyi/RewardPoints/src/Listeners/OrderEvents.php

@@ -9,9 +9,11 @@ use Longyi\RewardPoints\Services\GrowthValueService;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
 use Webkul\Sales\Models\Order;
+use Longyi\RewardPoints\Services\LevelCalculationTrait;
 
 class OrderEvents
 {
+    use LevelCalculationTrait;
     protected RewardPointRepository $rewardPointRepository;
     protected GrowthValueService $growthValueService;
 
@@ -25,6 +27,7 @@ class OrderEvents
 
     public function handleOrderPlacement(Order $order): void
     {
+        $startTime = microtime(true);
         if (!$order->customer_id) {
             return;
         }
@@ -67,12 +70,14 @@ class OrderEvents
 
             Log::info('Order points added as PENDING', [
                 'order_id' => $order->id,
+                'customer_id' => $order->customer_id,
                 'points' => $points,
-                'rate' => $pointsPerCurrency
+                'rate' => $pointsPerCurrency,
+                'order_amount' => $order->base_grand_total,
+                'execution_time' => $this->getExecutionTime($startTime)
             ]);
         }
     }
-
     public function handleOrderCancellation(Order $order): void
     {
         if (!$order->customer_id) {

+ 18 - 0
packages/Longyi/RewardPoints/src/Services/LevelCalculationTrait.php

@@ -54,4 +54,22 @@ trait LevelCalculationTrait
             return $setting ? $setting->value : $default;
         });
     }
+    /**
+     * 计算执行时间(毫秒)
+     *
+     * @param float $startTime 开始时间戳(microtime(true))
+     * @param int $precision 小数位数,默认2位
+     * @return string 格式化的执行时间,如 "12.35ms"
+     *
+     * @example
+     * $start = microtime(true);
+     * // ... 执行某些操作 ...
+     * echo $this->getExecutionTime($start); // 输出: "15.23ms"
+     */
+    protected function getExecutionTime(float $startTime, int $precision = 2): string
+    {
+        $endTime = microtime(true);
+        $executionTime = ($endTime - $startTime) * 1000; // 转换为毫秒
+        return number_format($executionTime, $precision) . 'ms';
+    }
 }