Admin.php 7.1 KB

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