repository) $this->repository = $repository; } /* * 搜索页 * */ public function search() { $fields = (new CompanyInfoModel())->filterFields; return view('admin.company.info.search', compact('fields')); } /** * 列表页 */ function index(Request $request) { $search = $request->all(); $order = array(); if (isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) { $order[$request['sort_field']] = $request['sort_field_by']; } else { $order['id'] = 'DESC'; } $list = $this->repository->searchCompany($search, $order); if ($request->ajax()) { $view = view('admin.company.info.data', compact('list'))->render(); return response()->json(['html' => $view]); } $fields = (new CompanyInfoModel())->filterFields; return view('admin.company.info.index', compact('list', 'fields')); } /*** * 创建公海 * @param Request $request * @return int */ public function add_collection(Request $request) { $filter_fields = $request->except('_token'); $data['user_id'] = \Auth::guard('admin')->user()->id; $data['filter_fields'] = json_encode($filter_fields); $data['name'] = '我的公海'; UserCompanyCollectionModel::create($data); return 200; } public function collection(Request $request) { if ($request->ajax()) { $search = $request->all(); $order = array(); if (isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) { $order[$request['sort_field']] = $request['sort_field_by']; } else { $order['id'] = 'DESC'; } $list = $this->repository->searchCompany($search, $order); $view = view('admin.company.collection.data', compact('list'))->render(); return response()->json(['html' => $view]); } $user_id = \Auth::guard('admin')->user()->id; $collection = UserCompanyCollectionModel::where('user_id', $user_id)->first(); if (count($collection)) { $search = (array)json_decode($collection->filter_fields); $order = array(); if (isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) { $order[$request['sort_field']] = $request['sort_field_by']; } else { $order['id'] = 'DESC'; } $list = $this->repository->searchCompany($search, $order); $fields = (new CompanyInfoModel())->filterFields; return view('admin.company.collection.index', compact('list', 'fields')); } } /** * 添加 */ public function create(Request $request) { $tmp_file = $_FILES['company_info']['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('company_info'); $path = 'upload/excel'; $filename = $tmp_file; $file->move($path, $filename); $filePath = $path . '/' . $filename; Excel::import(new CompanyInfoImport, ''.$filePath.'','public_file'); // 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'] = isset($v2['年度'])?$v2['年度']:''; // $a[$k1]['class'] = isset($v2['科类'])?$v2['科类']:''; // $a[$k1]['batch'] = isset($v2['批次'])?$v2['批次']:''; // $a[$k1]['level'] = isset($v2['层次'])?$v2['层次']:''; // $a[$k1]['type'] = isset($v2['类别'])?$v2['类别']:''; // $a[$k1]['college'] = isset($v2['院校'])?$v2['院校']:''; // $a[$k1]['province'] = isset($v2['所在省份'])?$v2['所在省份']:' // '; // $a[$k1]['city'] = isset($v2['所在地市'])?$v2['所在地市']:''; // $a[$k1]['major'] = isset($v2['专业'])?$v2['专业']:''; // $a[$k1]['comment'] = isset($v2['专业备注'])?$v2['专业备注']:''; // $a[$k1]['min_grade'] = isset($v2['最低分'])?$v2['最低分']:''; // $a[$k1]['avg_grade'] = isset($v2['平均分'])?$v2['平均分']:''; // $a[$k1]['max_grade'] = isset($v2['最高分'])?$v2['最高分']:''; // $a[$k1]['batch_grade'] = isset($v2['批次线'])?$v2['批次线']:''; // $a[$k1]['miss_grade'] = isset($v2['线差'])?$v2['线差']:''; // $a[$k1]['min_rank'] = isset($v2['最低位次'])?$v2['最低位次']:''; // $a[$k1]['max_rank'] = isset($v2['最高位次'])?$v2['最高位次']:''; // $a[$k1]['avg_rank'] = isset($v2['平均位次'])?$v2['平均位次']:''; // $a[$k1]['major_grade'] = $a[$k1]['batch_grade'] + $a[$k1]['miss_grade']; // // $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文件,请重新上传'); } } /** * 保存修改 */ private function _createSave() { $data = (array)request('data'); $id = $this->repository->create($data); if ($id) { $url[] = array('url' => U('Company/Info/index'), 'title' => '返回列表'); $url[] = array('url' => U('Company/Info/create'), 'title' => '继续添加'); $this->showMessage('添加成功', $url); } else { $url[] = array('url' => U('Company/Info/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.company.info.edit', compact('data')); } /** * 保存修改 */ private function _updateSave() { $data = (array)request('data'); $ok = $this->repository->update(request('id'), $data); if ($ok) { $url[] = array('url' => U('Company/Info/index'), 'title' => '返回列表'); return $this->showMessage('操作成功', urldecode(request('_referer'))); } else { $url[] = array('url' => U('Company/Info/index'), 'title' => '返回列表'); return $this->showWarning('操作失败', $url); } } public function view(Request $request) { $data = $this->repository->find(request('id')); $contacts = $data->contacts()->orderBy('sort', 'desc')->get(); return view('admin.company.info.view', compact('data', 'contacts')); } /** * 删除 */ public function destroy(Request $request) { $bool = $this->repository->destroy($request->get('id')); if ($bool) { return $this->showMessage('操作成功'); } else { return $this->showWarning("操作失败"); } } }