123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?php
- namespace app\admin\controller;
- use app\admin\model\RecycleBinModel;
- use app\admin\model\RouteModel;
- use cmf\controller\AdminBaseController;
- use think\Db;
- class RecycleBinController extends AdminBaseController
- {
-
- public function index()
- {
- $content = hook_one('admin_recycle_bin_index_view');
- if (!empty($content)) {
- return $content;
- }
- $recycleBinModel = new RecycleBinModel();
- $list = $recycleBinModel->order('create_time desc')->paginate(10);
-
- $page = $list->render();
- $this->assign('page', $page);
- $this->assign('list', $list);
- return $this->fetch();
- }
-
- public function restore()
- {
- $id = $this->request->param('id', 0, 'intval');
- $result = Db::name('recycleBin')->where('id', $id)->find();
- $tableName = explode('#', $result['table_name']);
- $tableName = $tableName[0];
-
- if ($result) {
- $res = Db::name($tableName)
- ->where('id', $result['object_id'])
- ->update(['delete_time' => '0']);
- if ($tableName == 'portal_post') {
- Db::name('portal_category_post')->where('post_id', $result['object_id'])->update(['status' => 1]);
- Db::name('portal_tag_post')->where('post_id', $result['object_id'])->update(['status' => 1]);
- }
- if ($res) {
- $re = Db::name('recycleBin')->where('id', $id)->delete();
- if ($re) {
- $this->success("还原成功!");
- }
- }
- }
- }
-
- public function delete()
- {
- $id = $this->request->param('id');
- $result = Db::name('recycleBin')->where('id', $id)->find();
-
- if ($result) {
-
- if ($result['table_name'] === 'portal_post#page') {
- $re = Db::name('portal_post')->where('id', $result['object_id'])->delete();
-
- $routeModel = new RouteModel();
- $routeModel->setRoute('', 'portal/Page/index', ['id' => $result['object_id']], 2, 5000);
- $routeModel->getRoutes(true);
- } else {
- $re = Db::name($result['table_name'])->where('id', $result['object_id'])->delete();
- }
- if ($re) {
- $res = Db::name('recycleBin')->where('id', $id)->delete();
- if ($result['table_name'] === 'portal_post') {
- Db::name('portal_category_post')->where('post_id', $result['object_id'])->delete();
- Db::name('portal_tag_post')->where('post_id', $result['object_id'])->delete();
- }
- if ($res) {
- $this->success("删除成功!");
- }
- }
- }
- }
- }
|