MenuController.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <?php
  2. namespace backend\modules\admin\controllers;
  3. use backend\controllers\AdminController;
  4. use common\models\backend\Menu;
  5. use common\enums\AppEnum;
  6. use common\enums\StatusEnum;
  7. use common\models\rbac\AuthItem;
  8. use Yii;
  9. /**
  10. * 商城控制器
  11. *
  12. * @Author bing
  13. * @DateTime 2021-08-13 15:29:41
  14. * @copyright: Copyright (c) 2020 广东七件事集团
  15. */
  16. class MenuController extends AdminController
  17. {
  18. public $appId = AppEnum::BACKEND;
  19. /**
  20. * @param null $keyword
  21. * @param int $is_recycle
  22. * @return mixed|string|void
  23. */
  24. public function actionIndex()
  25. {
  26. $request = Yii::$app->request;
  27. if ($request->isAjax) {
  28. $cate_id = Yii::$app->request->get('cate_id', '1');
  29. $pid = Yii::$app->request->get('pid', 0);
  30. $cond = [['pid' => $pid], ['<>','status',StatusEnum::DELETE]];
  31. $cond[] = ['is_addon' => 0, 'cate_id' => $cate_id];
  32. $menus = Menu::getMenus($cond, ['child'], true);
  33. return $this->success('操作成功',compact('menus'));
  34. }
  35. return $this->render($this->action->id);
  36. }
  37. public function actionAddon()
  38. {
  39. $request = Yii::$app->request;
  40. if ($request->isAjax) {
  41. $pid = Yii::$app->request->get('pid', 0);
  42. $cond = [['pid' => $pid], ['<>','status',StatusEnum::DELETE]];
  43. $cond[] = ['is_addon' => 1];
  44. $menus = Menu::getMenus($cond, ['child'], true);
  45. return $this->success('操作成功',compact('menus'));
  46. }
  47. return $this->render($this->action->id);
  48. }
  49. /**
  50. * 编辑
  51. * @param null $keyword
  52. * @param int $is_recycle
  53. * @return mixed|void
  54. */
  55. public function actionEdit()
  56. {
  57. try {
  58. $request = Yii::$app->request;
  59. if ($request->isAjax) {
  60. if ($request->isGet) {
  61. $id = Yii::$app->request->get('id', '');
  62. $type = Yii::$app->request->get('type', 'add');
  63. $data = Menu::getEditData($id, $type);
  64. return $this->success('操作成功',$data);
  65. }
  66. }
  67. } catch (\Exception $e) {
  68. return $this->error($e->getMessage(), []);
  69. }
  70. try {
  71. $request = Yii::$app->request;
  72. if ($request->isAjax) {
  73. if ($request->isPost) {
  74. $params = Yii::$app->request->post();
  75. $res = Yii::$app->services->validate->validate($params, [
  76. [['cate_id', 'title'], 'required'],
  77. [['id', 'cate_id', 'url', 'is_addon', 'icon', 'pid', 'dev', 'sort', 'status', 'created_at', 'updated_at'], 'safe'],
  78. ]);
  79. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  80. $params['app_id'] = $this->appId;
  81. $res = Menu::createMenu($params);
  82. if ($res === false) return $this->error(Menu::getStaticError());
  83. return $this->success('操作成功');
  84. }
  85. }
  86. } catch (\Exception $e) {
  87. return $this->error($e->getMessage(), []);
  88. }
  89. }
  90. /**
  91. * 添加
  92. * @param null $keyword
  93. * @param int $is_recycle
  94. * @return mixed|void
  95. */
  96. public function actionAdd()
  97. {
  98. try {
  99. $request = Yii::$app->request;
  100. if ($request->isAjax) {
  101. if ($request->isGet) {
  102. $id = Yii::$app->request->get('id', '');
  103. $type = Yii::$app->request->get('type', 'add');
  104. $data = Menu::getEditData($id, $type);
  105. return $this->success('操作成功',$data);
  106. }
  107. }
  108. } catch (\Exception $e) {
  109. return $this->error($e->getMessage(), []);
  110. }
  111. try {
  112. $request = Yii::$app->request;
  113. if ($request->isAjax) {
  114. if ($request->isPost) {
  115. $params = Yii::$app->request->post();
  116. $res = Yii::$app->services->validate->validate($params, [
  117. [['cate_id', 'title'], 'required'],
  118. [['id', 'cate_id', 'url', 'is_addon', 'icon', 'pid', 'dev', 'sort', 'status', 'created_at', 'updated_at'], 'safe'],
  119. ]);
  120. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  121. $params['app_id'] = $this->appId;
  122. $res = Menu::createMenu($params);
  123. if ($res === false) return $this->error(Menu::getStaticError());
  124. return $this->success('操作成功');
  125. }
  126. }
  127. } catch (\Exception $e) {
  128. return $this->error($e->getMessage(), []);
  129. }
  130. }
  131. /**
  132. * 删除
  133. * @param null $keyword
  134. * @param int $is_recycle
  135. * @return mixed|void
  136. */
  137. public function actionDel()
  138. {
  139. $request = Yii::$app->request;
  140. if ($request->isAjax) {
  141. if ($request->isGet) {
  142. $id = Yii::$app->request->get('id', '');
  143. $res = Menu::delMenu($id, StatusEnum::DELETE);
  144. if ($res === false) return $this->error(Menu::getStaticError());
  145. return $this->success('操作成功');
  146. }
  147. }
  148. }
  149. /**
  150. * 更新状态
  151. * @param null $keyword
  152. * @param int $is_recycle
  153. * @return mixed|void
  154. */
  155. public function actionUpdateStatus()
  156. {
  157. $request = Yii::$app->request;
  158. if ($request->isAjax) {
  159. if ($request->isGet) {
  160. $id = Yii::$app->request->get('id', '');
  161. $status = Yii::$app->request->get('status', 0);
  162. $res = Menu::delMenu($id, $status);
  163. if ($res === false) return $this->error(Menu::getStaticError());
  164. return $this->success('操作成功');
  165. }
  166. }
  167. }
  168. /**
  169. * 更新序号
  170. * @return mixed|void
  171. */
  172. public function actionUpdateSort()
  173. {
  174. $request = Yii::$app->request;
  175. if ($request->isAjax) {
  176. if ($request->isGet) {
  177. $id = Yii::$app->request->get('id', '');
  178. $sort = Yii::$app->request->get('sort', '999');
  179. $params = ['id'=>$id,'sort'=>$sort];
  180. $res = Menu::setData($params);
  181. if($res === false) return $this->error(Menu::getStaticError());
  182. return $this->success('ok');
  183. }
  184. }
  185. }
  186. }