Admin.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\system\controller\v1;
  4. use app\model\system\SystemAdmin;
  5. use app\model\system\SystemMenu;
  6. use app\model\system\SystemRole;
  7. use app\Request;
  8. use app\system\controller\AuthController;
  9. use library\exceptions\GeneralException;
  10. use library\services\UtilService;
  11. use library\utils\IpLocation;
  12. use think\facade\Config;
  13. use think\facade\Cache;
  14. class Admin extends AuthController
  15. {
  16. /**
  17. * 退出登陆
  18. * @return mixed
  19. */
  20. public function logout()
  21. {
  22. $key = trim(ltrim($this->request->header(Config::get('cookie.system_token_name')), ''));
  23. $res = Cache::store('redis')->delete($key);
  24. return app('json')->success("ok", []);
  25. }
  26. /**
  27. * 登录和菜单信息 [当前登录者]
  28. */
  29. public function init(){
  30. $menuMenu = new SystemMenu();
  31. $menus = $menuMenu->getRoute($this->adminInfo['role_id']);
  32. return app('json')->success([
  33. 'menus' => $menus,
  34. 'user_info' => [
  35. 'id' => $this->adminInfo['id'],
  36. 'username' => $this->adminInfo['username'],
  37. 'name' => $this->adminInfo['name'],
  38. 'avatar' => $this->adminInfo['avatar']
  39. ],
  40. ]);
  41. }
  42. /**
  43. * 获取管理信息 [当前登录者]
  44. * @param Request $request
  45. * @return mixed
  46. */
  47. public function info(Request $request) {
  48. [$id] = UtilService::getMore([
  49. ['id','','empty','参数错误']
  50. ],$request,true);
  51. if($id == $this->adminInfo['id']) {
  52. return app('json')->success([
  53. 'id' => $id,
  54. 'username' => $this->adminInfo['username'],
  55. 'name' => $this->adminInfo['name'],
  56. 'avatar' => $this->adminInfo['avatar'],
  57. 'regTime' => empty($this->adminInfo['time']) ? '' : date('Y-m-d',$this->adminInfo['time']),
  58. 'lastTime' => empty($this->adminInfo['last_time']) ? '' : date('Y-m-d',$this->adminInfo['last_time']),
  59. 'ip' => $this->adminInfo['ip'],
  60. 'ipArea' => (new IpLocation())->getlocation($this->adminInfo['ip'])['country'],
  61. 'roleName' => (new SystemRole())->getRoleId($this->adminInfo['role_id'],'name')
  62. ]);
  63. }
  64. }
  65. /**
  66. * 修改信息 [当前登录者]
  67. * @param Request $request
  68. */
  69. public function edit(Request $request) {
  70. [$name,$avatar] = UtilService::getMore([
  71. ['name','','empty','请输入管理姓名'],
  72. ['avatar','']
  73. ],$request,true);
  74. $bool = SystemAdmin::update(['name'=>$name,'avatar'=>$avatar],['id'=>$this->adminInfo['id']]);
  75. if($bool) {
  76. return app('json')->success("修改成功", []);
  77. }
  78. return app('json')->fail("数据更新失败");
  79. }
  80. /**
  81. * 修改密码 [当前登录者]
  82. * @param Request $request
  83. */
  84. public function password(Request $request) {
  85. [$oldPass,$newPass] = UtilService::getMore([
  86. ['oldPass','','empty','请输入旧密码'],
  87. ['newPass','','empty','请输入新密码']
  88. ],$request,true);
  89. if(!SystemAdmin::checkPassowrd($this->adminInfo['id'],$oldPass)){
  90. return app('json')->fail("旧密码错误,请重新输入");
  91. }
  92. SystemAdmin::where('id',$this->adminInfo['id'])->save(['password'=>password_hash($newPass,PASSWORD_BCRYPT)]);
  93. return app('json')->success("密码修改成功", []);
  94. }
  95. /**
  96. * 获取管理列表
  97. * @param Request $request
  98. */
  99. public function list(Request $request) {
  100. $pageSize = 50;
  101. [$page,$roleId,$keyword] = UtilService::getMore(
  102. [
  103. ['page',1],
  104. ['roleId',0],
  105. ['keyword','']
  106. ],$request,true
  107. );
  108. list($pageCount,$data) = (new SystemAdmin)
  109. ->getList($page,
  110. ['role_id'=>[$roleId,'!empty'],'name|username'=>[$keyword,'!empty']]
  111. ,$pageSize,'id desc');
  112. $result = UtilService::getParam([
  113. 'id',
  114. 'username',
  115. 'name',
  116. 'avatar',
  117. 'status',
  118. [ 'regTime', 'time', 'date("Y-m-d",$1)'],
  119. [ 'lastTime', 'last_time', 'date("Y-m-d",$1)'],
  120. 'ip',
  121. ['ipArea','ip',
  122. function($item) {
  123. return (new IpLocation())->getlocation($item)['country'];
  124. }
  125. ],
  126. ['roleName','role_id',
  127. function($item) {
  128. return (new SystemRole())->getRoleId($item,'name');
  129. }
  130. ]
  131. ],$data);
  132. return app('json')->success([
  133. 'list' => $result,
  134. 'pageCount' => $pageCount,
  135. 'pageSize' => $pageSize,
  136. 'page' => $page
  137. ]);
  138. }
  139. /**
  140. * 获取管理数据
  141. * @param Request $request
  142. * @return mixed
  143. */
  144. public function getInfo(Request $request) {
  145. [$id] = UtilService::getMore([
  146. ['id','','empty','参数错误']
  147. ],$request,true);
  148. $adminInfo = SystemAdmin::get(compact('id'));
  149. return app('json')->success([
  150. 'id' => $id,
  151. 'username' => $adminInfo['username'],
  152. 'name' => $adminInfo['name'],
  153. 'avatar' => $adminInfo['avatar'],
  154. 'role_id' => $adminInfo['role_id'],
  155. 'status' => $adminInfo['status']
  156. ]);
  157. }
  158. /**
  159. * 保存数据
  160. * @param Request $request
  161. */
  162. public function save(Request $request) {
  163. $post = UtilService::getMore(
  164. [
  165. ['id','0'],
  166. ['name','','empty','请输入姓名'],
  167. ['username','','empty','请输入账户'],
  168. ['status','0'],
  169. ['role_id','','empty','请选择管理角色'],
  170. ['password',''],
  171. ['avatar','']
  172. ],
  173. $request
  174. );
  175. $bool = SystemAdmin::saveAdmin($post);
  176. if($bool)
  177. return app('json')->success("操作成功", []);
  178. else
  179. return app('json')->fail(SystemAdmin::getErrorInfo());
  180. }
  181. /**
  182. * 删除数据
  183. * @param Request $request
  184. */
  185. public function del(Request $request) {
  186. [$id] = UtilService::getMore(
  187. [
  188. ['id','0'],
  189. ],
  190. $request,true
  191. );
  192. SystemAdmin::del($id);
  193. return app('json')->success("删除成功", []);
  194. }
  195. }