1
0

UserController.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Http\Controllers\Muv2;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Models\SsNode;
  5. use App\Http\Models\User;
  6. use App\Http\Models\UserTrafficLog;
  7. use Illuminate\Http\Request;
  8. class UserController extends Controller
  9. {
  10. //用户列表
  11. public function index()
  12. {
  13. $users= User::query()->where('enable',1)->select(
  14. "id","username","passwd","t","u","d","transfer_enable",
  15. "port","protocol","obfs","enable","expire_time as expire_time_d","method",
  16. "v2ray_uuid","v2ray_level","v2ray_alter_id")->get();
  17. foreach($users as $user){
  18. //datetime 转timestamp
  19. $user['switch']=1;
  20. $user['email']=$user['username'];
  21. $user['expire_time']=strval((new \DateTime($user['expire_time_d']))->getTimestamp());
  22. }
  23. $res = [
  24. "data" => $users
  25. ];
  26. return response()->json($res);
  27. }
  28. //更新流量到user表
  29. public function addTraffic(Request $request, $response, $args)
  30. {
  31. $id = $request->route('id');
  32. $u = $request->get('u');
  33. $d = $request->get('d');
  34. $nodeId = $request->get('node_id');
  35. $node = SsNode::query()->find($nodeId)->get();
  36. $rate = $node->traffic_rate;
  37. $user = User::query()->find($id)->get();
  38. $user->t = time();
  39. $user->u = $user->u + ($u * $rate);
  40. $user->d = $user->d + ($d * $rate);
  41. if (!$user->save()) {
  42. $res = [
  43. "msg" => "update failed",
  44. ];
  45. return response()->json($res,400);
  46. }
  47. // 写usertrafficlog
  48. $totalTraffic = flowAutoShow(($u + $d) * $rate);
  49. $traffic = new UserTrafficLog();
  50. $traffic->user_id = $id;
  51. $traffic->u = $u;
  52. $traffic->d = $d;
  53. $traffic->node_id = $nodeId;
  54. $traffic->rate = $rate;
  55. $traffic->traffic = $totalTraffic;
  56. $traffic->log_time = time();
  57. $traffic->save();
  58. $res = [
  59. 'ret' => 1,
  60. "msg" => "ok",
  61. ];
  62. return response()->json($res);
  63. }
  64. }