AdminController.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. namespace App\Controllers;
  3. use App\Models\InviteCode;
  4. use App\Models\Node;
  5. use App\Models\TrafficLog;
  6. use App\Models\Payback;
  7. use App\Models\Coupon;
  8. use App\Models\User;
  9. use App\Utils\Tools;
  10. use App\Services\Analytics;
  11. use Ozdemir\Datatables\Datatables;
  12. use App\Utils\DatatablesHelper;
  13. /**
  14. * Admin Controller
  15. */
  16. class AdminController extends UserController
  17. {
  18. public function index($request, $response, $args)
  19. {
  20. $sts = new Analytics();
  21. return $this->view()->assign('sts', $sts)->display('admin/index.tpl');
  22. }
  23. public function node($request, $response, $args)
  24. {
  25. $nodes = Node::all();
  26. return $this->view()->assign('nodes', $nodes)->display('admin/node.tpl');
  27. }
  28. public function sys()
  29. {
  30. return $this->view()->display('admin/index.tpl');
  31. }
  32. public function invite($request, $response, $args)
  33. {
  34. $table_config['total_column'] = array("id" => "ID",
  35. "total" => "原始金额", "event_user_id" => "发起用户ID",
  36. "event_user_name" => "发起用户名", "ref_user_id" => "获利用户ID",
  37. "ref_user_name" => "获利用户名", "ref_get" => "获利金额",
  38. "datetime" => "时间");
  39. $table_config['default_show_column'] = array();
  40. foreach ($table_config['total_column'] as $column => $value) {
  41. array_push($table_config['default_show_column'], $column);
  42. }
  43. $table_config['ajax_url'] = 'payback/ajax';
  44. return $this->view()->assign('table_config', $table_config)->display('admin/invite.tpl');
  45. }
  46. public function addInvite($request, $response, $args)
  47. {
  48. $n = $request->getParam('num');
  49. $prefix = $request->getParam('prefix');
  50. if ($request->getParam('uid')!="0") {
  51. if (strpos($request->getParam('uid'), "@")!=false) {
  52. $user=User::where("email", "=", $request->getParam('uid'))->first();
  53. } else {
  54. $user=User::Where("id", "=", $request->getParam('uid'))->first();
  55. }
  56. if ($user==null) {
  57. $res['ret'] = 0;
  58. $res['msg'] = "输入不正确";
  59. return $response->getBody()->write(json_encode($res));
  60. }
  61. $uid = $user->id;
  62. } else {
  63. $uid=0;
  64. }
  65. if ($n < 1) {
  66. $res['ret'] = 0;
  67. return $response->getBody()->write(json_encode($res));
  68. }
  69. for ($i = 0; $i < $n; $i++) {
  70. $char = Tools::genRandomChar(32);
  71. $code = new InviteCode();
  72. $code->code = $prefix . $char;
  73. $code->user_id = $uid;
  74. $code->save();
  75. }
  76. $res['ret'] = 1;
  77. $res['msg'] = "邀请码添加成功";
  78. return $response->getBody()->write(json_encode($res));
  79. }
  80. public function coupon($request, $response, $args)
  81. {
  82. $table_config['total_column'] = array("id" => "ID", "code" => "优惠码",
  83. "expire" => "过期时间", "shop" => "限定商品ID",
  84. "credit" => "额度");
  85. $table_config['default_show_column'] = array();
  86. foreach ($table_config['total_column'] as $column => $value) {
  87. array_push($table_config['default_show_column'], $column);
  88. }
  89. $table_config['ajax_url'] = 'coupon/ajax';
  90. return $this->view()->assign('table_config', $table_config)->display('admin/coupon.tpl');
  91. }
  92. public function addCoupon($request, $response, $args)
  93. {
  94. $code = new Coupon();
  95. $code->onetime=$request->getParam('onetime');
  96. $code->code=$request->getParam('prefix').Tools::genRandomChar(8);
  97. $code->expire=time()+$request->getParam('expire')*3600;
  98. $code->shop=$request->getParam('shop');
  99. $code->credit=$request->getParam('credit');
  100. $code->save();
  101. $res['ret'] = 1;
  102. $res['msg'] = "优惠码添加成功";
  103. return $response->getBody()->write(json_encode($res));
  104. }
  105. public function trafficLog($request, $response, $args)
  106. {
  107. $table_config['total_column'] = array("id" => "ID", "user_id" => "用户ID",
  108. "user_name" => "用户名", "node_name" => "使用节点",
  109. "rate" => "倍率", "origin_traffic" => "实际使用流量",
  110. "traffic" => "结算流量",
  111. "log_time" => "记录时间");
  112. $table_config['default_show_column'] = array("id", "user_id",
  113. "user_name", "node_name",
  114. "rate", "origin_traffic",
  115. "traffic", "log_time");
  116. $table_config['ajax_url'] = 'trafficlog/ajax';
  117. return $this->view()->assign('table_config', $table_config)->display('admin/trafficlog.tpl');
  118. }
  119. public function ajax_trafficLog($request, $response, $args)
  120. {
  121. $datatables = new Datatables(new DatatablesHelper());
  122. $datatables->query('Select log.id,log.user_id,user.user_name,node.name as node_name,log.rate,(log.u + log.d) as origin_traffic,log.traffic,log.log_time from user_traffic_log as log,user,ss_node as node WHERE log.user_id = user.id AND log.node_id = node.id');
  123. $datatables->edit('log_time', function ($data) {
  124. return date('Y-m-d H:i:s', $data['log_time']);
  125. });
  126. $datatables->edit('origin_traffic', function ($data) {
  127. return Tools::flowAutoShow($data['origin_traffic']);
  128. });
  129. $body = $response->getBody();
  130. $body->write($datatables->generate());
  131. }
  132. public function ajax_payback($request, $response, $args)
  133. {
  134. $datatables = new Datatables(new DatatablesHelper());
  135. $datatables->query('Select payback.id,payback.total,payback.userid as event_user_id,event_user.user_name as event_user_name,payback.ref_by as ref_user_id,ref_user.user_name as ref_user_name,payback.ref_get,payback.datetime from payback,user as event_user,user as ref_user where event_user.id = payback.userid and ref_user.id = payback.ref_by');
  136. $datatables->edit('datetime', function ($data) {
  137. return date('Y-m-d H:i:s', $data['datetime']);
  138. });
  139. $body = $response->getBody();
  140. $body->write($datatables->generate());
  141. }
  142. public function ajax_coupon($request, $response, $args)
  143. {
  144. $datatables = new Datatables(new DatatablesHelper());
  145. $datatables->query('Select id,code,expire,shop,credit from coupon');
  146. $datatables->edit('expire', function ($data) {
  147. return date('Y-m-d H:i:s', $data['expire']);
  148. });
  149. $body = $response->getBody();
  150. $body->write($datatables->generate());
  151. }
  152. }