feat: 项目基础框架+配置+Kernel

This commit is contained in:
testadmin
2026-04-29 05:35:00 +08:00
parent 6ce7adcbfb
commit 9a6151fce3
5082 changed files with 437062 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
<?php
namespace App\Jobs;
use App\LeverTransaction;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
/**
* 处理跟随订单
*/
class FollowOrderHandel implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
//被跟随的订单id
protected $to_lever_transaction_id;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($to_lever_transaction_id)
{
$this->to_lever_transaction_id = $to_lever_transaction_id;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
try {
$toLeverTransaction = LeverTransaction::query()->find($this->to_lever_transaction_id);
if ($toLeverTransaction->status != LeverTransaction::CLOSED) {
throw new \Exception('被跟随的订单状态错误');
}
LeverTransaction::query()
->where('status', LeverTransaction::TRANSACTION)
->where('follow_user_id', $toLeverTransaction->user_id)
->where('follow_order_id', $toLeverTransaction->id)
->where('order_type', 2)
->chunkById(50, function ($items) {
$items->each(function ($item) {
try {
$return = LeverTransaction::leverClose($item, true);
if (!$return) {
throw new \Exception("平仓失败");
}
} catch (\Throwable $ex) {
//出现出错跳过,执行下一个
$msg = "跟随者的订单id{$item->id},被跟随者订单id{$this->to_lever_transaction_id}" . $ex->getMessage();
$this->writeLog($msg);
}
});
});
} catch (\Throwable $ex) {
$msg = "被跟随者订单id{$this->to_lever_transaction_id}" . $ex->getMessage();
$this->writeLog($msg);
}
}
/**
* 写日志
* @param $msg
*/
protected function writeLog($msg)
{
$path = base_path() . '/storage/logs/follow/';
$filename = 'FollowOrderHandel-' . date('Ymd') . '.log';
file_exists($path) || @mkdir($path);
error_log(date('Y-m-d H:i:s') . ' ' . $msg . PHP_EOL, 3, $path . $filename);
}
}