tesla ranking

This commit is contained in:
Hankin 2026-06-25 10:31:10 +08:00
parent c622fe43e5
commit b30232da1a
2 changed files with 50 additions and 1 deletions

View File

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TeslaRanking extends Model
{
use HasFactory;
}

View File

@ -19,6 +19,7 @@ use App\Models\ServiceRoleOrder;
use App\Models\ServiceRoleUser;
use App\Models\ServiceUser;
use App\Models\ServiceUserBindRole;
use App\Models\TeslaRanking;
use App\Models\User;
use Exception;
use Illuminate\Support\Facades\DB;
@ -95,12 +96,49 @@ class OfflineOrderService
$offline_order->save();
}
DB::commit();
return $offline_order;
}
public function updateTeslaRanking($order)
{
$orderId = null;
$finishedAt = null;
if (empty($order->referrer)) {
return;
}
$totalNum = Order::where("referrer_id", $order->referrer)->where("is_tesla", 1)->count();
if (empty($totalNum)) {
TeslaRanking::where("user_id", $order->referrer)->delete();
return;
}
if ($totalNum >= 10) {
$orderList = Order::where("referrer_id", $order->referrer)->where("is_tesla", 1)->orderBy("id", "asc")->get();
if (count($orderList) == 0) {
$orderId = $orderList[9]->id;
$finishedAt = $orderList[9]->finishedAt;
}
}
$ranking = TeslaRanking::where("user_id", $order->referrer)->first();
if (empty($ranking)) {
TeslaRanking::create([
"user_id" => $order->referrer,
"total_num" => $totalNum,
"finished_at" => $finishedAt,
"finished_order_id" => $orderId
]);
} else {
TeslaRanking::where("user_id", $order->referrer)->update([
"total_num" => $totalNum,
"finished_at" => $finishedAt,
"finished_order_id" => $orderId
]);
}
return;
}
public function getOrderList($keywords = '', $status = '', $agency_id = '', $page_size = 15)
{
$orders = OfflineOrder::with([