repository) $this->repository = $repository;
}
function index(Request $request) {
$search['keyword'] = $request->input('keyword');
$query = $this->repository->pushCriteria(new MultiWhere($search));
if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
$query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by']));
}else{
$query = $query->pushCriteria(new OrderBy('total','asc'));
}
$list = $query->paginate(10);
return view('admin.student.count.index',compact('list'));
}
function check(Request $request) {
$request = $request->all();
$search['keyword'] = $request->input('keyword');
$orderby = array();
if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
$orderby[$request['sort_field']] = $request['sort_field_by'];
}
$list = $this->repository->search($search,$orderby);
return view('admin.student.count.check',compact('list'));
}
/**
* 添加
*
*/
public function create(Request $request)
{
if($request->method() == 'POST') {
return $this->_createSave();
}
return view('admin.student.count.edit');
}
/**
* 保存修改
*/
private function _createSave(){
$data = (array) request('data');
$id = $this->repository->create($data);
if($id) {
$url[] = array('url'=>U( 'Student/Count/index'),'title'=>'返回列表');
$url[] = array('url'=>U( 'Student/Count/create'),'title'=>'继续添加');
$this->showMessage('添加成功',$url);
}else{
$url[] = array('url'=>U( 'Student/Count/index'),'title'=>'返回列表');
return $this->showWarning('添加失败',$url);
}
}
/**
*
* 修改
*
*
*/
public function update(Request $request) {
if($request->method() == 'POST') {
return $this->_updateSave();
}
$data = $this->repository->find($request->get('id'));
return view('admin.student.count.edit',compact('data'));
}
/**
* 保存修改
*/
private function _updateSave() {
$data = (array) request('data');
$ok = $this->repository->update(request('id'),$data);
if($ok) {
$url[] = array('url'=>U( 'Student/Count/index'),'title'=>'返回列表');
return $this->showMessage('操作成功',urldecode(request('_referer')));
}else{
$url[] = array('url'=>U( 'Student/Count/index'),'title'=>'返回列表');
return $this->showWarning('操作失败',$url);
}
}
public function view(Request $request) {
$data = $this->repository->find(request('id'));
return view('admin.student.count.view',compact('data'));
}
/**
*
* 状态改变
*
*/
public function status(Request $request) {
$ok = $this->repository->updateStatus(request('id'),request('status'));
if($ok) {
return $this->showMessage('操作成功');
}else{
return $this->showWarning('操作失败');
}
}
/**
* 删除
*/
public function destroy(Request $request) {
$bool = $this->repository->destroy($request->get('id'));
if($bool) {
return $this->showMessage('操作成功');
}else{
return $this->showWarning("操作失败");
}
}
/***
* 导入excel表格
* @param Request $request
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\View\View
*/
public function import(Request $request)
{
if ($request->method() == 'GET') {
return view('kid_import');
} else {
$tmp_file = $_FILES['test'] ['name'];
$file_types = explode(".", $tmp_file);
$file_type = $file_types [count($file_types) - 1];
if (strtolower($file_type) == "xls" || strtolower($file_type) == "xlsx") {
$file = $request->file('test');
$path = 'upload/excel_import';
$filename = $tmp_file;
$file->move($path, $filename);
$filePath = $path . '/' . $filename;
Excel::load($filePath, function ($reader) {
$data = $reader->toArray();
$a = [];
if (empty($data)) {
die('');
} else {
foreach ($data as $k1 => $v1) {
foreach ($v1 as $k2 => $v2) {
$a[$k1]['year'] = $v2['年份']?$v2['年份']:'';
$a[$k1]['class'] = $v2['科类']?$v2['科类']:'';
$a[$k1]['grade'] = $v2['分数']?$v2['分数']:'';
$a[$k1]['sum'] = $v2['人数']?$v2['人数']:'';
$a[$k1]['total'] = $v2['累计']?$v2['累计']:'';
$a[$k1]['created_at'] = date('Y-m-d H:i:s', time());
$a[$k1]['updated_at'] = date('Y-m-d H:i:s', time());
$res = $this->repository->create($a[$k1]);
}
}
}
if (!$res) {
die('');
}
});
// 读取.xls文件后删除文件
unlink($filePath);
return back()->with('success', '导入人数统计信息成功');
} else {
return back()->with('error', '不是Excel .xls或者.xlsx文件,请重新上传');
}
}
}
}