You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.7 KiB
PHP
98 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class QuestionnaireController extends Controller
|
|
{
|
|
public function create(Request $request)
|
|
{
|
|
$type = $request->post('type');
|
|
$name = $request->post('name');
|
|
$items = $request->post('items');
|
|
$questions = $request->post('questions');
|
|
if (!$name) {
|
|
return \Yz::echoError('请填写问卷名称');
|
|
}
|
|
if (mb_strlen($name) > 50) {
|
|
return \Yz::echoError('问卷名称过长');
|
|
}
|
|
$type_array = ['检前评估', '问卷调查'];
|
|
if (!in_array($type, $type_array)) {
|
|
return \Yz::echoError('问卷类型异常');
|
|
}
|
|
DB::table('questionnaires')->insert([
|
|
'type' => $type,
|
|
'name' => $name,
|
|
'items' => $items ?? '[]',
|
|
'questions' => $questions ?? '[]',
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
'updated_at' => date('Y-m-d H:i:s'),
|
|
]);
|
|
return \Yz::Return(true, '操作完成');
|
|
}
|
|
|
|
public function update(Request $request)
|
|
{
|
|
$id = $request->post('id');
|
|
$type = $request->post('type');
|
|
$name = $request->post('name');
|
|
$items = $request->post('items');
|
|
$questions = $request->post('questions');
|
|
if (!$name) {
|
|
return \Yz::echoError('请填写问卷名称');
|
|
}
|
|
if (mb_strlen($name) > 50) {
|
|
return \Yz::echoError('问卷名称过长');
|
|
}
|
|
$type_array = ['检前评估', '问卷调查'];
|
|
if (!in_array($type, $type_array)) {
|
|
return \Yz::echoError('问卷类型异常');
|
|
}
|
|
DB::table('questionnaires')->where('id', $id)->update([
|
|
'type' => $type,
|
|
'name' => $name,
|
|
'items' => $items ?? '[]',
|
|
'questions' => $questions ?? '[]',
|
|
'updated_at' => date('Y-m-d H:i:s'),
|
|
]);
|
|
return \Yz::Return(true, '操作完成');
|
|
}
|
|
|
|
public function delete(Request $request)
|
|
{
|
|
$id = $request->post('id');
|
|
DB::table('questionnaires')->where('id', $id)->delete();
|
|
return \Yz::Return(true, '操作完成');
|
|
}
|
|
|
|
public function list(Request $request)
|
|
{
|
|
$search = $request->post('search');
|
|
$type = $request->post('type');
|
|
$db = DB::table('questionnaires');
|
|
if (!!$search) {
|
|
$db->where('name', 'like', "%$search%");
|
|
}
|
|
if (!!$type) {
|
|
$db->where('type', $type);
|
|
}
|
|
$list = $db->orderBy('id', 'desc')->paginate(20);
|
|
return \Yz::Return(true, '操作完成', [
|
|
'list' => $list
|
|
]);
|
|
}
|
|
|
|
public function select(Request $request)
|
|
{
|
|
$db = DB::table('questionnaires');
|
|
$list = $db->select(['id', 'name'])->where('type', '问卷调查')->orderBy('id', 'desc')->get();
|
|
return \Yz::Return(true, '操作完成', [
|
|
'list' => $list
|
|
]);
|
|
}
|
|
}
|