From 86fe5caf31855376e8e74374eca83f2bc03c35c3 Mon Sep 17 00:00:00 2001
From: heshupeng <hsp@bronet.cn>
Date: Wed, 20 Jan 2021 12:20:35 +0800
Subject: [PATCH] 删除帖子

---
 application/admin/controller/mobile/topic/Topic.php  | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 application/admin/view/mobile/topic/topic/index.html |  2 +-
 2 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/application/admin/controller/mobile/topic/Topic.php b/application/admin/controller/mobile/topic/Topic.php
index 5d51bf5..2dd3727 100644
--- a/application/admin/controller/mobile/topic/Topic.php
+++ b/application/admin/controller/mobile/topic/Topic.php
@@ -3,7 +3,9 @@
 namespace app\admin\controller\mobile\topic;
 
 use app\common\controller\Backend;
+use Exception;
 use think\Db;
+use think\exception\PDOException;
 
 /**
  * 论坛管理
@@ -122,4 +124,50 @@ class Topic extends Backend
             $this->success('审核成功');
         }
     }
+
+    /**
+     * 删除
+     */
+    public function del($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) {
+                    // 删除点赞
+                    Db::name('mobile_topic_good')->where('topic_id',$v['id'])->delete();
+                    // 删除评论点赞
+                    $appraise_list = Db::name('mobile_topic_appraise')->where('topic_id',$v['id'])->field('id')->select();
+                    foreach ($appraise_list as $val){
+                        Db::name('mobile_topic_appraise_good')->where('topic_appraise_id',$val['id'])->delete();
+                        Db::name('mobile_topic_appraise')->where('id',$val['id'])->delete();
+                    }
+                    // 删除附件
+                    Db::name('mobile_topic_attachment')->where('topic_id',$v['id'])->delete();
+                    $count += $v->delete();
+                }
+                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'));
+    }
 }
diff --git a/application/admin/view/mobile/topic/topic/index.html b/application/admin/view/mobile/topic/topic/index.html
index 468e8e2..75589bc 100644
--- a/application/admin/view/mobile/topic/topic/index.html
+++ b/application/admin/view/mobile/topic/topic/index.html
@@ -22,7 +22,7 @@
                     </div>
                     <table id="table" class="table table-striped table-bordered table-hover table-nowrap"
                            data-operate-edit="false" 
-                           data-operate-del="false" 
+                           data-operate-del="{:$auth->check('mobile/topic/topic/del')}"
                            width="100%">
                     </table>
                 </div>
--
libgit2 0.24.0