SlideController.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <?php
  2. // +—————————————————————————————————————————————————————————————————————
  3. // | Created by Yunbao
  4. // +—————————————————————————————————————————————————————————————————————
  5. // | Copyright (c) 2013~2022 http://www.yunbaokj.com All rights reserved.
  6. // +—————————————————————————————————————————————————————————————————————
  7. // | Author: https://gitee.com/yunbaokeji
  8. // +—————————————————————————————————————————————————————————————————————
  9. // | Date: 2022-04-30
  10. // +—————————————————————————————————————————————————————————————————————
  11. namespace app\admin\controller;
  12. use app\admin\model\SlideModel;
  13. use cmf\controller\AdminBaseController;
  14. use think\Db;
  15. class SlideController extends AdminBaseController
  16. {
  17. /**
  18. * 幻灯片列表
  19. * @adminMenu(
  20. * 'name' => '幻灯片管理',
  21. * 'parent' => 'admin/Setting/default',
  22. * 'display'=> true,
  23. * 'hasView'=> true,
  24. * 'order' => 40,
  25. * 'icon' => '',
  26. * 'remark' => '幻灯片管理',
  27. * 'param' => ''
  28. * )
  29. * @return mixed
  30. * @throws \think\db\exception\DataNotFoundException
  31. * @throws \think\db\exception\ModelNotFoundException
  32. * @throws \think\exception\DbException
  33. */
  34. public function index()
  35. {
  36. $content = hook_one('admin_slide_index_view');
  37. if (!empty($content)) {
  38. return $content;
  39. }
  40. $slidePostModel = new SlideModel();
  41. $slides = $slidePostModel->where('delete_time', 'eq', 0)->select();
  42. $this->assign('slides', $slides);
  43. return $this->fetch();
  44. }
  45. /**
  46. * 添加幻灯片
  47. * @adminMenu(
  48. * 'name' => '添加幻灯片',
  49. * 'parent' => 'index',
  50. * 'display'=> false,
  51. * 'hasView'=> true,
  52. * 'order' => 10000,
  53. * 'icon' => '',
  54. * 'remark' => '添加幻灯片',
  55. * 'param' => ''
  56. * )
  57. */
  58. public function add()
  59. {
  60. return $this->fetch();
  61. }
  62. /**
  63. * 添加幻灯片提交
  64. * @adminMenu(
  65. * 'name' => '添加幻灯片提交',
  66. * 'parent' => 'index',
  67. * 'display'=> false,
  68. * 'hasView'=> false,
  69. * 'order' => 10000,
  70. * 'icon' => '',
  71. * 'remark' => '添加幻灯片提交',
  72. * 'param' => ''
  73. * )
  74. */
  75. public function addPost()
  76. {
  77. $data = $this->request->param();
  78. $slidePostModel = new SlideModel();
  79. $result = $this->validate($data, 'Slide');
  80. if ($result !== true) {
  81. $this->error($result);
  82. }
  83. $slidePostModel->save($data);
  84. $this->success("添加成功!", url("slide/index"));
  85. }
  86. /**
  87. * 编辑幻灯片
  88. * @adminMenu(
  89. * 'name' => '编辑幻灯片',
  90. * 'parent' => 'index',
  91. * 'display'=> false,
  92. * 'hasView'=> true,
  93. * 'order' => 10000,
  94. * 'icon' => '',
  95. * 'remark' => '编辑幻灯片',
  96. * 'param' => ''
  97. * )
  98. */
  99. public function edit()
  100. {
  101. $id = $this->request->param('id');
  102. $slidePostModel = new SlideModel();
  103. $result = $slidePostModel->where('id', $id)->find();
  104. $this->assign('result', $result);
  105. return $this->fetch();
  106. }
  107. /**
  108. * 编辑幻灯片提交
  109. * @adminMenu(
  110. * 'name' => '编辑幻灯片提交',
  111. * 'parent' => 'index',
  112. * 'display'=> false,
  113. * 'hasView'=> false,
  114. * 'order' => 10000,
  115. * 'icon' => '',
  116. * 'remark' => '编辑幻灯片提交',
  117. * 'param' => ''
  118. * )
  119. */
  120. public function editPost()
  121. {
  122. $data = $this->request->param();
  123. $slidePostModel = new SlideModel();
  124. $result = $this->validate($data, 'Slide');
  125. if ($result !== true) {
  126. $this->error($result);
  127. }
  128. $slidePostModel->save($data, ['id' => $data['id']]);
  129. $this->success("保存成功!", url("slide/index"));
  130. }
  131. /**
  132. * 删除幻灯片
  133. * @adminMenu(
  134. * 'name' => '删除幻灯片',
  135. * 'parent' => 'index',
  136. * 'display'=> false,
  137. * 'hasView'=> false,
  138. * 'order' => 10000,
  139. * 'icon' => '',
  140. * 'remark' => '删除幻灯片',
  141. * 'param' => ''
  142. * )
  143. */
  144. public function delete()
  145. {
  146. $id = $this->request->param('id', 0, 'intval');
  147. $slidePostModel = new SlideModel();
  148. $result = $slidePostModel->where('id', $id)->find();
  149. if (empty($result)) {
  150. $this->error('幻灯片不存在!');
  151. }
  152. //如果存在页面。则不能删除。
  153. $slidePostCount = Db::name('slide_item')->where('slide_id', $id)->count();
  154. if ($slidePostCount > 0) {
  155. $this->error('此幻灯片有页面无法删除!');
  156. }
  157. $data = [
  158. 'object_id' => $id,
  159. 'create_time' => time(),
  160. 'table_name' => 'slide',
  161. 'name' => $result['name']
  162. ];
  163. $resultSlide = $slidePostModel->save(['delete_time' => time()], ['id' => $id]);
  164. if ($resultSlide) {
  165. Db::name('recycleBin')->insert($data);
  166. }
  167. $this->success("删除成功!", url("slide/index"));
  168. }
  169. }