public static function getTempateSet($type) { $bl = AlarmLevelBlacklist::find()->select('level')->column(); if ($type == 3) { //无线设备 $rows = self::find()->with(["wireless" => function ($query) { $query->select("id,label,status"); }])->where(["type" => $type])->asArray()->all(); $data = new \stdClass(); foreach ($rows as $row) { if (!$row["wireless"]) { continue; } $alarm = Yii::$app->db->createCommand('select alarmLevel from wireless_device_alarm where deviceId="' . $row['device_id'] . '" order by update_time desc limit 1')->queryOne(); if ($row['wireless']['status'] != 1 && $alarm && in_array($alarm["alarmLevel"], $bl)) { $row['wireless']['status'] = 1; } $d = array_merge($row["wireless"], ["areaId" => $row["areaId"]]); $data->{$row["id"]} = ["data" => $d, "attributes" => json_decode($row["attributes"]), "links" => json_decode($row["links"])]; } } else { $rows = self::find()->with(["device" => function ($query) { $query->select("id,label,status"); }])->where(["type" => $type])->asArray()->all(); $data = new \stdClass(); foreach ($rows as $row) { if (!$row["device"]) { continue; } $alarm = Yii::$app->db->createCommand('select alarmLevel from device_alarm where deviceId="' . $row['device_id'] . '" order by update_time desc limit 1')->queryOne(); if ($row['device']['status'] != 1 && $alarm && in_array($alarm["alarmLevel"], $bl)) { $row['device']['status'] = 1; } $d = array_merge($row["device"], ["areaId" => $row["areaId"]]); $data->{$row["id"]} = ["data" => $d, "attributes" => json_decode($row["attributes"]), "links" => json_decode($row["links"])]; } } return $data; }
/** * 告警级别黑名单 */ public function actionLevelBlacklist() { if (Yii::$app->request->isPost) { $level = Yii::$app->request->post('level'); $m = AlarmLevel::findOne(["id" => $level]); $exist = AlarmLevelBlacklist::find()->where(["level" => $level])->count(); if ($m && !$exist) { $model = new AlarmLevelBlacklist(['level' => $level, "level_name" => $m->desc]); $model->save(); echo '<script>alert("操作成功")</script>'; } else { echo '<script>alert("操作失败")</script>'; } } $model = AlarmLevelBlacklist::find(); $provider = new ActiveDataProvider(['query' => $model]); $ids = AlarmLevelBlacklist::find()->select("level")->column(); $ids[] = 255; $lists = AlarmLevel::find()->where(['not', ['id' => $ids]])->asArray()->all(); $lists = ArrayHelper::map($lists, 'id', 'desc'); return $this->render('blacklist', ['dataProvider' => $provider, 'lists' => $lists]); }