search; $pageSize = 20; $list = Manager::getList($search)->paginate($pageSize); $pager = PaginationHelper::show($list->total(), $list->currentPage(), $list->perPage()); $list = $list->toArray(); return view('Yunshop\Article::admin.manager.list', [ 'list' => $list, 'pager' => $pager, 'search' => $search, 'total' => Manager::uniacid()->count() ])->render(); } public function changeStatus() { $id = (int)request()->id; $manager = Manager::find($id); if ($manager->status == 1) { $manager->status = 0; if ($manager->save()) { return $this->successJson('禁用成功'); } else { return $this->errorJson('禁用失败'); } } else { $manager->status = 1; if ($manager->save()) { return $this->successJson('取消禁用'); } else { return $this->errorJson('取消禁用失败'); } } } public function add() { if (\Request::getMethod() == 'POST') { $data = request()->data; $result = WeiQingUsers::getUserByUserName($data['username'])->first(); if ($result) { return $this->message('此用户为系统存在用户,无法添加', Url::absoluteWeb('plugin.supplier.admin.controllers.supplier.supplier-list', $data), 'error'); } if (!$data['password']) { throw new ShopException('请输入密码'); } if ($data['password'] != $data['password_confirm']) { throw new ShopException('两次输入密码不一样,请检查'); } $model = new Manager(); $data['uniacid'] = \YunShop::app()->uniacid; $data['status'] = 1; unset($data['password_confirm']); DB::beginTransaction(); try { $model->fill($data); $validator = $model->validator(); if ($validator->fails()) { throw new ShopException($validator->messages()->first()); } $verifyPassword = verifyPasswordStrength($data['password']); if ($verifyPassword !== true) { throw new ShopException($verifyPassword); } $uid = $this->addWeiqingTables($data['username'], $data['password']); if (is_array($uid) && $uid['errno'] == -1) { throw new ShopException($uid['message']); } else { if ($model->save()) { $data['uid'] = $uid; $model->uid = $data['uid']; $model->save(); } } DB::commit(); return $this->message('添加成功', Url::absoluteWeb('plugin.article.admin.manager')); } catch (\Exception $e) { DB::rollBack(); throw new ShopException($e->getMessage()); } } return view('Yunshop\Article::admin.manager.add_manager', [ ])->render(); } public function edit() { $id = intval(\YunShop::request()->id); $Model = Manager::uniacid()->where('id', $id) ->select(['id', 'member_id', 'nickname', 'username']) ->with('member') ->first(); if (!$Model) { return $this->message('无此管理员或已被删除', '', 'error'); } if (\Request::getMethod() == 'POST') { $data = request()->data; if ($Model->member_id != $data['member_id']) { $finder = Manager::uniacid()->where('member_id', $data['member_id'])->first(); if ($finder) { throw new ShopException('角色已经存在'); } } if ($Model->nickname != $data['nickname']) { $find = Manager::uniacid()->where('nickname', $data['nickname'])->first(); if ($find) { throw new ShopException('管理员名称已经存在'); } } $Model->member_id = $data['member_id']; $Model->nickname = $data['nickname']; if (!$Model->save()) { return $this->message('MySql error, please try again', '', 'error'); } else { return $this->message('修改管理员成功', Url::absoluteWeb('plugin.article.admin.manager')); } } return view('Yunshop\Article::admin.manager.edit_info', [ 'manager' => $Model->toArray() ])->render(); } public function editPwd() { $id = intval(\YunShop::request()->id); $Model = Manager::uniacid()->where('id', $id) ->select(['id', 'uid', 'member_id', 'username']) ->with('member') ->first(); if (!$Model) { return $this->message('无此管理员或已被删除', '', 'error'); } if (\Request::getMethod() == 'POST') { $data = request()->data; if (!$data['password']) { throw new ShopException('请输入密码'); } if ($data['password'] != $data['password_confirm']) { throw new ShopException('两次输入密码不一样,请检查'); } $user = WeiQingUsers::getUserByUid($Model->uid)->first(); if (!$user) { throw new ShopException('操作员不存在'); } $verifyPassword = verifyPasswordStrength($data['password']); if ($verifyPassword !== true) { return $this->message($verifyPassword); } DB::beginTransaction(); try { $password = user_hash($data['password'], $user->salt); $user->password = $password; $user->save(); $Model->password = $data['password']; $Model->save(); DB::commit(); return $this->message('修改密码成功', Url::absoluteWeb('plugin.article.admin.manager')); } catch (\Exception $e) { DB::rollBack(); throw new ShopException($e->getMessage()); } } return view('Yunshop\Article::admin.manager.edit_pwd', [ 'manager' => $Model->toArray() ])->render(); } private function addWeiqingTables($username, $password) { $uid = user_register(array('username' => $username, 'password' => $password), ''); if (is_array($uid) || $uid == 0) { return $uid; } UniAccountUser::AddUniAccountUser($uid); WeiQingUsers::updateType($uid); $model = new UserPermission(); $permission = [ 'uniacid' => \YunShop::app()->uniacid, 'uid' => $uid, 'type' => 'yun_shop', 'permission' => 'yun_shop_cover_shop|yun_shop_rule|yun_shop_menu_shop', 'url' => 'bztang.cdlfjy.com' ]; if ($model->hasColumn('modules')) { $permission['modules'] = 'yunzhong'; } if ($model->hasColumn('templates')) { $permission['templates'] = 'yunzhong'; } $model->fill($permission); $model->save(); return $uid; } }