123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- <?php
- declare (strict_types = 1);
- namespace app\system\controller\v1;
- use app\model\system\SystemAdmin;
- use app\model\system\SystemMenu;
- use app\model\system\SystemRole;
- use app\Request;
- use app\system\controller\AuthController;
- use library\exceptions\GeneralException;
- use library\services\UtilService;
- use library\utils\IpLocation;
- use think\facade\Config;
- use think\facade\Cache;
- class Admin extends AuthController
- {
- /**
- * 退出登陆
- * @return mixed
- */
- public function logout()
- {
- $key = trim(ltrim($this->request->header(Config::get('cookie.system_token_name')), ''));
- $res = Cache::store('redis')->delete($key);
- return app('json')->success("ok", []);
- }
- /**
- * 登录和菜单信息 [当前登录者]
- */
- public function init(){
- $menuMenu = new SystemMenu();
- $menus = $menuMenu->getRoute($this->adminInfo['role_id']);
- return app('json')->success([
- 'menus' => $menus,
- 'user_info' => [
- 'id' => $this->adminInfo['id'],
- 'username' => $this->adminInfo['username'],
- 'name' => $this->adminInfo['name'],
- 'avatar' => $this->adminInfo['avatar']
- ],
- ]);
- }
- /**
- * 获取管理信息 [当前登录者]
- * @param Request $request
- * @return mixed
- */
- public function info(Request $request) {
- [$id] = UtilService::getMore([
- ['id','','empty','参数错误']
- ],$request,true);
- if($id == $this->adminInfo['id']) {
- return app('json')->success([
- 'id' => $id,
- 'username' => $this->adminInfo['username'],
- 'name' => $this->adminInfo['name'],
- 'avatar' => $this->adminInfo['avatar'],
- 'regTime' => empty($this->adminInfo['time']) ? '' : date('Y-m-d',$this->adminInfo['time']),
- 'lastTime' => empty($this->adminInfo['last_time']) ? '' : date('Y-m-d',$this->adminInfo['last_time']),
- 'ip' => $this->adminInfo['ip'],
- 'ipArea' => (new IpLocation())->getlocation($this->adminInfo['ip'])['country'],
- 'roleName' => (new SystemRole())->getRoleId($this->adminInfo['role_id'],'name')
- ]);
- }
- }
- /**
- * 修改信息 [当前登录者]
- * @param Request $request
- */
- public function edit(Request $request) {
- [$name,$avatar] = UtilService::getMore([
- ['name','','empty','请输入管理姓名'],
- ['avatar','']
- ],$request,true);
- $bool = SystemAdmin::update(['name'=>$name,'avatar'=>$avatar],['id'=>$this->adminInfo['id']]);
- if($bool) {
- return app('json')->success("修改成功", []);
- }
- return app('json')->fail("数据更新失败");
- }
- /**
- * 修改密码 [当前登录者]
- * @param Request $request
- */
- public function password(Request $request) {
- [$oldPass,$newPass] = UtilService::getMore([
- ['oldPass','','empty','请输入旧密码'],
- ['newPass','','empty','请输入新密码']
- ],$request,true);
- if(!SystemAdmin::checkPassowrd($this->adminInfo['id'],$oldPass)){
- return app('json')->fail("旧密码错误,请重新输入");
- }
- SystemAdmin::where('id',$this->adminInfo['id'])->save(['password'=>password_hash($newPass,PASSWORD_BCRYPT)]);
- return app('json')->success("密码修改成功", []);
- }
- /**
- * 获取管理列表
- * @param Request $request
- */
- public function list(Request $request) {
- $pageSize = 50;
- [$page,$roleId,$keyword] = UtilService::getMore(
- [
- ['page',1],
- ['roleId',0],
- ['keyword','']
- ],$request,true
- );
- list($pageCount,$data) = (new SystemAdmin)
- ->getList($page,
- ['role_id'=>[$roleId,'!empty'],'name|username'=>[$keyword,'!empty']]
- ,$pageSize,'id desc');
- $result = UtilService::getParam([
- 'id',
- 'username',
- 'name',
- 'avatar',
- 'status',
- [ 'regTime', 'time', 'date("Y-m-d",$1)'],
- [ 'lastTime', 'last_time', 'date("Y-m-d",$1)'],
- 'ip',
- ['ipArea','ip',
- function($item) {
- return (new IpLocation())->getlocation($item)['country'];
- }
- ],
- ['roleName','role_id',
- function($item) {
- return (new SystemRole())->getRoleId($item,'name');
- }
- ]
- ],$data);
- return app('json')->success([
- 'list' => $result,
- 'pageCount' => $pageCount,
- 'pageSize' => $pageSize,
- 'page' => $page
- ]);
- }
- /**
- * 获取管理数据
- * @param Request $request
- * @return mixed
- */
- public function getInfo(Request $request) {
- [$id] = UtilService::getMore([
- ['id','','empty','参数错误']
- ],$request,true);
- $adminInfo = SystemAdmin::get(compact('id'));
- return app('json')->success([
- 'id' => $id,
- 'username' => $adminInfo['username'],
- 'name' => $adminInfo['name'],
- 'avatar' => $adminInfo['avatar'],
- 'role_id' => $adminInfo['role_id'],
- 'status' => $adminInfo['status']
- ]);
- }
- /**
- * 保存数据
- * @param Request $request
- */
- public function save(Request $request) {
- $post = UtilService::getMore(
- [
- ['id','0'],
- ['name','','empty','请输入姓名'],
- ['username','','empty','请输入账户'],
- ['status','0'],
- ['role_id','','empty','请选择管理角色'],
- ['password',''],
- ['avatar','']
- ],
- $request
- );
- $bool = SystemAdmin::saveAdmin($post);
- if($bool)
- return app('json')->success("操作成功", []);
- else
- return app('json')->fail(SystemAdmin::getErrorInfo());
- }
- /**
- * 删除数据
- * @param Request $request
- */
- public function del(Request $request) {
- [$id] = UtilService::getMore(
- [
- ['id','0'],
- ],
- $request,true
- );
- SystemAdmin::del($id);
- return app('json')->success("删除成功", []);
- }
- }
|