69 lines
2.1 KiB
PHP
69 lines
2.1 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace plugin\admin\app\controller;
|
||
|
|
|
||
|
|
use support\Request;
|
||
|
|
use support\Response;
|
||
|
|
use Symfony\Component\Console\Input\Input;
|
||
|
|
use support\think\Db;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 问卷管理
|
||
|
|
*
|
||
|
|
* @icon fa fa-circle-o
|
||
|
|
*/
|
||
|
|
class QuestionnaireController extends Crud
|
||
|
|
{
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Product模型对象
|
||
|
|
* @var \app\model\Questionnaire
|
||
|
|
*/
|
||
|
|
protected $model = null;
|
||
|
|
protected $noNeedAuth = [];
|
||
|
|
protected $relationSearch = ['category'];
|
||
|
|
|
||
|
|
function __construct()
|
||
|
|
{
|
||
|
|
$this->model = new \app\model\Questionnaire;
|
||
|
|
$statusList = $this->model->getStatusList();
|
||
|
|
$this->assign("statusList", $statusList);
|
||
|
|
$this->assignconfig("statusList", $statusList);
|
||
|
|
|
||
|
|
$categoryList = $this->model->getCategoryOptions();
|
||
|
|
$this->assign("categoryList", $categoryList);
|
||
|
|
$this->assignconfig("categoryList", $categoryList);
|
||
|
|
}
|
||
|
|
/**
|
||
|
|
* selectpage
|
||
|
|
* @param \support\Request $request
|
||
|
|
*/
|
||
|
|
function selectpage(Request $request)
|
||
|
|
{
|
||
|
|
$searchValue = $request->input('searchValue');
|
||
|
|
$searchTable = $request->input('searchTable');
|
||
|
|
$searchKey = $request->input('searchKey');
|
||
|
|
$orderBy = $request->input('orderBy');
|
||
|
|
$showField = $request->input('showField');
|
||
|
|
$keyField = $request->input('keyField');
|
||
|
|
$keyValue = $request->input('keyValue');
|
||
|
|
$searchField = $request->input('searchField');
|
||
|
|
[$where, $format, $limit, $field, $order] = $this->selectInput($request);
|
||
|
|
$query = $this->doSelect($where, $field, $order);
|
||
|
|
$ids = \app\model\Product::distinct(true)->column('questionnaire_id');
|
||
|
|
if($keyValue && $keyField){
|
||
|
|
$query = $query->whereIn($keyField,$keyValue);
|
||
|
|
$ids =array_diff([$keyValue?:0],$ids);
|
||
|
|
}
|
||
|
|
if($showField && input($showField)){
|
||
|
|
$query = $query->whereLike($showField,'%'.input($showField).'%');
|
||
|
|
}
|
||
|
|
//log_alert($ids,'cansnow');
|
||
|
|
$query = $query->whereNotIn('id',$ids);
|
||
|
|
$list = $query->field([$showField,$keyField])->paginate($limit);
|
||
|
|
//log_alert($query->getLastSql(),'cansnow');
|
||
|
|
|
||
|
|
return $this->success('ok',$list);
|
||
|
|
}
|
||
|
|
}
|