UserController.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace App\Http\Controllers\Statistics;
  3. use App\Http\Controllers\Statistics\StatisticsBaseController;
  4. use App\Services\Statistics\StatisticsUserService;
  5. use App\Services\Statistics\Auth\AuthService;
  6. use Illuminate\Support\Facades\Auth;
  7. use Illuminate\Http\Request;
  8. class UserController extends StatisticsBaseController
  9. {
  10. protected $statisticsUserService;
  11. protected $authService;
  12. /**
  13. * @return mixed
  14. */
  15. public function __construct(StatisticsUserService $statisticsUserService, AuthService $authService)
  16. {
  17. $this->statisticsUserService = $statisticsUserService;
  18. $this->authService = $authService;
  19. }
  20. public function index()
  21. {
  22. $lists = $this->statisticsUserService->getList();
  23. $return_data = [
  24. 'list' => $lists
  25. ];
  26. return view('statistics.app.user.list', $return_data);
  27. }
  28. public function add(Request $request)
  29. {
  30. if (auth('web-statistics')->user()->username != 'admin') {
  31. return response()->json(array('status'=>0, 'error'=>'没有权限添加管理员,请联系超级管理员!'));
  32. }
  33. if ($request->method() == 'POST') {
  34. $username = $request->input('username', '');
  35. $password = $request->input('password', '');
  36. if (!$username || !$password) {
  37. return response()->json(array('status'=>0, 'error'=>'参数错误!'));
  38. }
  39. //判断用户名是否存在
  40. if ($adminInfo = $this->statisticsUserService->getUserInfo(array('username'=>$username))) {
  41. return response()->json(array('status'=>0, 'error'=>'用户名已存在!'));
  42. }
  43. $insert_data = array(
  44. 'username' => $username,
  45. 'password' => bcrypt($password),
  46. 'name' => $username
  47. );
  48. if ($this->statisticsUserService->createUserInfo($insert_data)) {
  49. return response()->json(array('status'=>1, 'html'=>'添加成功!'));
  50. } else {
  51. return response()->json(array('status'=>0, 'error'=>'添加失败!'));
  52. }
  53. } else {
  54. return view('statistics.app.user.add');
  55. }
  56. }
  57. public function updatePassword(Request $request)
  58. {
  59. if ($request->method() == 'POST') {
  60. $password_old = $request->input('password_old', '');
  61. $password = $request->input('password', '');
  62. if (!$password_old) {
  63. return response()->json(array('status'=>0, 'error'=>'请填写原密码!'));
  64. }
  65. if (!$password) {
  66. return response()->json(array('status'=>0, 'error'=>'请填写新密码!'));
  67. }
  68. //检测旧密码是否正确
  69. $pwd_rst = $this->authService->checkUser(auth('web-statistics')->user()->username, $password_old);
  70. if (!$pwd_rst) {
  71. return response()->json(array('status'=>0, 'error'=>'原密码错误!'));
  72. }
  73. $rst = $this->statisticsUserService->updateUserInfo(['password'=>bcrypt($password)], ['id'=>auth('web-statistics')->user()->id]);
  74. if ($rst) {
  75. return response()->json(array('status'=>1, 'html'=>'修改成功!'));
  76. } else {
  77. return response()->json(array('status'=>0, 'error'=>'修改失败!'));
  78. }
  79. }
  80. return view('statistics.app.user.update_password');
  81. }
  82. public function edit(Request $request)
  83. {
  84. if (auth('web-statistics')->user()->username != 'admin') {
  85. return response()->json(array('status'=>0, 'error'=>'没有权限修改管理员信息,请联系超级管理员!'));
  86. }
  87. $uid = $request->input('uid', '');
  88. if (!$uid) {
  89. return response()->json(array('status'=>0, 'error'=>'请选择用户!'));
  90. }
  91. $adminInfo = $this->statisticsUserService->getUserInfo(array('id'=>$uid));
  92. if (!$adminInfo) {
  93. $return_data = array('status'=>0, 'error'=>'用户不存在,请重新选择!');
  94. } else {
  95. $html_data = array(
  96. 'username' => $adminInfo->username,
  97. 'uid' => $uid
  98. );
  99. $html = view('statistics.app.user.update_user', $html_data)->render();
  100. $return_data = array('status'=>1, 'html'=>$html);
  101. }
  102. return response()->json($return_data);
  103. }
  104. public function updateByAdminPassword(Request $request)
  105. {
  106. $uid = $request->input('id', '');
  107. $password = $request->input('password', '');
  108. if (!$uid || !$password) {
  109. return response()->json(array('status'=>0, 'error'=>'参数错误!'));
  110. }
  111. $rst = $this->statisticsUserService->updateUserInfo(['password'=>bcrypt($password)], ['id'=>$uid]);
  112. if ($rst) {
  113. return response()->json(array('status'=>1, 'html'=>'修改成功!'));
  114. } else {
  115. return response()->json(array('status'=>0, 'error'=>'修改失败!'));
  116. }
  117. }
  118. public function delete(Request $request)
  119. {
  120. $id = $request->input('id', '');
  121. if (!$id) {
  122. return response()->json(array('status'=>0, 'error'=>'请选择删除项!'));
  123. }
  124. if ($this->statisticsUserService->deleteUserInfo(['id'=>$id])) {
  125. return response()->json(array('status'=>1, 'html'=>'删除成功!'));
  126. }
  127. return response()->json(array('status'=>0, 'error'=>'删除失败!'));
  128. }
  129. }