作者 lyh

gx心跳数据

  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :UpdateHeartbeat.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2024/8/28 15:13
  8 + */
  9 +
  10 +namespace App\Console\Commands\Update;
  11 +
  12 +use App\Models\Log\OperationHeartbeat;
  13 +use App\Models\Project\Project;
  14 +use App\Services\ProjectServer;
  15 +use Illuminate\Console\Command;
  16 +use Illuminate\Support\Facades\DB;
  17 +
  18 +class UpdateHeartbeat extends Command
  19 +{
  20 + /**
  21 + * The name and signature of the console command.
  22 + *
  23 + * @var string
  24 + */
  25 + protected $signature = 'operation_heartbeat';
  26 +
  27 + /**
  28 + * The console command description.
  29 + *
  30 + * @var string
  31 + */
  32 + protected $description = '心跳半小时未操作更新为未操作';
  33 +
  34 +
  35 + /**
  36 + * @remark :更新半小时未操作的界面
  37 + * @name :handle
  38 + * @author :lyh
  39 + * @method :post
  40 + * @time :2024/8/28 15:25
  41 + */
  42 + public function handle(){
  43 + $date = date('Y-m-d H:i:s',time() - 30 * 60);
  44 + $operationHeartbeatModel = new OperationHeartbeat();
  45 + $operationHeartbeatModel->edit(['status'=>0],['updated_at'=>['<=',$date]]);
  46 + echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
  47 + }
  48 +}
@@ -36,11 +36,12 @@ class OperationHeartbeatController extends BaseController @@ -36,11 +36,12 @@ class OperationHeartbeatController extends BaseController
36 'is_template.required' => '详情页/可视化', 36 'is_template.required' => '详情页/可视化',
37 'operator_id.required' => '操作人', 37 'operator_id.required' => '操作人',
38 ]); 38 ]);
39 - $condition = ['source'=>$this->param['source'],'is_list'=>$this->param['is_list'],'is_custom'=>$this->param['is_custom'],'is_template'=>$this->param['is_template']]; 39 + $condition = ['project_id'=>$this->user['project_id'],'source'=>$this->param['source'],'is_list'=>$this->param['is_list'],'is_custom'=>$this->param['is_custom'],'is_template'=>$this->param['is_template']];
40 $operationHeartbeatModel = new OperationHeartbeat(); 40 $operationHeartbeatModel = new OperationHeartbeat();
41 $info = $operationHeartbeatModel->read($condition,['id','status']); 41 $info = $operationHeartbeatModel->read($condition,['id','status']);
  42 + $condition['status'] = $condition['status'] ?? 0;
42 if($info === false){ 43 if($info === false){
43 - $condition['status'] = 1; 44 + $condition['project_id'] = $this->user['project_id'];
44 $operationHeartbeatModel->addReturnId($condition); 45 $operationHeartbeatModel->addReturnId($condition);
45 }else{ 46 }else{
46 $operationHeartbeatModel->edit(['status'=>1],['id'=>$info['id']]); 47 $operationHeartbeatModel->edit(['status'=>1],['id'=>$info['id']]);
@@ -69,7 +70,8 @@ class OperationHeartbeatController extends BaseController @@ -69,7 +70,8 @@ class OperationHeartbeatController extends BaseController
69 'is_template.required' => '详情页/可视化', 70 'is_template.required' => '详情页/可视化',
70 'operator_id.required' => '操作人', 71 'operator_id.required' => '操作人',
71 ]); 72 ]);
72 - $condition = ['source'=>$this->param['source'],'is_list'=>$this->param['is_list'],'is_custom'=>$this->param['is_custom'],'is_template'=>$this->param['is_template']]; 73 + $condition = ['project_id'=>$this->user['project_id'],'source'=>$this->param['source'],
  74 + 'is_list'=>$this->param['is_list'],'is_custom'=>$this->param['is_custom'],'is_template'=>$this->param['is_template']];
73 $operationHeartbeatModel = new OperationHeartbeat(); 75 $operationHeartbeatModel = new OperationHeartbeat();
74 $info = $operationHeartbeatModel->read($condition,['id','status']); 76 $info = $operationHeartbeatModel->read($condition,['id','status']);
75 $this->response('success',Code::SUCCESS,$info); 77 $this->response('success',Code::SUCCESS,$info);
@@ -601,8 +601,11 @@ Route::middleware(['bloginauth'])->group(function () { @@ -601,8 +601,11 @@ Route::middleware(['bloginauth'])->group(function () {
601 Route::any('/del', [\App\Http\Controllers\Bside\Inquiry\InquiryFieldController::class, 'del'])->name('inquiry_field_del'); 601 Route::any('/del', [\App\Http\Controllers\Bside\Inquiry\InquiryFieldController::class, 'del'])->name('inquiry_field_del');
602 }); 602 });
603 603
  604 + //获取心跳
604 Route::prefix('operation_heartbeat')->group(function () { 605 Route::prefix('operation_heartbeat')->group(function () {
605 Route::any('/saveHeartbeat', [\App\Http\Controllers\Bside\BCom\OperationHeartbeatController::class, 'saveHeartbeat'])->name('operation_heartbeat_saveHeartbeat'); 606 Route::any('/saveHeartbeat', [\App\Http\Controllers\Bside\BCom\OperationHeartbeatController::class, 'saveHeartbeat'])->name('operation_heartbeat_saveHeartbeat');
  607 + Route::any('/getInfo', [\App\Http\Controllers\Bside\BCom\OperationHeartbeatController::class, 'getInfo'])->name('operation_heartbeat_getInfo');
  608 +
606 }); 609 });
607 }); 610 });
608 //无需登录验证的路由组 611 //无需登录验证的路由组