diff --git a/app/Http/Controllers/Admin/CourseController.php b/app/Http/Controllers/Admin/CourseController.php index 15bbd2a..ed904b8 100755 --- a/app/Http/Controllers/Admin/CourseController.php +++ b/app/Http/Controllers/Admin/CourseController.php @@ -364,6 +364,36 @@ class CourseController extends BaseController return $this->success($url); } + /** + * @OA\Get( + * path="/api/admin/courses/evaluation-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 evaluationQrcode() + { + $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())->getEvaluationQrcode($all['id']); + return $this->success($url); + } + /** * @OA\Get( * path="/api/admin/courses/send-sms", diff --git a/app/Http/Controllers/Mobile/CourseController.php b/app/Http/Controllers/Mobile/CourseController.php index 94baff9..2ce7756 100755 --- a/app/Http/Controllers/Mobile/CourseController.php +++ b/app/Http/Controllers/Mobile/CourseController.php @@ -144,7 +144,7 @@ class CourseController extends CommonController return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); } $detail = CourseContentEvaluation::with(['courseContentEvaluationAsks' => function ($q) { - $q->orderBy('sort', 'asc'); + $q->with('courseContent.teacher')->orderBy('sort', 'asc'); }])->find($all['course_content_evaluation_id']); return $this->success($detail); } diff --git a/app/Models/Course.php b/app/Models/Course.php index a83e1e5..63d0e69 100755 --- a/app/Models/Course.php +++ b/app/Models/Course.php @@ -213,5 +213,33 @@ class Course extends SoftDeletesModel return $url; } + /** + * 获取问卷小程序码 + */ + public function getEvaluationQrcode($id) + { + $courseContentEvaluation = CourseContentEvaluation::find($id); + $path = config('filesystems.disks.public.root') . '/course_evaluation_qrcode/' . $courseContentEvaluation->id . '.png'; + $url = config('filesystems.disks.public.url') . '/course_evaluation_qrcode/' . $courseContentEvaluation->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/surveyFill/index?id=' . $id, [ + // 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/CourseContentEvaluationAsk.php b/app/Models/CourseContentEvaluationAsk.php index e8ef820..d56e85d 100644 --- a/app/Models/CourseContentEvaluationAsk.php +++ b/app/Models/CourseContentEvaluationAsk.php @@ -6,4 +6,9 @@ class CourseContentEvaluationAsk extends SoftDeletesModel { protected $casts = ['select_item' => 'json']; + public function courseContent() + { + return $this->hasOne(CourseContent::class, 'id', 'course_content_id'); + } + } diff --git a/routes/api.php b/routes/api.php index 7859078..ad3a3d7 100755 --- a/routes/api.php +++ b/routes/api.php @@ -50,6 +50,7 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { 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/evaluation-qrcode', [\App\Http\Controllers\Admin\CourseController::class, "evaluationQrcode"]); Route::get('courses/send-sms', [\App\Http\Controllers\Admin\CourseController::class, "sendSms"]); // 排课