diff --git a/app/Admin/Actions/Grid/CloneEquipResourceRecordAction.php b/app/Admin/Actions/Grid/CloneEquipResourceRecordAction.php new file mode 100644 index 0000000..3207682 --- /dev/null +++ b/app/Admin/Actions/Grid/CloneEquipResourceRecordAction.php @@ -0,0 +1,74 @@ +getKey()); + + return $this->response() + ->success('Processed successfully: '.$this->getKey()) + ->redirect('/'); + } + + /** + * @return string|array|void + */ + public function confirm() + { + // return ['Confirm?', 'contents']; + } + + /** + * @param Model|Authenticatable|HasPermissions|null $user + * + * @return bool + */ + protected function authorize($user): bool + { + return true; + } + + /** + * @return array + */ + protected function parameters() + { + return []; + } + + public function render() + { + // 实例化表单类并传递自定义参数 + $form = CloneEquipResourceRecordForm::make()->payload($this->getRow()->getAttributes()); + + return Modal::make() + ->lg() + ->title($this->title) + ->body($form) + ->button($this->title); + } +} diff --git a/app/Admin/Controllers/EquipResourceRecordController.php b/app/Admin/Controllers/EquipResourceRecordController.php index 07bfa84..b01fb35 100644 --- a/app/Admin/Controllers/EquipResourceRecordController.php +++ b/app/Admin/Controllers/EquipResourceRecordController.php @@ -2,6 +2,7 @@ namespace App\Admin\Controllers; +use App\Admin\Actions\Grid\CloneEquipResourceRecordAction; use App\Admin\Repositories\EquipResourceRecord; use App\Admin\Services\EquipResourceRecordService; use Dcat\Admin\Form; @@ -26,6 +27,9 @@ class EquipResourceRecordController extends AdminController $grid->column('mode'); $grid->column('expired_time'); $grid->column('trigger_msg'); + $grid->column('api-key'); + $grid->column('res_id'); + $grid->column('val'); $grid->column('created_at'); $grid->column('updated_at')->sortable(); @@ -33,6 +37,8 @@ class EquipResourceRecordController extends AdminController $filter->equal('id'); }); + + $grid->actions([new CloneEquipResourceRecordAction()]); }); } @@ -53,6 +59,9 @@ class EquipResourceRecordController extends AdminController $show->field('mode'); $show->field('expired_time'); $show->field('trigger_msg'); + $show->column('api-key'); + $show->column('res_id'); + $show->column('val'); $show->field('created_at'); $show->field('updated_at'); }); @@ -77,6 +86,10 @@ class EquipResourceRecordController extends AdminController $form->text('mode'); $form->text('expired_time'); $form->text('trigger_msg'); + $form->text('api-key'); + $form->text('res_id'); + $form->text('val'); + $form->display('created_at'); $form->display('updated_at'); @@ -86,11 +99,21 @@ class EquipResourceRecordController extends AdminController public function store() { - $param = request()->only(['imei', 'obj_id', 'obj_inst_id', 'mode', 'expired_time', 'trigger_msg']); + $param = request()->all(); $equip_resource_service = new EquipResourceRecordService(); - return $equip_resource_service->writeCache($param); + $res = $equip_resource_service->writeCache($param); + + $this->form()->store(); + if (!empty($res['errno'])){ + if ($res['errno'] === 0) { + $this->form()->store(); + return $this->form()->response()->success('提交成功'); + } + + return $this->form()->response()->error($res['error']); + } - return $this->form()->store(); + return $this->form()->response()->error('提交失败'); } } diff --git a/app/Admin/Forms/CloneEquipResourceRecordForm.php b/app/Admin/Forms/CloneEquipResourceRecordForm.php new file mode 100644 index 0000000..525f209 --- /dev/null +++ b/app/Admin/Forms/CloneEquipResourceRecordForm.php @@ -0,0 +1,86 @@ +writeCache($input); + + if (!empty($res['errno'])){ + if ($res['errno'] === 0) { + $equip_resource_model = new EquipResourceRecordModel(); + $equip_resource_model['imei'] = $input['imei']; + $equip_resource_model['obj_id'] = $input['obj_id']; + $equip_resource_model['obj_inst_id'] = $input['obj_inst_id']; + $equip_resource_model['mode'] = $input['mode']; + $equip_resource_model['expired_time'] = $input['expired_time']; + $equip_resource_model['trigger_msg'] = $input['trigger_msg']; + $equip_resource_model['api-key'] = $input['api-key']; + $equip_resource_model['res_id'] = $input['res_id']; + $equip_resource_model['val'] = $input['val']; + $equip_resource_model->save(); + + return $this->response()->success('提交成功')->refresh();; + } + + return $this->response()->error($res['error']); + } + + return $this->response()->error('提交失败'); + } + + /** + * Build a form here. + */ + public function form() + { + $this->text('imei'); + $this->text('obj_id'); + $this->text('obj_inst_id'); + $this->text('mode'); + $this->text('expired_time'); + $this->text('trigger_msg'); + $this->text('api-key'); + $this->text('res_id'); + $this->text('val'); + } + + /** + * The data of the form. + * + * @return array + */ + public function default() + { + + return [ + 'imei' => $this->payload['imei'], + 'obj_id' => $this->payload['obj_id'], + 'obj_inst_id' => $this->payload['obj_inst_id'], + 'mode' => $this->payload['mode'], + 'expired_time' => $this->payload['expired_time'], + 'trigger_msg' => $this->payload['trigger_msg'], + 'api-key' => $this->payload['api-key'], + 'res_id' => $this->payload['res_id'], + 'val' => $this->payload['val'], + ]; + } +} diff --git a/app/Admin/Services/EquipResourceRecordService.php b/app/Admin/Services/EquipResourceRecordService.php index 67c60b3..092122d 100644 --- a/app/Admin/Services/EquipResourceRecordService.php +++ b/app/Admin/Services/EquipResourceRecordService.php @@ -9,40 +9,18 @@ class EquipResourceRecordService { public function writeCache($param) { - - $query = http_build_query($param); -// Http::fake(); -// $response = Http::acceptJson() -// ->withHeaders([ -// 'api-key' => 'uEMPPhc4XKb25VLQSRJ3u=goLuw=', -// 'Content-Type' => 'application/json', -// ])->dump() -// ->post(config('onenet.api_host') . '/nbiot/offline?' . $query, [ -// 'data' => [ -// [ -// 'res_id' => 5750, -// 'val' => '68C0086647205990206801090111000000000002018D16', -// ] -// ] -// ]); - -// $response = Http::acceptJson() -// ->withHeaders([ -// 'api-key' => 'uEMPPhc4XKb25VLQSRJ3u=goLuw=', -// 'Content-Type' => 'application/json', -// ])->dump() -// ->post('http://local.onenetadmin.com/admin/test?' . $query, [ -// 'data' => [ -// [ -// 'res_id' => 5750, -// 'val' => '68C0086647205990206801090111000000000002018D16', -// ] -// ] -// ]); + $query = http_build_query([ + 'imei' => $param['imei'], + 'obj_id' => $param['obj_id'], + 'obj_inst_id' => $param['obj_inst_id'], + 'mode' => $param['mode'], + 'expired_time' => $param['expired_time'], + 'trigger_msg' => $param['trigger_msg'], + ]); $client = new Client([ 'base_uri' => config('onenet.api_host'), - 'handler' => [ - 'api-key' => 'uEMPPhc4XKb25VLQSRJ3u=goLuw=', + 'headers' => [ + 'api-key' => $param['api-key'], ] ]); @@ -50,15 +28,14 @@ class EquipResourceRecordService 'json' => [ 'data' => [ [ - 'res_id' => 5750, - 'val' => '68C0086647205990206801090111000000000002018D16', + 'res_id' => $param['res_id'], + 'val' => $param['val'], ] ] ] ]); - var_dump($response->getBody()->getContents()); -// return $response->json(); + return json_decode($response->getBody()->getContents(), true); } } diff --git a/database/migrations/2022_08_17_082303_create_record_equip_resource_write_table.php b/database/migrations/2022_08_17_082303_create_record_equip_resource_write_table.php deleted file mode 100644 index 9c8c31b..0000000 --- a/database/migrations/2022_08_17_082303_create_record_equip_resource_write_table.php +++ /dev/null @@ -1,37 +0,0 @@ -increments('id'); - $table->string('imei')->default('')->comment('nbiot设备的身份码'); - $table->string('obj_id')->default('')->comment('设备的object id , 对应到平台模型中为数据流id,必填'); - $table->string('obj_inst_id')->default('0')->comment('nbiot设备object下具体一个instance的id ,对应到平台模型中数据点key值的一部分,必填'); - $table->string('mode')->default('')->comment('write的写模式,只能是1或者2'); - $table->string('expired_time')->default('')->comment('命令过期时间戳,必填且大于valid_time'); - $table->string('trigger_msg')->default('')->comment('命令触发的上行消息类型,填写时必须在[1,7]之间;不填写默认为7'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('record_equip_resource_write'); - } -} diff --git a/database/migrations/2022_08_17_085709_create_equip_resource_record_table.php b/database/migrations/2022_08_17_085709_create_equip_resource_record_table.php index c65913b..c8bd905 100644 --- a/database/migrations/2022_08_17_085709_create_equip_resource_record_table.php +++ b/database/migrations/2022_08_17_085709_create_equip_resource_record_table.php @@ -21,6 +21,9 @@ class CreateEquipResourceRecordTable extends Migration $table->string('mode')->default('')->comment('write的写模式,只能是1或者2'); $table->string('expired_time')->default('')->comment('命令过期时间戳,必填且大于valid_time'); $table->string('trigger_msg')->default('')->comment('命令触发的上行消息类型,填写时必须在[1,7]之间;不填写默认为7'); + $table->string('api-key')->default(''); + $table->integer('res_id'); + $table->string('val')->default(''); $table->timestamps(); }); }