1
0

UserController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Models\SsNode;
  4. use App\Http\Models\SsNodeInfo;
  5. use App\Http\Models\SsNodeOnlineLog;
  6. use App\Http\Models\User;
  7. use App\Http\Models\UserTrafficLog;
  8. use Illuminate\Http\Request;
  9. use Redirect;
  10. use Response;
  11. class UserController extends BaseController
  12. {
  13. public function index(Request $request)
  14. {
  15. return Response::view('user/index');
  16. }
  17. // 修改个人资料
  18. public function profile(Request $request)
  19. {
  20. if (!$request->session()->has('user')) {
  21. return Redirect::to('login');
  22. }
  23. $user = $request->session()->get('user');
  24. if ($request->method() == 'POST') {
  25. $old_password = $request->get('old_password');
  26. $new_password = $request->get('new_password');
  27. $old_password = md5(trim($old_password));
  28. $new_password = md5(trim($new_password));
  29. $user = User::where('id', $user['id'])->first();
  30. if ($user->password != $old_password) {
  31. $request->session()->flash('errorMsg', '旧密码错误,请重新输入');
  32. return Redirect::back();
  33. } else if ($user->password == $new_password) {
  34. $request->session()->flash('errorMsg', '新密码不可与旧密码一样,请重新输入');
  35. return Redirect::back();
  36. }
  37. $ret = User::where('id', $user['id'])->update(['password' => $new_password]);
  38. if (!$ret) {
  39. $request->session()->flash('errorMsg', '修改失败');
  40. return Redirect::back();
  41. } else {
  42. $request->session()->flash('successMsg', '修改成功');
  43. return Redirect::back();
  44. }
  45. } else {
  46. return Response::view('user/profile');
  47. }
  48. }
  49. // 节点列表
  50. public function nodeList(Request $request)
  51. {
  52. if (!$request->session()->has('user')) {
  53. return Redirect::to('login');
  54. }
  55. $nodeList = SsNode::paginate(10);
  56. foreach ($nodeList as &$node) {
  57. // 在线人数
  58. $online_log = SsNodeOnlineLog::where('node_id', $node->id)->orderBy('id', 'desc')->first();
  59. $node->online_users = empty($online_log) ? 0 : $online_log->online_user;
  60. // 已产生流量
  61. $u = UserTrafficLog::where('node_id', $node->id)->sum('u');
  62. $d = UserTrafficLog::where('node_id', $node->id)->sum('d');
  63. $node->transfer = $this->flowAutoShow($u + $d);
  64. // 负载
  65. $node_info = SsNodeInfo::where('node_id', $node->id)->orderBy('id', 'desc')->first();
  66. $node->load = empty($node_info->load) ? 0 : $node_info->load;
  67. }
  68. $view['nodeList'] = $nodeList;
  69. return Response::view('user/nodeList', $view);
  70. }
  71. // 流量日志
  72. public function trafficLog(Request $request)
  73. {
  74. if (!$request->session()->has('user')) {
  75. return Redirect::to('login');
  76. }
  77. $user = $request->session()->get('user');
  78. $trafficLogList = UserTrafficLog::with(['User', 'SsNode'])->where('user_id', $user['id'])->orderBy('id', 'desc')->paginate(20);
  79. foreach ($trafficLogList as &$trafficLog) {
  80. $trafficLog->u = $this->flowAutoShow($trafficLog->u);
  81. $trafficLog->d = $this->flowAutoShow($trafficLog->d);
  82. $trafficLog->log_time = date('Y-m-d H:i:s', $trafficLog->log_time);
  83. }
  84. $view['trafficLogList'] = $trafficLogList;
  85. return Response::view('user/trafficLog', $view);
  86. }
  87. // 邀请码
  88. public function invite(Request $request)
  89. {
  90. if (!$request->session()->has('user')) {
  91. return Redirect::to('login');
  92. }
  93. $user = $request->session()->get('user');
  94. $view = [];
  95. return Response::view('user/invite', $view);
  96. }
  97. }