master
cody 5 months ago
parent 0b5af7935c
commit 64ed0b4f40

@ -308,4 +308,34 @@ class CourseContentController extends BaseController
}
}
/**
* @OA\Get(
* path="/api/admin/course-contents/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 qrcode()
{
$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 CourseContent())->getCourseContentCheckQrcode($all['id']);
return $this->success($url);
}
}

@ -4,6 +4,9 @@
namespace App\Models;
use EasyWeChat\Factory;
use Illuminate\Filesystem\Filesystem;
class CourseContent extends SoftDeletesModel
{
protected $casts = ['publicize_ids' => 'json', 'file_ids' => 'json'];
@ -57,5 +60,32 @@ class CourseContent extends SoftDeletesModel
return $this->hasOne(CourseContentEvaluation::class, 'course_content_id', 'id');
}
/**
* 获取课程详情小程序码
*/
public function getCourseContentCheckQrcode($courseContentId)
{
$courseContent = self::find($courseContentId);
$path = config('filesystems.disks.public.root') . '/course_content_qrcode/' . $courseContent->id . '.png';
$url = config('filesystems.disks.public.url') . '/course_content_qrcode/' . $courseContent->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?course_content_id' . $courseContentId, [
'env_version' => "release" // 正式版
// 'env_version' => "trial" // 体验版
]);
$dir = dirname($path);
$fileSys->ensureDirectoryExists($dir, 0755, true);
$fileSys->put($path, $tmp);
return $url;
}
}

@ -55,6 +55,7 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () {
Route::get('course-contents/destroy', [\App\Http\Controllers\Admin\CourseContentController::class, "destroy"]);
Route::post('course-contents/excel-show', [\App\Http\Controllers\Admin\CourseContentController::class, "excelShow"]);
Route::post('course-contents/import', [\App\Http\Controllers\Admin\CourseContentController::class, "import"]);
Route::get('course-contents/qrcode', [\App\Http\Controllers\Admin\CourseContentController::class, "qrcode"]);
// 课程类别
Route::get('course-types/index', [\App\Http\Controllers\Admin\CourseTypeController::class, "index"]);

Loading…
Cancel
Save