dev
parent
98e797948d
commit
935613a0c9
|
|
@ -8,4 +8,17 @@ enum DeviceStatus: int
|
|||
case Online = 1; // 在线
|
||||
case Offline = 2; // 离线
|
||||
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)
|
||||
{
|
||||
$adminUser->load(['bases', 'roles']);
|
||||
return $this->json(AdminUserResource::make($adminUser));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,10 @@ namespace App\Http\Controllers;
|
|||
use App\Models\Device;
|
||||
use App\Enums\DeviceType;
|
||||
use App\Helpers\Paginator;
|
||||
use App\Enums\DeviceStatus;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\SoilMonitoringLog;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Http\Requestes\DeviceRequest;
|
||||
use App\Http\Resources\DeviceResource;
|
||||
use App\Models\WaterQualityMonitoringLog;
|
||||
|
|
@ -68,6 +70,30 @@ class DeviceController extends Controller
|
|||
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 [
|
||||
'id' => $this->id,
|
||||
'roles' => AdminRoleResource::collection($this->whenloaded('roles')),
|
||||
'username' => $this->username,
|
||||
'name' => $this->name,
|
||||
'avatar' => $this->avatar,
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ Route::group(['middleware' => 'auth:sanctum'], function () {
|
|||
Route::apiResource('crop-flows', CropFlowController::class)->names('crops_flow');
|
||||
//设备管理
|
||||
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::put('device-warning-rules', [DeviceWarningController::class, 'updateRule']); //预警规则
|
||||
|
|
|
|||
Loading…
Reference in New Issue