function ApplyCancel($QuestionId) { $oOperator = new Kubao_Operator(); //事务开启 $this->db->begin(); //获取问题 $QuestionInfo = $this->getQuestion($QuestionId, "id,status,js_kf,pid"); //问题存在 if ($QuestionInfo['id']) { //如果已经被接手 if ($QuestionInfo['js_kf'] != '') { //如果尚未被回答或尚未完结 if ($QuestionInfo['status'] < 2) { //标识未被分单 $updateArr = array("is_hawb" => 0, "js_kf" => "", "receive_time" => 0); $UpdateQuestion = $this->updateQuestion($QuestionInfo['id'], $updateArr); //减去单量 if ($QuestionInfo['pid'] == 0) { //更新首问数量 $UpdateAcceptedNum = $oOperator->UpdateOperatorAccecpted($QuestionInfo['js_kf'], -1, 0); } else { //更新追问数量 $UpdateAcceptedNum = $oOperator->UpdateOperatorAccecpted($QuestionInfo['js_kf'], -1, 1); } if ($UpdateQuestion && $UpdateAcceptedNum) { //事务成功,提交 $this->db->commit(); return true; } else { //事务失败,回滚 $this->db->rollback(); return false; } } else { //问题已被回答,回滚 $this->db->rollback(); return false; } } else { //问题无接手,回滚 $this->db->rollback(); return false; } } else { //问题未找到,回滚 return false; $this->db->rollback(); } }