Kaynağa Gözat

删除一个动态评论,联动删除其他内容

lizhen_gitee 1 yıl önce
ebeveyn
işleme
e0f9e01119

+ 66 - 1
application/admin/controller/Topicdongtaianswer.php

@@ -3,7 +3,7 @@
 namespace app\admin\controller;
 
 use app\common\controller\Backend;
-
+use think\Db;
 /**
  * 动态评论管理
  *
@@ -71,4 +71,69 @@ class Topicdongtaianswer extends Backend
         return $this->view->fetch();
     }
 
+    /**
+     * 删除
+     */
+    public function del($ids = "")
+    {
+        if (!$this->request->isPost()) {
+            $this->error(__("Invalid parameters"));
+        }
+        $ids = $ids ? $ids : $this->request->post("ids");
+        if ($ids) {
+            $pk = $this->model->getPk();
+            $adminIds = $this->getDataLimitAdminIds();
+            if (is_array($adminIds)) {
+                $this->model->where($this->dataLimitField, 'in', $adminIds);
+            }
+            $list = $this->model->where($pk, 'in', $ids)->select();
+
+            $count = 0;
+            Db::startTrans();
+            try {
+                foreach ($list as $k => $v) {
+                    $count ++;
+
+                    $this->delete_answer($v['id']);
+                }
+                Db::commit();
+            } catch (PDOException $e) {
+                Db::rollback();
+                $this->error($e->getMessage());
+            } catch (Exception $e) {
+                Db::rollback();
+                $this->error($e->getMessage());
+            }
+            if ($count) {
+                $this->success();
+            } else {
+                $this->error(__('No rows were deleted'));
+            }
+        }
+        $this->error(__('Parameter %s can not be empty', 'ids'));
+    }
+
+    //删除我的某个评论
+    public function delete_answer($id){
+
+        $info = Db::name('topic_dongtai_answer')->where('id',$id)->find();
+
+        if($info['level'] == 1){
+
+            //楼层内都删
+            $louceng_id = Db::name('topic_dongtai_answer')->where('dt_id',$info['dt_id'])->where('level',2)->where('floor',$info['floor'])->column('id');
+            if(!empty($louceng_id)){
+                Db::name('topic_dongtai')->where('id',$info['dt_id'])->setDec('answernum',count($louceng_id));//回复数减1
+                Db::name('topic_dongtai_answer')->where('id','IN',$louceng_id)->delete();//评论删掉
+                Db::name('topic_answer_good')->where('answer_id','IN',$louceng_id)->delete();//评论点赞删掉
+            }
+
+        }
+
+        Db::name('topic_dongtai')->where('id',$info['dt_id'])->setDec('answernum');//回复数减1
+        Db::name('topic_dongtai_answer')->where('id',$id)->delete();  //评论删掉
+        Db::name('topic_answer_good')->where('answer_id',$id)->delete();//评论点赞删掉
+
+    }
+
 }

+ 3 - 1
application/api/controller/Topicdongtai.php

@@ -773,17 +773,19 @@ class Topicdongtai extends Api
         }
 
         if($info['level'] == 1){
-            Db::name('topic_dongtai')->where('id',$info['dt_id'])->setDec('answernum');//回复数减1
+
 
             //楼层内都删
             $louceng_id = Db::name('topic_dongtai_answer')->where('dt_id',$info['dt_id'])->where('level',2)->where('floor',$info['floor'])->column('id');
             if(!empty($louceng_id)){
+                Db::name('topic_dongtai')->where('id',$info['dt_id'])->setDec('answernum',count($louceng_id));//回复数减1
                 Db::name('topic_dongtai_answer')->where('id','IN',$louceng_id)->delete();//评论删掉
                 Db::name('topic_answer_good')->where('answer_id','IN',$louceng_id)->delete();//评论点赞删掉
             }
 
         }
 
+        Db::name('topic_dongtai')->where('id',$info['dt_id'])->setDec('answernum');//回复数减1
         Db::name('topic_dongtai_answer')->where('id',$id)->delete();  //评论删掉
         Db::name('topic_answer_good')->where('answer_id',$id)->delete();//评论点赞删掉