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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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('克隆成功');
}
}