dev
parent
98e797948d
commit
935613a0c9
|
|
@ -8,4 +8,17 @@ enum DeviceStatus: int
|
||||||
case Online = 1; // 在线
|
case Online = 1; // 在线
|
||||||
case Offline = 2; // 离线
|
case Offline = 2; // 离线
|
||||||
case Broken = 3; // 故障
|
case Broken = 3; // 故障
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function status(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
static::Disabled->value => '禁用',
|
||||||
|
static::Online->value => '在线',
|
||||||
|
static::Offline->value => '离线',
|
||||||
|
static::Broken->value => '故障',
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ class AdminUserController extends Controller
|
||||||
|
|
||||||
public function show(AdminUser $adminUser)
|
public function show(AdminUser $adminUser)
|
||||||
{
|
{
|
||||||
|
$adminUser->load(['bases', 'roles']);
|
||||||
return $this->json(AdminUserResource::make($adminUser));
|
return $this->json(AdminUserResource::make($adminUser));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,10 @@ namespace App\Http\Controllers;
|
||||||
use App\Models\Device;
|
use App\Models\Device;
|
||||||
use App\Enums\DeviceType;
|
use App\Enums\DeviceType;
|
||||||
use App\Helpers\Paginator;
|
use App\Helpers\Paginator;
|
||||||
|
use App\Enums\DeviceStatus;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\SoilMonitoringLog;
|
use App\Models\SoilMonitoringLog;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use App\Http\Requestes\DeviceRequest;
|
use App\Http\Requestes\DeviceRequest;
|
||||||
use App\Http\Resources\DeviceResource;
|
use App\Http\Resources\DeviceResource;
|
||||||
use App\Models\WaterQualityMonitoringLog;
|
use App\Models\WaterQualityMonitoringLog;
|
||||||
|
|
@ -68,6 +70,30 @@ class DeviceController extends Controller
|
||||||
return $this->json(DeviceType::types());
|
return $this->json(DeviceType::types());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计某个基地下所有设备状态数量
|
||||||
|
*/
|
||||||
|
public function typeStatusNum(Request $request){
|
||||||
|
$baseId = $request->input('base_id');
|
||||||
|
|
||||||
|
$query = Device::where('agricultural_base_id', $baseId)->groupBy('type')->groupBy('status');
|
||||||
|
|
||||||
|
$list = $query->select(DB::raw('type, status, count(1) as num '))->get();
|
||||||
|
$resData = [];
|
||||||
|
foreach ($list as $item) {
|
||||||
|
$resData[$item->type][$item->status] = $item->num;
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化数据;
|
||||||
|
$data = [];
|
||||||
|
foreach (DeviceType::types() as $typeKey => $typeName){
|
||||||
|
foreach(DeviceStatus::status() as $statusKey => $statusName){
|
||||||
|
$data[$typeKey][$statusKey] = $resData[$typeKey][$statusKey] ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->json($data);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备数据
|
* 设备数据
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ class AdminUserResource extends JsonResource
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id' => $this->id,
|
'id' => $this->id,
|
||||||
|
'roles' => AdminRoleResource::collection($this->whenloaded('roles')),
|
||||||
'username' => $this->username,
|
'username' => $this->username,
|
||||||
'name' => $this->name,
|
'name' => $this->name,
|
||||||
'avatar' => $this->avatar,
|
'avatar' => $this->avatar,
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ Route::group(['middleware' => 'auth:sanctum'], function () {
|
||||||
Route::apiResource('crop-flows', CropFlowController::class)->names('crops_flow');
|
Route::apiResource('crop-flows', CropFlowController::class)->names('crops_flow');
|
||||||
//设备管理
|
//设备管理
|
||||||
Route::apiResource('devices', DeviceController::class)->names('device');
|
Route::apiResource('devices', DeviceController::class)->names('device');
|
||||||
|
Route::get('devices-num', [DeviceController::class, 'typeStatusNum'])->name('device.type_status_num');
|
||||||
//设备警报配置
|
//设备警报配置
|
||||||
Route::get('device-warning-rules', [DeviceWarningController::class, 'rules']); //预警规则
|
Route::get('device-warning-rules', [DeviceWarningController::class, 'rules']); //预警规则
|
||||||
Route::put('device-warning-rules', [DeviceWarningController::class, 'updateRule']); //预警规则
|
Route::put('device-warning-rules', [DeviceWarningController::class, 'updateRule']); //预警规则
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue