=',$data['s_time']]; // } // if($data['e_time']){ // $parameter['create_time'] = ['<=',$data['e_time']]; // } } $num = Db::table('admin_estimate')->where($parameter)->count(); $result = Db::table('admin_estimate')->where($parameter)->order('is_del,id desc')->page($page,$this->page_num)->select(); // dump($num); // dump($result); // die; if(!$pd){ // $result['num'] = $num; // $result['data'] = $result; return $this->msg(['num'=>$num,'data'=>$result]); } $this->assign([ 'result' => $result, 'num' => $num, ]); return $this->fetch(); } public function estimate_add(){ return $this->fetch(); } public function estimate_edit(){ $data = input(); $this->assign([ 'id' => $data['id'], ]); return $this->fetch(); } // 规则详情页面 public function estimate_content_observe(){ $data = input(); $result = Db::table('admin_estimate')->where(['id'=>$data['id']])->find(); // dump($result); $data = [ 'province'=>$result['province'], 'city'=>$result['city']=='无'?'':'-'.$result['city'], 'list'=>[], ]; $temporary_array = json_decode($result['content'],true); // return $this->msg($temporary_array); $temporary_array2 = []; foreach ($temporary_array as $key => $value) { // 男女 foreach ($value as $dlk1 => $dlv1) { // 大类 $num = array_push($temporary_array2,[ 'title'=> $key==1?'男生'.$dlk1.'评定标准':'女生'.$dlk1.'评定标准', 'list'=>[], ]); foreach ($dlv1 as $dlk2 => $dlv2) { // 第二类 $num2 = array_push($temporary_array2[$num-1]['list'],[ 'title'=>$dlk2, 'choose_num'=>$dlv2['choose_num'], 'choose_all'=>count($dlv2['list']), 'list'=>[], ]); foreach ($dlv2['list'] as $xmk1 => $xmv1) { $num3 = array_push($temporary_array2[$num-1]['list'][$num2-1]['list'],[ 'title'=>$xmk1, 'unit_data'=>$xmv1['unit_data'], 'proportion'=>$xmv1['proportion'], 'score'=>$xmv1['score'], // 'list'=>count($v2['content'])==0?[['成绩','无'],['数据','无']]:[['成绩'],['数据']], 'list'=>[['成绩'],['数据']], ]); if(count($xmv1['content'])>0){ foreach ($xmv1['content'] as $gzk1 => $gzv1) { array_push($temporary_array2[$num-1]['list'][$num2-1]['list'][$num3-1]['list'][0],$gzv1[2]); array_push($temporary_array2[$num-1]['list'][$num2-1]['list'][$num3-1]['list'][1],$gzv1[1].$gzv1[0]); } }else{ array_push($temporary_array2[$num-1]['list'][$num2-1]['list'][$num3-1]['list'][0],'该项无规则,由前端填写输入'); array_push($temporary_array2[$num-1]['list'][$num2-1]['list'][$num3-1]['list'][1],'该项无规则,由前端填写输入'); } } } } } $data['list'] = $temporary_array2; // return $this->msg($data); $this->assign([ 'result' => $data, 'num' => 1, ]); return $this->fetch(); } ################################################################业务接口################################################################ ################################################################业务接口################################################################ ################################################获取execl中数组 public function submit_rule(){ // $file = request()->file('file'); $file = request()->file('execl'); $name = request()->param(); $address_data = explode(',',$name['address']); // dump($name); // die; if($name['type'] == 'create'){ $rule_is_true = Db::table('admin_estimate')->where(['province'=>$address_data[0],'city'=>$address_data[1]==''?'无':$address_data[1]])->count(); if($rule_is_true > 0){ return $this->msg(10007); } } if($file){ // 移动到框架应用根目录/public/uploads/ 目录下 $file_name_new = date('YmdHis').'_ceshi.xlsx'; $info = $file->validate(['size' => 2048000, 'ext' => 'xlsx'])->move(ROOT_PATH . 'public' . DS . 'estimate',$file_name_new); if($info){ $original_data = $this->excelToArray(ROOT_PATH . 'public' . DS . 'estimate' . DS . $info->getSaveName()); $handle_data = $this->transformation_data($original_data,$address_data,$name['type']); // die; // dump($handle_data); // die; if($name['type'] == 'create'){ $result = Db::table('admin_estimate')->insert($handle_data); }else{ $result = Db::table('admin_estimate')->where(['id'=>$name['update_id']])->update($handle_data); } // return $this->msg(10002); // 成功上传后 获取上传信息 // 输出 jpg // echo $info->getExtension(); // // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg // echo $info->getSaveName(); // // 输出 42a79759f284b767dfcb2a0197904287.jpg // echo $info->getFilename(); if($result){ return $this->msg([]); }else{ return $this->msg(10002); } }else{ // 上传失败获取错误信息 return $this->msg(10001, $file->getError()); // echo $file->getError(); } }else{ return $this->msg(10001, '文件缺失'); } } // 读取execl文件数据 private function excelToArray($filename){ vendor('PHPExcel.PHPExcel'); $objPHPExcelReader = \PHPExcel_IOFactory::load($filename); $sheet = $objPHPExcelReader->getSheet(0); // 读取第一个工作表(编号从 0 开始) $highestRow = $sheet->getHighestRow(); // 取得总行数 $highestColumn = \PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); // 取得总列数 // 一次读取一列 $res_arr = array(); for ($row = 2; $row <= $highestRow; $row++) { $row_arr = array(); for ($column = 0; $column < $highestColumn; $column++) { //判断单元格是否包含公式 if ($sheet->getCellByColumnAndRow($column, $row)->isFormula()) { $val = $sheet->getCellByColumnAndRow($column, $row)->getFormattedValue(); } else { $val = $sheet->getCellByColumnAndRow($column, $row)->getValue(); } $row_arr[] = $val; } if (count($row_arr) > 0) { $res_arr[] = $row_arr; } } return $res_arr; } //处理估分数据格式 private function transformation_data($data,$daaress,$type='create'){ // dump($daaress); $temporary_daaress = $daaress; // dump($temporary_daaress); // die; if($type == 'create'){ $return_result = [ 'province'=>$temporary_daaress[0] == ''?'无':$temporary_daaress[0], 'city'=>$temporary_daaress[1] == ''?'无':$temporary_daaress[1], 'area'=>'无', 'create_time'=>date('Y-m-d H:i:s'), 'update_time'=>date('Y-m-d H:i:s'), 'content'=>[] ]; }else{ $return_result = [ 'update_time'=>date('Y-m-d H:i:s'), 'content'=>[] ]; } $temporary_array = []; $gender = []; $rule_c = []; foreach ($data as $key => $value) { $gender = explode(',',$value[5]); if($value[6] == '无' || $value[7] == '无' || $value[8] == '无'){ $rule_c = []; }else{ $rule_c = [[$value[6],$value[7],$value[8]]]; } foreach ($gender as $gk => $gv) { if(!array_key_exists($gv,$temporary_array)){ // 如果性别不存在 // $temporary_array[$gv][$value[0]][$value[1]]['score'] = $value[2]; $temporary_array[$gv][$value[0]][$value[1]]['choose_num'] = $value[9]; $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]] = [ 'unit_data'=>$value[4], 'proportion'=>$value[10], 'value'=>$value[11], 'type'=>$value[12], 'describe'=>$value[13], 'score'=>$value[2], ]; $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = $rule_c; // if($value[6] == null){ // $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = []; // }else{ // $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = [[$value[6],$value[7],$value[8]]]; // } }else{ // 如果性别已经存在 if(!array_key_exists($value[0],$temporary_array[$gv])){ // 如果第一分类不存在 // $temporary_array[$gv][$value[0]][$value[1]]['score'] = $value[2]; $temporary_array[$gv][$value[0]][$value[1]]['choose_num'] = $value[9]; $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]] = [ 'unit_data'=>$value[4], 'proportion'=>$value[10], 'value'=>$value[11], 'type'=>$value[12], 'describe'=>$value[13], 'score'=>$value[2], ]; $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = $rule_c; // if($value[6] == null){ // $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = []; // }else{ // $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = [[$value[6],$value[7],$value[8]]]; // } }else{ // 第一分类存在 if(!array_key_exists($value[1],$temporary_array[$gv][$value[0]])){ // 如果第二分类不存在 // array_push($temporary_array[$value[0]]); // $temporary_array[$gv][$value[0]][$value[1]]['score'] = $value[2]; $temporary_array[$gv][$value[0]][$value[1]]['choose_num'] = $value[9]; $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]] = [ 'unit_data'=>$value[4], 'proportion'=>$value[10], 'value'=>$value[11], 'type'=>$value[12], 'describe'=>$value[13], 'score'=>$value[2], ]; $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = $rule_c; // if($value[6] == null){ // $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = []; // }else{ // $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = [[$value[6],$value[7],$value[8]]]; // } }else{ // 第二分类存在 if(!array_key_exists($value[3],$temporary_array[$gv][$value[0]][$value[1]]['list'])){ // 如果项目名不存在 // $temporary_array[$gv][$value[0]][$value[1]]['score'] = $value[2]; $temporary_array[$gv][$value[0]][$value[1]]['choose_num'] = $value[9]; $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]] = [ 'unit_data'=>$value[4], 'proportion'=>$value[10], 'value'=>$value[11], 'type'=>$value[12], 'describe'=>$value[13], 'score'=>$value[2], ]; $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = $rule_c; // if($value[6] == null){ // $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = []; // }else{ // $temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'] = [[$value[6],$value[7],$value[8]]]; // } }else{ array_push($temporary_array[$gv][$value[0]][$value[1]]['list'][$value[3]]['content'],[$value[6],$value[7],$value[8]]); } } } } } } // return $temporary_array; $temporary_array = json_encode($temporary_array); $return_result['content'] = $temporary_array; return $return_result; } ################################################################其他接口################################################################ ################################################################其他接口################################################################ // 查看所有地市卡片项目种类 public function cards_select_all(){ $data = Db::table('admin_estimate')->where(['type'=>1])->field('id,province,city,area,content')->select(); $card_arr = []; $exception_arr = ['7年级','8年级','9年级','七年级','八年级','九年级','七年级下学期','八年级上学期','八年级下学期','九年级上学期','BMI','肺活量','机考','体质健康达标','体育课','《国家学生体质健康标准》','体育综合知识测试成绩','体育课考评','一小时阳光体育活动','']; foreach ($data as $key => $value) { $data[$key]['content'] = json_decode($value['content'],true); // dump($data[$key]['city']); if(!array_key_exists($data[$key]['city'], $card_arr)){ $card_arr[$data[$key]['city']] = []; } // 开始遍历内容 foreach ($data[$key]['content'] as $k1 => $v1) { // 遍历男女 foreach ($v1 as $k2 => $v2) { // 遍历现场还是日常 foreach ($v2 as $k3 => $v3) { // 遍历大分支(第一类目) foreach ($v3['list'] as $k4 => $v4) { // 遍历项目名 // dump($k4); // dump($v4); // if($k4 == '轮滑过桩'){ // dump($data[$key]['province']); // dump($data[$key]['city']); // } if(!in_array($k4, $exception_arr)){ if(!in_array($k4.'-----------'.$v4['unit_data'], $card_arr[$data[$key]['city']])){ // if(!in_array($k4, $card_arr[$data[$key]['city']])){ // array_push($card_arr[$data[$key]['city']],$k4.'-------'.($k1 == 1?'男':'女').'-----------'.$v4['unit_data']); array_push($card_arr[$data[$key]['city']],$k4.'-----------'.$v4['unit_data']); // array_push($card_arr[$data[$key]['city']],$k4); } } } } } } } dump($card_arr); } }