Admin.php 6.9 KB

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