diff --git a/app/Admin/Controllers/MiniProgramDraftController.php b/app/Admin/Controllers/MiniProgramDraftController.php new file mode 100644 index 0000000..b9f69e0 --- /dev/null +++ b/app/Admin/Controllers/MiniProgramDraftController.php @@ -0,0 +1,31 @@ +disableCreateButton(); + + $grid->column('draft_id', 'ID'); + $grid->column('user_version', '版本号'); + $grid->column('user_desc', '描述'); + $grid->column('source_miniprogram', '来源小程序'); + $grid->column('source_miniprogram_appid', '上传者微信号'); + $grid->column('developer', '上传者微信昵称'); + $grid->column('create_time', '创建时间')->display(fn($v) => date('Y-m-d H:i:s', $v)); + }); + } +} diff --git a/app/Admin/Controllers/MiniProgramListController.php b/app/Admin/Controllers/MiniProgramListController.php new file mode 100644 index 0000000..c0f3490 --- /dev/null +++ b/app/Admin/Controllers/MiniProgramListController.php @@ -0,0 +1,25 @@ +disableCreateButton(); + + $grid->column('authorizer_appid', 'APPID'); + }); + } +} diff --git a/app/Admin/Controllers/MiniProgramTemplateController.php b/app/Admin/Controllers/MiniProgramTemplateController.php new file mode 100644 index 0000000..bcaacdd --- /dev/null +++ b/app/Admin/Controllers/MiniProgramTemplateController.php @@ -0,0 +1,32 @@ +disableCreateButton(); + + $grid->column('template_id', 'ID'); + $grid->column('template_type', '模板类型')->using([0 => '普通模板', 1 => '标准模板']); + $grid->column('user_version', '版本号'); + $grid->column('user_desc', '描述'); + $grid->column('source_miniprogram', '来源小程序'); + $grid->column('source_miniprogram_appid', '上传者微信号'); + $grid->column('developer', '上传者微信昵称'); + $grid->column('create_time', '创建时间')->display(fn($v) => date('Y-m-d H:i:s', $v)); + }); + } +} diff --git a/app/Admin/Repositories/MiniProgramDraft.php b/app/Admin/Repositories/MiniProgramDraft.php new file mode 100644 index 0000000..2f5bf75 --- /dev/null +++ b/app/Admin/Repositories/MiniProgramDraft.php @@ -0,0 +1,56 @@ + $setting['service_appid'], + 'secret' => $setting['service_appsecret'], + 'token' => $setting['service_token'], + 'aes_key' => $setting['service_aeskey'], + ]; + + $openPlatform = Factory::openPlatform($config); + $codeTemplate = $openPlatform['code_template']; + + if (empty($codeTemplate) || (!$list = $codeTemplate->getDrafts())) { + $data['total'] = 0; + $data['subjects'] = []; + } else { + $data['total'] = count($list['draft_list']); + $data['subjects'] = $list['draft_list'] ?? []; + } + + return $model->makePaginator( + $data['total'] ?? 0, // 传入总记录数 + $data['subjects'] ?? [] // 传入数据二维数组 + ); + } +} diff --git a/app/Admin/Repositories/MiniProgramList.php b/app/Admin/Repositories/MiniProgramList.php new file mode 100644 index 0000000..cbb99d6 --- /dev/null +++ b/app/Admin/Repositories/MiniProgramList.php @@ -0,0 +1,56 @@ + $setting['service_appid'], + 'secret' => $setting['service_appsecret'], + 'token' => $setting['service_token'], + 'aes_key' => $setting['service_aeskey'], + ]; + + $openPlatform = Factory::openPlatform($config); + $codeTemplate = $openPlatform['code_template']; + + if (empty($codeTemplate) || (!$list = $openPlatform->getAuthorizers())) { + $data['total'] = 0; + $data['subjects'] = []; + } else { + $data['total'] = count($list['list']); + $data['subjects'] = $list['list'] ?? []; + } + + return $model->makePaginator( + $data['total'] ?? 0, // 传入总记录数 + $data['subjects'] ?? [] // 传入数据二维数组 + ); + } +} diff --git a/app/Admin/Repositories/MiniProgramTemplate.php b/app/Admin/Repositories/MiniProgramTemplate.php new file mode 100644 index 0000000..8883848 --- /dev/null +++ b/app/Admin/Repositories/MiniProgramTemplate.php @@ -0,0 +1,56 @@ + $setting['service_appid'], + 'secret' => $setting['service_appsecret'], + 'token' => $setting['service_token'], + 'aes_key' => $setting['service_aeskey'], + ]; + + $openPlatform = Factory::openPlatform($config); + $codeTemplate = $openPlatform['code_template']; + + if (empty($codeTemplate) || (!$list = $codeTemplate->list())) { + $data['total'] = 0; + $data['subjects'] = []; + } else { + $data['total'] = count($list['template_list']); + $data['subjects'] = $list['template_list'] ?? []; + } + + return $model->makePaginator( + $data['total'] ?? 0, // 传入总记录数 + $data['subjects'] ?? [] // 传入数据二维数组 + ); + } +} diff --git a/app/Admin/routes.php b/app/Admin/routes.php index 7f66b05..fdc3f6d 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -38,5 +38,8 @@ Route::group([ $router->resource('supplier_statistics', 'SupplierStatisticsController'); $router->resource('setting', 'SettingController'); - $router->resource('mini_program', 'MiniProgramController'); + + $router->resource('mini_program/draft', 'MiniProgramDraftController'); + $router->resource('mini_program/template', 'MiniProgramTemplateController'); + $router->resource('mini_program/list', 'MiniProgramListController'); }); diff --git a/app/Http/Controllers/Api/MiniProgramController.php b/app/Http/Controllers/Api/MiniProgramController.php new file mode 100644 index 0000000..956678d --- /dev/null +++ b/app/Http/Controllers/Api/MiniProgramController.php @@ -0,0 +1,59 @@ + $setting['service_appid'], + 'secret' => $setting['service_appsecret'], + 'token' => $setting['service_token'], + 'aes_key' => $setting['service_aeskey'], + ]; + + $openPlatform = Factory::openPlatform($config); + $server = $openPlatform->server; + + // 处理授权成功事件 + $server->push(function ($message) { + DB::table('auth_event')->insert([ + ['response' => json_encode($message)] + ]); + }, Guard::EVENT_AUTHORIZED); + + // 处理授权更新事件 + $server->push(function ($message) { + DB::table('auth_event')->insert([ + ['response' => json_encode($message)] + ]); + }, Guard::EVENT_UPDATE_AUTHORIZED); + + // 处理授权取消事件 + $server->push(function ($message) { + DB::table('auth_event')->insert([ + ['response' => json_encode($message)] + ]); + }, Guard::EVENT_UNAUTHORIZED); + + DB::table('auth_event')->insert([ + ['response' => json_encode($request->all())] + ]); + + return $server->serve(); + } +}