From 1307eeefa3f20eec7122bde605ee725349a70a24 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Mon, 18 Aug 2025 18:19:57 +0800 Subject: [PATCH] update --- .../Controllers/Admin/CourseController.php | 30 +++++++++++++++++++ app/Models/Course.php | 28 +++++++++++++++++ app/Models/CourseContent.php | 2 +- routes/api.php | 1 + 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/CourseController.php b/app/Http/Controllers/Admin/CourseController.php index 664c65b..69b3193 100755 --- a/app/Http/Controllers/Admin/CourseController.php +++ b/app/Http/Controllers/Admin/CourseController.php @@ -333,6 +333,36 @@ class CourseController extends BaseController return $this->success($url); } + /** + * @OA\Get( + * path="/api/admin/courses/check-qrcode", + * tags={"课程管理"}, + * summary="签到二维码", + * description="", + * @OA\Parameter(name="id", in="query", @OA\Schema(type="string"), required=true, description="id"), + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Response( + * response="200", + * description="暂无" + * ) + * ) + */ + public function checkQrcode() + { + $all = \request()->all(); + $messages = [ + 'id.required' => 'Id必填', + ]; + $validator = Validator::make($all, [ + 'id' => 'required' + ], $messages); + if ($validator->fails()) { + return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); + } + $url = (new Course())->getCourseCheckQrcode($all['id']); + return $this->success($url); + } + /** * @OA\Get( * path="/api/admin/courses/send-sms", diff --git a/app/Models/Course.php b/app/Models/Course.php index f0a2bc9..1854a0c 100755 --- a/app/Models/Course.php +++ b/app/Models/Course.php @@ -185,5 +185,33 @@ class Course extends SoftDeletesModel return $url; } + /** + * 获取课程报名小程序码 + */ + public function getCourseCheckQrcode($courseId) + { + $course = Course::find($courseId); + $path = config('filesystems.disks.public.root') . '/course_check_qrcode/' . $course->id . '.png'; + $url = config('filesystems.disks.public.url') . '/course_check_qrcode/' . $course->id . '.png'; + $fileSys = new Filesystem(); + if ($fileSys->exists($path)) { + return $url; + } + $config = [ + 'app_id' => \config('app.applet_appid'), + 'secret' => \config('app.applet_secret') + ]; + $app = Factory::miniProgram($config); + $tmp = $app->app_code->get('packages/sign/course?course_id=' . $courseId, [ + // todo:: 版本切换 + // 'env_version' => "release" // 正式版 + 'env_version' => "trial" // 体验版 + ]); + $dir = dirname($path); + $fileSys->ensureDirectoryExists($dir, 0755, true); + $fileSys->put($path, $tmp); + return $url; + } + } diff --git a/app/Models/CourseContent.php b/app/Models/CourseContent.php index 7577452..c28bbe7 100755 --- a/app/Models/CourseContent.php +++ b/app/Models/CourseContent.php @@ -77,7 +77,7 @@ class CourseContent extends SoftDeletesModel 'secret' => \config('app.applet_secret') ]; $app = Factory::miniProgram($config); - $tmp = $app->app_code->get("/packages/sign/index?course_id={$courseContent->course_id}&course_content_id={$courseContentId}", [ + $tmp = $app->app_code->get('/packages/sign/index?course_content_id=' . $courseContentId, [ // 'env_version' => "release" // 正式版 'env_version' => "trial" // 体验版 ]); diff --git a/routes/api.php b/routes/api.php index 50270a7..f402968 100755 --- a/routes/api.php +++ b/routes/api.php @@ -48,6 +48,7 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { Route::post('courses/excel-show', [\App\Http\Controllers\Admin\CourseController::class, "excelShow"]); Route::post('courses/import', [\App\Http\Controllers\Admin\CourseController::class, "import"]); Route::get('courses/qrcode', [\App\Http\Controllers\Admin\CourseController::class, "qrcode"]); + Route::get('courses/check-qrcode', [\App\Http\Controllers\Admin\CourseController::class, "checkQrcode"]); Route::get('courses/send-sms', [\App\Http\Controllers\Admin\CourseController::class, "sendSms"]); // 排课