You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

190 lines
7.9 KiB

6 months ago
<?php
namespace App\Http\Controllers\Admin;
use App\Helpers\ResponseCode;
use App\Models\CourseForm;
use Illuminate\Support\Facades\Validator;
class CourseFormsController extends BaseController
{
/**
* 构造函数
*/
public function __construct()
{
parent::__construct(new CourseForm());
}
/**
* @OA\Get(
* path="/api/admin/course-forms/index",
* tags={"课程表单"},
* summary="列表",
* description="",
* @OA\Parameter(name="is_export", in="query", @OA\Schema(type="string"), required=false, description="是否导出0否1是"),
* @OA\Parameter(name="export_fields", in="query", @OA\Schema(type="string"), required=false, description="需要导出的字段数组"),
* @OA\Parameter(name="filter", in="query", @OA\Schema(type="string"), required=false, description="查询条件。数组"),
* @OA\Parameter(name="show_relation", in="query", @OA\Schema(type="string"), required=false, description="需要输出的关联关系数组包括teachercourseSettingscoursePeriods"),
* @OA\Parameter(name="page_size", in="query", @OA\Schema(type="string"), required=false, description="每页显示的条数"),
* @OA\Parameter(name="page", in="query", @OA\Schema(type="string"), required=false, description="页码"),
* @OA\Parameter(name="sort_name", in="query", @OA\Schema(type="string"), required=false, description="排序字段名字"),
* @OA\Parameter(name="sort_type", in="query", @OA\Schema(type="string"), required=false, description="排序类型"),
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
* response="200",
* description="暂无"
* )
* )
*/
public function index()
{
return parent::index();
}
/**
* @OA\Get(
* path="/api/admin/course-forms/show",
* tags={"课程表单"},
* summary="详情",
* description="",
* @OA\Parameter(name="id", in="query", @OA\Schema(type="string"), required=true, description="id"),
* @OA\Parameter(name="show_relation", in="query", @OA\Schema(type="string"), required=false, description="需要输出的关联关系数组,填写输出指定数据"),
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
* response="200",
* description="暂无"
* )
* )
*/
public function show()
{
return parent::show();
}
/**
* @OA\Post(
* path="/api/admin/course-forms/save",
* tags={"课程表单"},
* summary="更新或新增",
* @OA\Parameter(name="id", in="query", @OA\Schema(type="integer"), required=true, description="课程ID存在则更新不存在则新增"),
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="验证token"),
* @OA\Parameter(name="name", in="query", @OA\Schema(type="string"), description="配置名字"),
* @OA\Parameter(name="field", in="query", @OA\Schema(type="string", format="date"), description="英文标识"),
* @OA\Parameter(name="edit_input", in="query", @OA\Schema(type="string", format="date"), description="输入框类型。包括text文本radio单选checkbox多选date日期日期时间datetimefile单文件files多文件上传"),
* @OA\Parameter(name="rule", in="query", @OA\Schema(type="string", format="date"), description="检测规则多个英文逗号分隔。包括required"),
* @OA\Parameter(name="sort", in="query", @OA\Schema(type="string", format="date"), description="排序"),
* @OA\Parameter(name="course_id", in="query", @OA\Schema(type="string", format="date"), description="课程id"),
* @OA\Parameter(name="help", in="query", @OA\Schema(type="string", format="date"), description="提示文字"),
* @OA\Parameter(name="select_item", in="query", @OA\Schema(type="string", format="date"), description="数组,选项文字"),
* @OA\Parameter(name="need_fill", in="query", @OA\Schema(type="string", format="date"), description="是否需要填写0否1是"),
* @OA\Parameter(name="belong_user", in="query", @OA\Schema(type="string", format="date"), description="是否属于用户数据0否1是"),
* @OA\Response(
* response=200,
* description="操作成功"
* )
* )
*/
public function save()
{
return parent::save();
}
/**
* @OA\Get(
* path="/api/admin/course-forms/destroy",
* 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 destroy()
{
return parent::destroy();
}
/**
* @OA\Post(
* path="/api/admin/course-forms/excel-show",
* tags={"课程表单"},
* summary="导入预览",
* description="",
* @OA\Parameter(name="file", in="query", @OA\Schema(type="string"), required=true, description="文件"),
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
* response="200",
* description="暂无"
* )
* )
*/
public function excelShow()
{
return parent::excelShow();
}
/**
* @OA\Post(
* path="/api/admin/course-forms/import",
* tags={"课程表单"},
* summary="导入",
* description="",
* @OA\Parameter(name="data", in="query", @OA\Schema(type="string"), required=true, description="导入分析获取到的二维数组"),
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
* response="200",
* description="暂无"
* )
* )
*/
public function import()
{
return parent::import();
}
/**
* @OA\Get(
* path="/api/admin/course-forms/clone",
* tags={"课程表单"},
* summary="克隆表单",
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="验证token"),
* @OA\Parameter(name="from_course_id", in="query", @OA\Schema(type="string"), description="来源课程id"),
* @OA\Parameter(name="to_course_id", in="query", @OA\Schema(type="string", format="date"), description="目标课程id"),
* @OA\Response(
* response=200,
* description="操作成功"
* )
* )
*/
public function clone()
{
$all = \request()->all();
$messages = [
'from_course_id.required' => '来源Id必填',
'to_course_id.required' => '目标Id必填',
];
$validator = Validator::make($all, [
'from_course_id' => 'required',
'to_course_id' => 'required'
], $messages);
if ($validator->fails()) {
return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]);
}
CourseForm::where('course_id', $all['to_course_id'])->delete();
$fromForms = CourseForm::where('course_id', $all['from_course_id'])->get();
foreach ($fromForms as $fromForm) {
$array = $fromForm->toArray();
$array['course_id'] = $all['to_course_id'];
CourseForm::create($array);
}
return $this->success('克隆成功');
}
}