article_obj = Db::name('article'); $this->medicament_obj = Db::name('medicament'); $this->article_to_medicament_obj = Db::name('ArticleToMedicament'); } /** * 增加文章药剂项 */ public function addMedicament() { $data = $this->request->post(); // 验证规则 $rule = new Validate([ 'article_id' => 'require|number', 'med_title' => 'require', 'med_ename' => 'require' ]); if (!$rule->check($data)) { return jsonError($rule->getError()); } $article_info = $this->article_obj->where('article_id', $data['article_id'])->find(); //检测当前药剂是否存在 $med_check = $this->medicament_obj ->where("med_title = '".trim($data['med_title'])."' or med_ename = '".trim($data['med_ename'])."'") ->where('med_state',0) ->find(); if($med_check){ return json(['code'=>2,'data'=>$med_check]); } //添加药剂信息 $insert_med['med_title'] = trim($data['med_title']); $insert_med['med_ename'] = trim($data['med_ename']); $insert_med['med_ctime'] = time(); $med_id = $this->medicament_obj->insertGetId($insert_med); //添加文章对应关系 $insert_atm['article_id'] = $data['article_id']; $insert_atm['med_id'] = $med_id; $this->article_to_medicament_obj->insert($insert_atm); return jsonSuccess([]); } /** * 添加已存在药剂的归属对应关系 */ public function addMedicamentHas(){ $data = $this->request->post(); // 验证规则 $rule = new Validate([ 'article_id' => 'require|number', 'med_id' => 'require' ]); if (!$rule->check($data)) { return jsonError($rule->getError()); } $insert_atm['article_id'] = $data['article_id']; $insert_atm['med_id'] = $data['med_id']; $this->article_to_medicament_obj->insert($insert_atm); return jsonSuccess([]); } /** * 删除药剂话题与文章对应关系 */ public function delMedicament(){ $data = $this->request->post(); $rule = new Validate([ 'article_id'=>'require' ]); if(!$rule->check($data)){ return jsonError($rule->getError()); } $atm_info = $this->article_to_medicament_obj->where('article_id',$data['article_id'])->where('atm_state',0)->find(); //确定此关联的药剂话题项目是否有其他关联文章,决定是否删除连带的药剂话题 $check = $this->article_to_medicament_obj->where('med_id',$atm_info['med_id'])->where('atm_id','<>',$atm_info['atm_id'])->where('atm_state',0)->find(); if($check==null){ $this->medicament_obj->where('med_id',$atm_info['med_id'])->update(['med_state'=>1]); } $this->article_to_medicament_obj->where('article_id',$data['article_id'])->where('atm_state',0)->update(['atm_state'=>1]); return jsonSuccess([]); } }