RoleController.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace backend\modules\mall\controllers;
  3. use backend\models\AdminRole;
  4. use backend\controllers\MallController;
  5. use common\enums\AppEnum;
  6. use common\enums\StatusEnum;
  7. use common\models\rbac\AuthItem;
  8. use common\models\rbac\AuthRole;
  9. use Yii;
  10. class RoleController extends MallController
  11. {
  12. public $appId = AppEnum::BACKEND;
  13. /**
  14. *
  15. * @return mixed|string|void
  16. */
  17. public function actionIndex()
  18. {
  19. $request = Yii::$app->request;
  20. if ($request->isAjax) {
  21. $cond = [
  22. ['mall_id' => $this->mall_id],
  23. ['app_id' => AppEnum::BACKEND],
  24. ['status' => [StatusEnum::ENABLED,StatusEnum::DISABLED]]
  25. ];
  26. $list = AuthRole::getRole($cond, [], true);
  27. return $this->success('操作成功', compact('list'));
  28. }
  29. return $this->render($this->action->id);
  30. }
  31. /**
  32. * 编辑
  33. * @param null $keyword
  34. * @param int $is_recycle
  35. * @return mixed|void
  36. */
  37. public function actionEdit()
  38. {
  39. $request = Yii::$app->request;
  40. if ($request->isAjax) {
  41. try {
  42. if ($request->isGet) {
  43. $params = $request->get();
  44. $params['app_id'] = $this->appId;
  45. $params['id'] = empty($params['id']) ? '' : $params['id'];
  46. $params['route'] = empty($params['route']) ? '' : $params['route'];
  47. $params['mall_id'] = $this->mall_id;
  48. $params['cate_id'] = [AppEnum::MALL, AppEnum::ADDON];
  49. $data = AuthRole::getEditData($params);
  50. $where = [['app_id'=>$params['app_id']],['cate_id'=>AppEnum::MALL], ['is_addon'=>0],['status' => [StatusEnum::ENABLED]]];
  51. $data['item_list2'] = AuthItem::getItemListTree($where,$params['route']);
  52. $where = [['app_id'=>$params['app_id']], ['is_addon'=>1],['status' => [StatusEnum::ENABLED]]];
  53. $data['item_list3'] = AuthItem::getItemListTree($where,$params['route']);
  54. return $this->success('操作成功', $data);
  55. }
  56. } catch (\Exception $e) {
  57. return $this->error($e->getMessage(), []);
  58. }
  59. try {
  60. if ($request->isPost) {
  61. $params = Yii::$app->request->post();
  62. $res = Yii::$app->services->validate->validate($params, [
  63. [['title'], 'trim'],
  64. [['title'], 'required'],
  65. [['id', 'item_ids', 'merchant_id', 'pid', 'sort', 'status', 'app_id', 'created_at', 'updated_at'], 'safe'],
  66. ]);
  67. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  68. $params['app_id'] = $this->appId;
  69. $params['mall_id'] = $this->mall_id;
  70. $params['merchant_id'] = 0;
  71. $res = AuthRole::setData($params);
  72. if ($res === false) return $this->error(AuthItem::getStaticError());
  73. return $this->success('操作成功');
  74. }
  75. } catch (\Exception $e) {
  76. return $this->error($e->getMessage(), []);
  77. }
  78. }
  79. }
  80. /**
  81. * 删除
  82. * @param null $keyword
  83. * @param int $is_recycle
  84. * @return mixed|void
  85. */
  86. public function actionDel()
  87. {
  88. $request = Yii::$app->request;
  89. if ($request->isAjax) {
  90. if ($request->isGet) {
  91. $id = Yii::$app->request->get('id', '');
  92. if(AdminRole::findOne(['role_id'=>$id])) return $this->error('关联了账号不允许删除');
  93. $res = AuthRole::updateRole(['id' => $id, 'mall_id' => $this->mall_id, 'status' => StatusEnum::DELETE]);
  94. if ($res === false) return $this->error(AuthItem::getStaticError());
  95. return $this->success('操作成功');
  96. }
  97. }
  98. }
  99. }