User.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\cashier\shop\controller;
  11. use addon\cashier\model\Group;
  12. use addon\cashier\model\Menu;
  13. use app\shop\controller\BaseShop;
  14. use think\facade\Db;
  15. /**
  16. * Class User
  17. * @package app\shop\controller
  18. */
  19. class User extends BaseShop
  20. {
  21. /**
  22. * 用户列表
  23. * @return mixed
  24. */
  25. public function group()
  26. {
  27. if (request()->isAjax()) {
  28. $page = input('page', 1);
  29. $page_size = input('page_size', PAGE_LIST_ROWS);
  30. $search_keys = input('search_keys', "");
  31. if (!empty($search_keys)) {
  32. $condition[] = [ 'group_name', 'like', '%' . $search_keys . '%' ];
  33. }
  34. $condition[] = [ '', 'exp', Db::raw("keyword = '' OR site_id = {$this->site_id}") ];
  35. $group_model = new Group();
  36. $list = $group_model->getGroupPageList($condition, $page, $page_size);
  37. return $list;
  38. } else {
  39. $this->forthMenu();
  40. return $this->fetch("user/group_list");
  41. }
  42. }
  43. /**
  44. * 添加用户组
  45. * @return mixed
  46. */
  47. public function addGroup()
  48. {
  49. if (request()->isAjax()) {
  50. $group_name = input('group_name', '');
  51. $menu_array = input('menu_array', '');
  52. $desc = input('desc', '');
  53. $group_model = new Group();
  54. $data = array (
  55. "group_name" => $group_name,
  56. "site_id" => $this->site_id,
  57. "menu_array" => $menu_array,
  58. "desc" => $desc,
  59. "create_time" => time(),
  60. );
  61. $result = $group_model->addGroup($data);
  62. return $result;
  63. } else {
  64. $menu_model = new Menu();
  65. $menu_list = $menu_model->getMenuList([], '*');
  66. $menu_tree = list_to_tree($menu_list[ 'data' ], 'name', 'parent', 'child_list', '');
  67. $this->assign('tree_data', $menu_tree);
  68. return $this->fetch('user/add_group');
  69. }
  70. }
  71. /**
  72. * 编辑用户组
  73. * @return mixed
  74. */
  75. public function editGroup()
  76. {
  77. $group_model = new Group();
  78. if (request()->isAjax()) {
  79. $group_name = input('group_name', '');
  80. $menu_array = input('menu_array', '');
  81. $group_id = input('group_id', 0);
  82. $desc = input('desc', '');
  83. $data = array (
  84. "group_name" => $group_name,
  85. "menu_array" => $menu_array,
  86. "desc" => $desc,
  87. );
  88. $condition = array (
  89. [ "group_id", "=", $group_id ],
  90. [ "site_id", "=", $this->site_id ],
  91. );
  92. $result = $group_model->editGroup($data, $condition);
  93. return $result;
  94. } else {
  95. $group_id = input('group_id', 0);
  96. $condition = array (
  97. [ "group_id", "=", $group_id ],
  98. [ "site_id", "=", $this->site_id ],
  99. );
  100. $group_info_result = $group_model->getGroupInfo($condition);
  101. $group_info = $group_info_result[ "data" ];
  102. if (empty($group_info)) $this->error('未获取到用户组数据', addon_url('shop/user/group'));
  103. $this->assign("group_info", $group_info);
  104. $this->assign("group_id", $group_id);
  105. //获取菜单权限
  106. $menu_model = new Menu();
  107. $menu_list = $menu_model->getMenuList([], '*');
  108. //处理选中数据
  109. $group_array = $group_info[ 'menu_array' ];
  110. $checked_array = explode(',', $group_array);
  111. foreach ($menu_list[ 'data' ] as $key => $val) {
  112. if (in_array($val[ 'name' ], $checked_array)) {
  113. $menu_list[ 'data' ][ $key ][ 'checked' ] = true;
  114. } else {
  115. $menu_list[ 'data' ][ $key ][ 'checked' ] = false;
  116. }
  117. }
  118. $menu_tree = list_to_tree($menu_list[ 'data' ], 'name', 'parent', 'child_list', '');
  119. $this->assign('tree_data', $menu_tree);
  120. return $this->fetch('user/edit_group');
  121. }
  122. }
  123. /**
  124. * 删除用户组
  125. */
  126. public function deleteGroup()
  127. {
  128. if (request()->isAjax()) {
  129. $group_id = input('group_id', '');
  130. $condition = array (
  131. [ "group_id", "=", $group_id ],
  132. [ "site_id", "=", $this->site_id ],
  133. );
  134. $group_model = new Group();
  135. $result = $group_model->deleteGroup($condition);
  136. return $result;
  137. }
  138. }
  139. }