model = new \app\admin\model\item\Judge; } /** * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ /** * 添加 * @return string * @throws \think\Exception */ public function add(){ if (false === $this->request->isPost()) { $user_info = Session::get('admin'); $this->assign('user_info',$user_info); return $this->view->fetch(); } $baseData = $this->request->post('baseData/a');////判断标准详情数据 $data = $this->request->post('data/a');////判断标准数据 if (empty($baseData)) { $this->error(__('Parameter %s can not be empty', '')); } //基础数据 $params['userid'] = $baseData[0]; $params['no'] = $baseData[1]; $params['name'] = $baseData[2]; $params['create'] = $baseData[3]; $params['update'] = $baseData[4]; $params['class'] = $baseData[5]; //1.项目名称值不同有重复合并一个=>列:测试,测试,测试1 转换为 测试,测试1 $params['list_name'] = ''; foreach ($data as $k => $val){ $params['list_name'] .= $val[1].','; } $params['list_name'] = rtrim($params['list_name'],","); $myArray = explode(',', $params['list_name']); $array_unique = array_unique($myArray); $params['list_name'] = implode(',', $array_unique); // //2.项目名称相同取一个=>列:测试,测试 转换为 测试 // foreach ($data as $k => $val){ // $params['list_name'] = $val[0]; // } $result = true; Db::startTrans(); try { $pid = Db::name('item_judge')->insertGetId($params); if (!$pid){ $result = false; } if (!empty($data)){ $insertData = []; foreach ($data as $key => $value){ $insertData[$key]['pid'] = $pid; $insertData[$key]['userid'] = $baseData[0]; $insertData[$key]['no'] = $baseData[1]; $insertData[$key]['name'] = $baseData[2]; $insertData[$key]['pro_name'] = $value[0]; $insertData[$key]['params'] = $value[1]; $insertData[$key]['standard'] = $value[2]; $insertData[$key]['max_character'] = $value[3]; $insertData[$key]['max'] = $value[4]; $insertData[$key]['min_character'] = $value[5]; $insertData[$key]['min'] = $value[6]; $insertData[$key]['create'] = date('Y-m-d H:i:s'); $insertData[$key]['update'] = date('Y-m-d H:i:s'); } $res = Db::name('item_judge_detail')->insertAll($insertData); if (!$res){ $result = false; } } Db::commit(); } catch (ValidateException|PDOException|Exception $e) { Db::rollback(); $this->error($e->getMessage()); } if ($result === false) { $this->error(__('No rows were inserted')); } $this->success(); } /** * 编辑 * @param null $ids * @return string * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function edit($ids = null){ if (false === $this->request->isPost()) { $row = $this->model->get($ids); if (!$row) { $this->error(__('No Results were found')); } $adminIds = $this->getDataLimitAdminIds(); if (is_array($adminIds) && !in_array($row[$this->dataLimitField], $adminIds)) { $this->error(__('You have no permission')); } $item_judge = Db::name('item_judge')->where('id',"=",$row['id'])->find(); $item_judge_detail = Db::name('item_judge_detail')->where('pid',"=",$item_judge['id'])->select(); $this->assign('item_judge_detail',$item_judge_detail); $this->assign('row',$item_judge); return $this->view->fetch(); } $baseData = $this->request->post('baseData/a'); $data = $this->request->post('data/a'); if (empty($baseData)) { $this->error(__('Parameter %s can not be empty', '')); } //基础数据 $pid = $baseData[0]; //项目id $params['no'] = $baseData[1]; //判定标准编号 $params['name'] = $baseData[2]; //判定标准名称 $params['update'] = $baseData[3]; //修改时间 $params['class'] = $baseData[5]; //判定类别 //1.项目名称值不同有重复合并一个=>列:测试,测试,测试1 转换为 测试,测试1 $params['list_name'] = ''; //检测项目集 foreach ($data as $k => $val){ $params['list_name'] .= $val[1].','; } $params['list_name'] = rtrim($params['list_name'],","); $myArray = explode(',', $params['list_name']); $array_unique = array_unique($myArray); $params['list_name'] = implode(',', $array_unique); // //2.项目名称相同取一个=>列:测试,测试 转换为 测试 // foreach ($data as $k => $val){ // $params['list_name'] = $val[0]; // } $validate = $this->validate($params,'admin/item/judge.edit'); if (true !== $validate){ $this->error($validate); } $insertData = []; //新增的子项 $updateData = []; //修改的子项 $idList = []; //删除的子项id if (!empty($data)){ foreach ($data as $key => $value){ if ($value[7] == 0){ $insertData[$key]['pid'] = $pid; $insertData[$key]['no'] = $baseData[1]; $insertData[$key]['name'] = $baseData[2]; $insertData[$key]['userid'] = $baseData[4]; $insertData[$key]['pro_name'] = $value[0]; $insertData[$key]['params'] = $value[1]; $insertData[$key]['standard'] = $value[2]; $insertData[$key]['max_character'] = $value[3]; $insertData[$key]['max'] = $value[4]; $insertData[$key]['min_character'] = $value[5]; $insertData[$key]['min'] = $value[6]; $insertData[$key]['create'] = date('Y-m-d H:i:s'); $insertData[$key]['update'] = date('Y-m-d H:i:s'); }else{ $updateData[$key]['no'] = $baseData[1]; $updateData[$key]['name'] = $baseData[2]; $updateData[$key]['update'] = $baseData[3]; $updateData[$key]['pro_name'] = $value[0]; $updateData[$key]['params'] = $value[1]; $updateData[$key]['standard'] = $value[2]; $updateData[$key]['max_character'] = $value[3]; $updateData[$key]['max'] = $value[4]; $updateData[$key]['min_character'] = $value[5]; $updateData[$key]['min'] = $value[6]; $updateData[$key]['id'] = $value[7]; $idList[$key] = $value[7]; } } } $result = true; Db::startTrans(); try { //通过项目id修改数据 Db::name('item_judge')->where('id',$pid)->update($params); //删除子项目数据 if (!empty($idList)){ $idRes = Db::name('item_judge_detail') ->where('pid',$pid) ->where('id','not in',$idList) ->select(); foreach ($idRes as $k=>$v){ Db::name('item_judge_detail')->where('pid',$pid)->delete($v['id']); } } //添加数据 if (!empty($insertData)){ $insertRes = Db::name('item_judge_detail')->insertAll($insertData); if (!$insertRes){ $result = false; } } //通过子项目id修改数据 if (!empty($updateData)){ foreach ($updateData as $k=>$v){ Db::name('item_judge_detail')->where('id',$v['id'])->update($v); } } Db::commit(); } catch (ValidateException|PDOException|Exception $e) { Db::rollback(); $this->error($e->getMessage()); } if (false === $result) { $this->error(__('No rows were updated')); } $this->success(); } /** * 软删除 判断标准数据 */ public function del($ids = null){ if (false === $this->request->isPost()) { $this->error(__("Invalid parameters")); } $ids = $ids ?: $this->request->post("ids"); if (empty($ids)) { $this->error(__('Parameter %s can not be empty', 'ids')); } $result = true; Db::startTrans(); try { $id = explode(',', $ids); $item_judge = \app\admin\model\item\Judge::destroy($id); if (!$item_judge){ $result = false; } $data =Db::name('item_judge_detail') ->whereIn('pid',$id) ->update(['deletetime'=>date('Y-m-d H:i:s')]); if (!$data){ $result = false; } Db::commit(); } catch (ValidateException|PDOException|Exception $e) { Db::rollback(); $this->error($e->getMessage()); } if (false === $result) { $this->error(__('No rows were updated')); } $this->success(); } /** * 回收站 */ // public function restore($ids = null){ // $item_judge = Db::name('item_judge')->select(); // echo "
";
//        print_r($item_judge);
//        echo "
"; // return $this->view->fetch(); // } }